diff mbox

[3/8] nanddump: Refactor pretty print code into an sprintf()

Message ID 1291017722-23985-3-git-send-email-computersforpeace@gmail.com
State Accepted
Commit 5a4d06c0fc94cf48d5bab3afa97b16c9022c4181
Headers show

Commit Message

Brian Norris Nov. 29, 2010, 8:01 a.m. UTC
A do-while loop in pretty_dump_to_buffer() can be refactored into a
single sprintf() statement. MAX() and MIN() are used to ensure that:
(1) We have at least a single space between hex and ASCII output
(2) We don't overflow the line buffer

This patch was suggested by Mike Frysinger.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
---
 nanddump.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)
diff mbox

Patch

diff --git a/nanddump.c b/nanddump.c
index bf95e81..14a8816 100644
--- a/nanddump.c
+++ b/nanddump.c
@@ -252,9 +252,10 @@  static void pretty_dump_to_buffer(const unsigned char *buf, size_t len,
 	if (!ascii)
 		goto nil;
 
-	do {
-		linebuf[lx++] = ' ';
-	} while (lx < (linebuflen - 1) && lx < (ascii_column - 1));
+	/* Spacing between hex and ASCII - ensure at least one space */
+	lx += sprintf(linebuf + lx, "%*s",
+			MAX((int)MIN(linebuflen, ascii_column) - 1 - lx, 1),
+			" ");
 
 	linebuf[lx++] = '|';
 	for (j = 0; (j < len) && (lx + 2) < linebuflen; j++)