summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <curtis.mcenroe@adgear.com>2016-09-12 15:02:22 -0400
committerJune McEnroe <curtis.mcenroe@adgear.com>2016-09-12 15:02:22 -0400
commitbe67621f1cbcca3a2e3d13e5001fa0038b2c0e91 (patch)
tree671ae687dbba51b6a2d431fe544573420f950031
parentAdd -c option to xx (diff)
downloadsrc-be67621f1cbcca3a2e3d13e5001fa0038b2c0e91.tar.gz
src-be67621f1cbcca3a2e3d13e5001fa0038b2c0e91.zip
Add -g option to xx
Diffstat (limited to '')
-rwxr-xr-x.bin/xx.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/.bin/xx.c b/.bin/xx.c
index 153ba74e..3aac12f6 100755
--- a/.bin/xx.c
+++ b/.bin/xx.c
@@ -10,12 +10,15 @@ exec cc -Weverything -Wno-vla -o ~/.bin/xx $0
 int main(int argc, char **argv)
 {
     size_t cols = 16;
+    size_t group = 8;
     char *path = NULL;
 
-    while (getopt(argc, argv, "c:") > 0)
+    while (getopt(argc, argv, "c:g:") > 0)
         if (optopt == 'c') {
             cols = (size_t) strtol(optarg, NULL, 10);
             if (!cols) return EXIT_FAILURE;
+        } else if (optopt == 'g') {
+            group = (size_t) strtol(optarg, NULL, 10);
         } else return EXIT_FAILURE;
     if (argc > optind)
         path = argv[optind];
@@ -29,8 +32,12 @@ int main(int argc, char **argv)
     uint8_t buf[cols];
     for (;;) {
         size_t n = fread(buf, 1, sizeof(buf), file);
-        for (size_t i = 0; i < n; ++i)
+
+        for (size_t i = 0; i < n; ++i) {
+            if (group && i && !(i % group)) printf(" ");
             printf("%02x ", buf[i]);
+        }
+
         printf("\n");
         if (n < sizeof(buf)) break;
     }