diff options
author | C. Davis <cd.rattan@gmail.com> | 2012-08-06 19:06:15 -0700 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2013-04-29 13:06:02 +0200 |
commit | 3c14ab13b19fd11f728d61b7f467b09c4e06fc02 (patch) | |
tree | fb1dc3b576882bec25162dfe0833c7253d674d6c /source3/utils/regedit_hexedit.h | |
parent | bdc40f909f5387698664d3e77dc530d2c2b68a93 (diff) | |
download | samba-3c14ab13b19fd11f728d61b7f467b09c4e06fc02.tar.gz samba-3c14ab13b19fd11f728d61b7f467b09c4e06fc02.tar.bz2 samba-3c14ab13b19fd11f728d61b7f467b09c4e06fc02.zip |
regedit: Import hex editor.
This was tested separately editing files. It needs to be
connected to regedit's value editor.
Reviewed-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
Diffstat (limited to 'source3/utils/regedit_hexedit.h')
-rw-r--r-- | source3/utils/regedit_hexedit.h | 50 |
1 files changed, 50 insertions, 0 deletions
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 <ncurses.h> + +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 |