All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] vsprintf: Correctly handle width when '#' flag used in %#p format.
@ 2012-04-16 18:17 Grant Likely
  2012-04-16 21:48 ` Andrew Morton
  0 siblings, 1 reply; 2+ messages in thread
From: Grant Likely @ 2012-04-16 18:17 UTC (permalink / raw)
  To: linux-kernel; +Cc: Grant Likely, Andrew Morton

This patch adjusts the default width of pointer output to include the
'0x' characters when the '#' flag is included in the format string.

Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Cc: Andrew Morton <akpm@linux-foundation.org>
---
 lib/vsprintf.c |    8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/lib/vsprintf.c b/lib/vsprintf.c
index abbabec..1043827 100644
--- a/lib/vsprintf.c
+++ b/lib/vsprintf.c
@@ -866,13 +866,15 @@ static noinline_for_stack
 char *pointer(const char *fmt, char *buf, char *end, void *ptr,
 	      struct printf_spec spec)
 {
+	int default_width = 2 * sizeof(void*) + (spec.flags & SPECIAL ? 2 : 0);
+
 	if (!ptr && *fmt != 'K') {
 		/*
 		 * Print (null) with the same width as a pointer so it makes
 		 * tabular output look nice.
 		 */
 		if (spec.field_width == -1)
-			spec.field_width = 2 * sizeof(void *);
+			spec.field_width = default_width;
 		return string(buf, end, "(null)", spec);
 	}
 
@@ -927,7 +929,7 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
 		 */
 		if (in_irq() || in_serving_softirq() || in_nmi()) {
 			if (spec.field_width == -1)
-				spec.field_width = 2 * sizeof(void *);
+				spec.field_width = default_width;
 			return string(buf, end, "pK-error", spec);
 		}
 		if (!((kptr_restrict == 0) ||
@@ -944,7 +946,7 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
 	}
 	spec.flags |= SMALL;
 	if (spec.field_width == -1) {
-		spec.field_width = 2 * sizeof(void *);
+		spec.field_width = default_width;
 		spec.flags |= ZEROPAD;
 	}
 	spec.base = 16;
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] vsprintf: Correctly handle width when '#' flag used in %#p format.
  2012-04-16 18:17 [PATCH] vsprintf: Correctly handle width when '#' flag used in %#p format Grant Likely
@ 2012-04-16 21:48 ` Andrew Morton
  0 siblings, 0 replies; 2+ messages in thread
From: Andrew Morton @ 2012-04-16 21:48 UTC (permalink / raw)
  To: Grant Likely; +Cc: linux-kernel

On Mon, 16 Apr 2012 12:17:54 -0600
Grant Likely <grant.likely@secretlab.ca> wrote:

> This patch adjusts the default width of pointer output to include the
> '0x' characters when the '#' flag is included in the format string.

Well that's a bit terse.  What effect does the patch have upon
printk/sprintf/etc behaviour?  The before-and-after thing?


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2012-04-16 21:48 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-04-16 18:17 [PATCH] vsprintf: Correctly handle width when '#' flag used in %#p format Grant Likely
2012-04-16 21:48 ` Andrew Morton

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.