[PATCH 2/2] cksum: support hexadecimal output (new option: -x)

Joshua Judson Rosen jrosen at harvestai.com
Thu Oct 2 20:16:55 UTC 2014


From: Matt Cross <matt.cross at gmail.com>

Signed-off-by: Matt Cross <matt.cross at gmail.com>
Signed-off-by: Joshua Judson Rosen <jrosen at harvestai.com>
---
 coreutils/cksum.c |    9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/coreutils/cksum.c b/coreutils/cksum.c
index b45233e..c916689 100644
--- a/coreutils/cksum.c
+++ b/coreutils/cksum.c
@@ -16,10 +16,11 @@
 
 /* This is a NOEXEC applet. Be very careful! */
 
-#define OPTION_STRING "l"
+#define OPTION_STRING "lx"
 
 enum {
     OPT_LITTLE_ENDIAN   = (1 << 0),
+    OPT_HEXADECIMAL     = (1 << 1),
 };
 
 int cksum_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
@@ -75,8 +76,10 @@ int cksum_main(int argc UNUSED_PARAM, char **argv)
 		}
 		crc = ~crc;
 
-		printf((*argv ? "%"PRIu32" %"OFF_FMT"i %s\n" : "%"PRIu32" %"OFF_FMT"i\n"),
-				crc, filesize, *argv);
+		printf(((option_mask32 & OPT_HEXADECIMAL)
+			? (*argv ? "0x%"PRIx32" 0x%"OFF_FMT"x %s\n" : "0x%"PRIx32" 0x%"OFF_FMT"x\n")
+			: (*argv ? "%"PRIu32" %"OFF_FMT"i %s\n" : "%"PRIu32" %"OFF_FMT"i\n")),
+		       crc, filesize, *argv);
 	} while (*argv && *++argv);
 
 	fflush_stdout_and_exit(exit_code);
-- 
1.7.10.4



More information about the busybox mailing list