]> sigrok.org Git - libsigrok.git/commitdiff
strutil: add more space in hexdumps after 8 and 16 data bytes
authorGerhard Sittig <redacted>
Sun, 19 Mar 2023 17:06:06 +0000 (18:06 +0100)
committerGerhard Sittig <redacted>
Sun, 19 Mar 2023 21:40:07 +0000 (22:40 +0100)
The previous implementation just had one space between bytes. Which
quickly becomes hard to read for longer runs. Add more spaces after
8 and 16 bytes each for improved readability.

src/strutil.c

index 9376ff09ce24682e2677fa2c54165ab2ad74406d..c389a524d26598aa20a4274969cbd1bf9c76ae4b 100644 (file)
@@ -788,10 +788,17 @@ SR_PRIV GString *sr_hexdump_new(const uint8_t *data, const size_t len)
        GString *s;
        size_t i;
 
-       s = g_string_sized_new(3 * len);
+       i = 3 * len;
+       i += len / 8;
+       i += len / 16;
+       s = g_string_sized_new(i);
        for (i = 0; i < len; i++) {
                if (i)
                        g_string_append_c(s, ' ');
+               if (i && (i % 8) == 0)
+                       g_string_append_c(s, ' ');
+               if (i && (i % 16) == 0)
+                       g_string_append_c(s, ' ');
                g_string_append_printf(s, "%02x", data[i]);
        }