[git commit] xxd: compat tweak for -i

Denys Vlasenko vda.linux at googlemail.com
Thu Jun 24 22:16:04 UTC 2021


commit: https://git.busybox.net/busybox/commit/?id=294d0c85adcbcf48da1fc0f48dae3aed59c07436
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

function                                             old     new   delta
xxd_main                                             888     893      +5
.rodata                                           103669  103674      +5
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 10/0)               Total: 10 bytes

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 util-linux/hexdump_xxd.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/util-linux/hexdump_xxd.c b/util-linux/hexdump_xxd.c
index aa215569f..fe78f6242 100644
--- a/util-linux/hexdump_xxd.c
+++ b/util-linux/hexdump_xxd.c
@@ -186,9 +186,11 @@ int xxd_main(int argc UNUSED_PARAM, char **argv)
 	} else {
 		if (cols == 0)
 			cols = (opt & OPT_i) ? 12 : 16;
-		if (opt & OPT_i)
-			bytes = 1; /* -i ignores -gN */
-		else
+		if (opt & OPT_i) {
+			bytes = 1; // -i ignores -gN
+			// output is "  0xXX, 0xXX, 0xXX...", add leading space
+			bb_dump_add(dumper, "\" \"");
+		} else
 			bb_dump_add(dumper, "\"%08.8_ax: \""); // "address: "
 	}
 
@@ -197,14 +199,15 @@ int xxd_main(int argc UNUSED_PARAM, char **argv)
 	}
 
 	if (bytes < 1 || bytes >= cols) {
-		sprintf(buf, "%u/1 \"%%02x\"", cols); // cols * "xx"
+		sprintf(buf, "%u/1 \"%%02x\"", cols); // cols * "XX"
 		bb_dump_add(dumper, buf);
 	}
 	else if (bytes == 1) {
 		if (opt & OPT_i)
-			sprintf(buf, "%u/1 \" 0x%%02x,\"", cols); // cols * " 0xxx,"
+			sprintf(buf, "%u/1 \" 0x%%02x,\"", cols); // cols * " 0xXX,"
+//TODO: compat: omit the last comma after the very last byte
 		else
-			sprintf(buf, "%u/1 \"%%02x \"", cols); // cols * "xx "
+			sprintf(buf, "%u/1 \"%%02x \"", cols); // cols * "XX "
 		bb_dump_add(dumper, buf);
 	}
 	else {


More information about the busybox-cvs mailing list