summary refs log tree commit diff
diff options
context:
space:
mode:
-rwxr-xr-xhome/.bin/xx.c21
1 files changed, 6 insertions, 15 deletions
diff --git a/home/.bin/xx.c b/home/.bin/xx.c
index 1c77fcd5..78d8db4c 100755
--- a/home/.bin/xx.c
+++ b/home/.bin/xx.c
@@ -21,16 +21,11 @@ static bool allZero(const uint8_t *buf, size_t len) {
 
 enum {
     FLAG_ASCII  = 1 << 0,
-    FLAG_COLOR  = 1 << 1,
-    FLAG_OFFSET = 1 << 2,
-    FLAG_SKIP   = 1 << 3,
-    FLAG_UNDUMP = 1 << 4,
+    FLAG_OFFSET = 1 << 1,
+    FLAG_SKIP   = 1 << 2,
+    FLAG_UNDUMP = 1 << 3,
 };
 
-static void color(size_t i) {
-    printf("\x1b[%c%cm", (i % 8) ? '3' : '9', (char)(i % 8 + '0'));
-}
-
 static void dump(size_t cols, size_t group, uint8_t flags, FILE *file) {
     uint8_t buf[cols];
     size_t offset = 0, len = 0;
@@ -39,8 +34,6 @@ static void dump(size_t cols, size_t group, uint8_t flags, FILE *file) {
         len = fread(buf, 1, sizeof(buf), file);
         if (!len) break;
 
-        if (flags & FLAG_COLOR) printf("\x1b[39m");
-
         if ((flags & FLAG_SKIP) && len == sizeof(buf)) {
             static bool skip;
             if (allZero(buf, len)) {
@@ -57,7 +50,6 @@ static void dump(size_t cols, size_t group, uint8_t flags, FILE *file) {
 
         for (size_t i = 0; i < len; ++i) {
             if (group && i && !(i % group)) printf(" ");
-            if (flags & FLAG_COLOR) color(i);
             printf("%02x ", buf[i]);
         }
 
@@ -67,7 +59,7 @@ static void dump(size_t cols, size_t group, uint8_t flags, FILE *file) {
             }
             printf(" ");
             for (size_t i = 0; i < len; ++i) {
-                if (flags & FLAG_COLOR) color(i);
+                if (group && i && !(i % group)) printf(" ");
                 printf("%c", isprint(buf[i]) ? buf[i] : '.');
             }
         }
@@ -93,17 +85,16 @@ int main(int argc, char *argv[]) {
     char *path = NULL;
 
     int opt;
-    while (0 < (opt = getopt(argc, argv, "aCc:fg:hku"))) {
+    while (0 < (opt = getopt(argc, argv, "ac:fg:hku"))) {
         switch (opt) {
             case 'a': flags ^= FLAG_ASCII; break;
-            case 'C': flags ^= FLAG_COLOR; break;
             case 'f': flags ^= FLAG_OFFSET; break;
             case 'k': flags ^= FLAG_SKIP; break;
             case 'u': flags ^= FLAG_UNDUMP; break;
             case 'c': cols = strtoul(optarg, NULL, 10); break;
             case 'g': group = strtoul(optarg, NULL, 10); break;
             default:
-                fprintf(stderr, "usage: xx [-aCfku] [-c cols] [-g group] [file]\n");
+                fprintf(stderr, "usage: xx [-afku] [-c cols] [-g group] [file]\n");
                 return (opt == 'h') ? EX_OK : EX_USAGE;
         }
     }