coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] split: allow hexadecimal suffixes


From: Michael Heimpold
Subject: [PATCH] split: allow hexadecimal suffixes
Date: Sat, 11 Mar 2017 13:16:32 +0100

I am surprised that nobody has ever needed this before, so here
is my story: I'm using this to split eMMC disk images into smaller
chunks which are then flashed by U-Boot bootloader into the target
devices. And since U-Boot handles almost everything as hexadecimal
numbers, it's convenient to have the chunks named automatically so
by split, instead of having an additional loop with renames afterwards.
---

Since this is my first contribution to coreutils, please let me
know in case I'm doing it wrong. Please also note, that I'm not
subscribe to the ML.

Best regards,
Michael

 src/split.c | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/src/split.c b/src/split.c
index 9662336..e9adee8 100644
--- a/src/split.c
+++ b/src/split.c
@@ -141,6 +141,7 @@ static struct option const longopts[] =
   {"additional-suffix", required_argument, NULL,
    ADDITIONAL_SUFFIX_OPTION},
   {"numeric-suffixes", optional_argument, NULL, 'd'},
+  {"hexadecimal-suffixes", optional_argument, NULL, 'x'},
   {"filter", required_argument, NULL, FILTER_OPTION},
   {"verbose", no_argument, NULL, VERBOSE_OPTION},
   {"separator", required_argument, NULL, 't'},
@@ -240,8 +241,9 @@ default size is 1000 lines, and default PREFIX is 'x'.\n\
   -b, --bytes=SIZE        put SIZE bytes per output file\n\
   -C, --line-bytes=SIZE   put at most SIZE bytes of records per output file\n\
   -d                      use numeric suffixes starting at 0, not alphabetic\n\
-      --numeric-suffixes[=FROM]  same as -d, but allow setting the start value\
-\n\
+      --numeric-suffixes[=FROM]  same as -d, but allow setting the start 
value\n\
+  -x                      use hexadecimal suffixes starting at 0, not 
alphabetic\n\
+      --hexadecimal-suffixes[=FROM]  same as -x, but allow setting the start 
value\n\
   -e, --elide-empty-files  do not generate empty output files with '-n'\n\
       --filter=COMMAND    write to shell COMMAND; file name is $FILE\n\
   -l, --lines=NUMBER      put NUMBER lines/records per output file\n\
@@ -1314,7 +1316,7 @@ main (int argc, char **argv)
       int this_optind = optind ? optind : 1;
       char *slash;
 
-      c = getopt_long (argc, argv, "0123456789C:a:b:del:n:t:u",
+      c = getopt_long (argc, argv, "0123456789C:a:b:del:n:t:ux",
                        longopts, NULL);
       if (c == -1)
         break;
@@ -1453,13 +1455,19 @@ main (int argc, char **argv)
           break;
 
         case 'd':
-          suffix_alphabet = "0123456789";
+        case 'x':
+          if (c == 'd')
+            suffix_alphabet = "0123456789";
+          else
+            suffix_alphabet = "0123456789abcdef";
           if (optarg)
             {
               if (strlen (optarg) != strspn (optarg, suffix_alphabet))
                 {
                   error (0, 0,
-                         _("%s: invalid start value for numerical suffix"),
+                         (c == 'd') ?
+                           _("%s: invalid start value for numerical suffix") :
+                           _("%s: invalid start value for hexadecimal suffix"),
                          quote (optarg));
                   usage (EXIT_FAILURE);
                 }
-- 
2.7.4




reply via email to

[Prev in Thread] Current Thread [Next in Thread]