From bc631570c3b3875e8a03ecbbe6dfee483fb82053 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Janouch?= Date: Fri, 30 Dec 2016 05:36:06 +0100 Subject: [PATCH] Finishing touches for an early release --- README.adoc | 14 +++++++++----- hex.c | 10 ++++++---- hex.png | Bin 0 -> 8165 bytes 3 files changed, 15 insertions(+), 9 deletions(-) create mode 100644 hex.png diff --git a/README.adoc b/README.adoc index 6f550f1..334add0 100644 --- a/README.adoc +++ b/README.adoc @@ -1,12 +1,15 @@ hex === -'hex' is yet another hex viewer. As of now, there are no advantages to it. +'hex' is yet another hex viewer. Right now there are no advantages to it as it +has almost no features at all at this stage. + +image::hex.png[align="center"] Plans ----- In the future, it should be able to automatically interpret fields within files -using a set of Lua scripts. +using a set of Lua scripts, colorize them and show descriptions on the side. Packages -------- @@ -41,7 +44,8 @@ Or you can try telling CMake to make a package for you. For Debian it is: Note that for versions of CMake before 2.8.9, you need to prefix `cpack` with `fakeroot` or file ownership will end up wrong. -Having the program installed, optionally create a configuration file and run it. +Having the program installed, optionally create a configuration file and run it +on a file of your choice. Configuration ------------- @@ -50,9 +54,9 @@ Create _~/.config/hex/hex.conf_ with contents like the following: .... colors = { footer = "" - highlight = "bold" + footer_hl = "bold" bar = "reverse" - bar_active = "ul" + bar_hl = "reverse bold" even = "" odd = "" selection = "reverse" diff --git a/hex.c b/hex.c index 4168b9e..10737a4 100644 --- a/hex.c +++ b/hex.c @@ -24,10 +24,10 @@ // Avoiding colours in the defaults here in order to support dumb terminals. #define ATTRIBUTE_TABLE(XX) \ XX( FOOTER, "footer", -1, -1, 0 ) \ - XX( HIGHLIGHT, "highlight", -1, -1, A_BOLD ) \ + XX( FOOTER_HL, "footer_hl", -1, -1, A_BOLD ) \ /* Bar */ \ XX( BAR, "bar", -1, -1, A_REVERSE ) \ - XX( BAR_ACTIVE, "bar_active", -1, -1, A_REVERSE | A_BOLD ) \ + XX( BAR_HL, "bar_hl", -1, -1, A_REVERSE | A_BOLD ) \ /* View */ \ XX( EVEN, "even", -1, -1, 0 ) \ XX( ODD, "odd", -1, -1, 0 ) \ @@ -440,7 +440,7 @@ app_footer_field (struct row_buffer *b, char id, int len, const char *fmt, ...) coding = "be"; char *key = xstrdup_printf ("%c%d%s", id, len * 8, coding); - row_buffer_append (b, key, APP_ATTR (HIGHLIGHT)); + row_buffer_append (b, key, APP_ATTR (FOOTER_HL)); free (key); struct str value; @@ -462,7 +462,7 @@ app_draw_footer (void) // XXX: can we get rid of this and still make it look acceptable? chtype a_normal = APP_ATTR (BAR); - chtype a_active = APP_ATTR (BAR_ACTIVE); + chtype a_active = APP_ATTR (BAR_HL); struct row_buffer buf; row_buffer_init (&buf); @@ -848,6 +848,8 @@ g_default_bindings[] = { "End", ACTION_GOTO_BOTTOM, {}}, { "M-<", ACTION_GOTO_TOP, {}}, { "M->", ACTION_GOTO_BOTTOM, {}}, + { "g", ACTION_GOTO_TOP, {}}, + { "G", ACTION_GOTO_BOTTOM, {}}, { "PageUp", ACTION_GOTO_PAGE_PREVIOUS, {}}, { "PageDown", ACTION_GOTO_PAGE_NEXT, {}}, { "C-b", ACTION_GOTO_PAGE_PREVIOUS, {}}, diff --git a/hex.png b/hex.png new file mode 100644 index 0000000000000000000000000000000000000000..d16dd078a9b7a0c7d61b918b634ec1db085b8856 GIT binary patch literal 8165 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