summaryrefslogtreecommitdiff
path: root/source3/utils/regedit_hexedit.h
diff options
context:
space:
mode:
authorC. Davis <cd.rattan@gmail.com>2012-08-06 19:06:15 -0700
committerMichael Adam <obnox@samba.org>2013-04-29 13:06:02 +0200
commit3c14ab13b19fd11f728d61b7f467b09c4e06fc02 (patch)
treefb1dc3b576882bec25162dfe0833c7253d674d6c /source3/utils/regedit_hexedit.h
parentbdc40f909f5387698664d3e77dc530d2c2b68a93 (diff)
downloadsamba-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.h50
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