From 7bf4de8faaf66c25053e9b74a3867a130a1ec67d Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Thu, 12 Dec 2024 15:58:24 -0500 Subject: join hex bytes with dashes, inside a character --- uxd.1 | 2 +- uxd.c | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/uxd.1 b/uxd.1 index d032c25..576814b 100644 --- a/uxd.1 +++ b/uxd.1 @@ -104,7 +104,7 @@ Printable characters (except the space, U+0020) alternate between green and yell .B \fBpurple\fP Spaces and unprintable characters ("control" characters, newlines, tabs, etc). These are printed as "visible" characters, e.g. ␣ for the space, ↵ for a newline. -Hopefilly this is an improvement over the usual practice of printing these as periods, like +Hopefully this is an improvement over the usual practice of printing these as periods, like standard hex dumpers do. The Unicode BOM (byte order marker, U+FEFF) is printed as a purple letter B. .TP diff --git a/uxd.c b/uxd.c index edf071d..75d6364 100644 --- a/uxd.c +++ b/uxd.c @@ -169,7 +169,7 @@ void append_right(char *str) { strcat(right_buf, str); } -void append_left(unsigned char byte, int fgcolor, int bgcolor) { +void append_left(unsigned char byte, int dash, int fgcolor, int bgcolor) { char tmpbuf[100]; if(!dump_column) @@ -178,8 +178,9 @@ void append_left(unsigned char byte, int fgcolor, int bgcolor) { append_color(left_buf, fgcolor, bgcolor); sprintf(tmpbuf, "%02x", byte); strcat(left_buf, tmpbuf); + if(dash) strcat(left_buf, "-"); append_color_off(left_buf); - strcat(left_buf, " "); + if(!dash) strcat(left_buf, " "); if(dump_column == 7) strcat(left_buf, " "); dump_column++; @@ -290,7 +291,7 @@ int dump_utf8_char(void) { append_color_off(right_buf); for(i = 0; i <= cont_count; i++) { - append_left(bytes[i], fg, bg); + append_left(bytes[i], (i != cont_count), fg, bg); } return 1; -- cgit v1.2.3