[PATCH] commands: digest: show area info only if necessary

Antony Pavlov antonynpavlov at gmail.com
Wed Apr 5 03:02:38 PDT 2017


Area info "0x00000000 ... 0xffffffffffffffff" in digest
commands output is something strange and misleading, e.g.

  barebox at barebox sandbox:/ md5sum logo/barebox-logo-240.png
  d3226a0eba3fd49af6bd190b077a3466  logo/barebox-logo-240.png 0x00000000 ... 0xffffffffffffffff

Also skipping area info in the barebox digets commands
output for every file makes it more similar to traditional
*nix digest commands output.

Signed-off-by: Antony Pavlov <antonynpavlov at gmail.com>
---
 commands/digest.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/commands/digest.c b/commands/digest.c
index 02a9f6f0d..0edbbec32 100644
--- a/commands/digest.c
+++ b/commands/digest.c
@@ -36,12 +36,16 @@ int __do_digest(struct digest *d, unsigned char *sig,
 	while (*argv) {
 		char *filename = "/dev/mem";
 		loff_t start = 0, size = ~0;
+		int show_area = 1;
 
 		/* arguments are either file, file+area or area */
 		if (parse_area_spec(*argv, &start, &size)) {
 			filename = *argv;
-			if (argv[1] && !parse_area_spec(argv[1], &start, &size))
+			show_area = 0;
+			if (argv[1] && !parse_area_spec(argv[1], &start, &size)) {
 				argv++;
+				show_area = 1;
+			}
 		}
 
 		ret = digest_file_window(d, filename,
@@ -53,8 +57,12 @@ int __do_digest(struct digest *d, unsigned char *sig,
 				for (i = 0; i < digest_length(d); i++)
 					printf("%02x", hash[i]);
 
-				printf("  %s\t0x%08llx ... 0x%08llx\n",
-					filename, start, start + size);
+				printf("  %s", filename);
+				if (show_area)
+					printf("\t0x%08llx ... 0x%08llx",
+						start, start + size);
+
+				puts("\n");
 			}
 		}
 
-- 
2.11.0




More information about the barebox mailing list