All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Brian Norris" <computersforpeace@gmail.com>
To: linux-mtd@lists.infradead.org
Cc: Brian Norris <computersforpeace@gmail.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Mike Frysinger <vapier.adi@gmail.com>,
	Artem Bityutskiy <dedekind1@gmail.com>
Subject: [PATCH 3/8] nanddump: Refactor pretty print code into an sprintf()
Date: Mon, 29 Nov 2010 00:01:57 -0800	[thread overview]
Message-ID: <1291017722-23985-3-git-send-email-computersforpeace@gmail.com> (raw)
In-Reply-To: <1291017722-23985-1-git-send-email-computersforpeace@gmail.com>

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 --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++)
-- 
1.7.0.4

  parent reply	other threads:[~2010-11-29  8:04 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-29  8:01 [PATCH 1/8] nanddump/nandwrite: use "simple_" str functions Brian Norris
2010-11-29  8:01 ` [PATCH 2/8] mtd-utils: common.h: Add MAX() macro, fix MIN() Brian Norris
2010-11-29  8:01 ` Brian Norris [this message]
2010-11-29  8:01 ` [PATCH 4/8] nanddump: change "unsigned" to "signed" Brian Norris
2010-11-29  8:01 ` [PATCH 5/8] nanddump: check for negative inputs Brian Norris
2010-12-01  6:18   ` [PATCH v2 " Brian Norris
2010-12-01  7:12     ` [PATCH v3 " Brian Norris
2010-11-29  8:02 ` [PATCH 6/8] nanddump: choose correct "printf" format-specifier Brian Norris
2010-11-29  8:02 ` [PATCH 7/8] nandwrite: add check for negative blockalign Brian Norris
2010-11-29  8:05   ` Mike Frysinger
2010-12-01  6:11     ` Brian Norris
2010-12-01  6:19   ` [PATCH v2 " Brian Norris
2010-11-29  8:02 ` [PATCH 8/8] nandwrite: use common.h "errmsg_die" Brian Norris
2010-12-01  6:20   ` [PATCH v2 " Brian Norris
2010-12-02  3:27 ` [PATCH 1/8] nanddump/nandwrite: use "simple_" str functions Artem Bityutskiy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1291017722-23985-3-git-send-email-computersforpeace@gmail.com \
    --to=computersforpeace@gmail.com \
    --cc=dedekind1@gmail.com \
    --cc=dwmw2@infradead.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=vapier.adi@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.