From 3c14ab13b19fd11f728d61b7f467b09c4e06fc02 Mon Sep 17 00:00:00 2001 From: "C. Davis" Date: Mon, 6 Aug 2012 19:06:15 -0700 Subject: regedit: Import hex editor. This was tested separately editing files. It needs to be connected to regedit's value editor. Reviewed-by: Andreas Schneider Reviewed-by: Michael Adam --- source3/utils/regedit_hexedit.h | 50 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 source3/utils/regedit_hexedit.h (limited to 'source3/utils/regedit_hexedit.h') diff --git a/source3/utils/regedit_hexedit.h b/source3/utils/regedit_hexedit.h new file mode 100644 index 0000000000..1a2db912be --- /dev/null +++ b/source3/utils/regedit_hexedit.h @@ -0,0 +1,50 @@ +#ifndef _HEXEDIT_H_ +#define _HEXEDIT_H_ + +#include + +enum { + HE_CURSOR_UP = 0x1000, + HE_CURSOR_DOWN = 0x1100, + HE_CURSOR_LEFT = 0x1200, + HE_CURSOR_RIGHT = 0x1300, + HE_CURSOR_PGUP = 0x1400, + HE_CURSOR_PGDN = 0x1500 +}; + +/* + offset hex1 hex2 ascii + 00000000 FF FF FF FF FF FF FF FF ........ +*/ + +#define LINE_WIDTH 44 +#define HEX_COL1 10 +#define HEX_COL1_END 21 +#define HEX_COL2 23 +#define HEX_COL2_END 34 +#define ASCII_COL 36 +#define ASCII_COL_END LINE_WIDTH +#define BYTES_PER_LINE 8 + +struct hexedit { + size_t offset; + size_t len; + size_t alloc_size; + int cursor_y; + int cursor_x; + size_t cursor_offset; + size_t cursor_line_offset; + int nibble; + uint8_t *data; + WINDOW *win; + WINDOW *status_line; +}; + +struct hexedit *hexedit_new(TALLOC_CTX *ctx, WINDOW *parent, int nlines, + int y, int x, size_t sz); +void hexedit_set_cursor(struct hexedit *buf); +void hexedit_refresh(struct hexedit *buf); +void hexedit_driver(struct hexedit *buf, int c); +WERROR hexedit_resize_buffer(struct hexedit *buf, size_t newsz); + +#endif -- cgit