Re: [PATCH] use %p for pointers

From: Nikita Danilov
Date: Thu Oct 12 2006 - 07:06:19 EST


H. Peter Anvin writes:
> Al Viro wrote:
> >
> > %p will do no such thing in the kernel. As for the difference... %x
> > might happen to work on some architectures (where sizeof(void *)==sizeof(int)),
> > but it's not portable _and_ not right. %p is proper C for that...
>
> It's really too bad gcc bitches about %#p, because that's arguably The
> Right Thing.

Hm...

man 3 printf:

p The void * pointer argument is printed in hexadeci-
mal (as if by %#x or %#lx).

so %p already has to output '0x', it's lib/vsprintf.c to blame for
non-conforming behavior. What about

Signed-off-by: Nikita Danilov <danilov@xxxxxxxxx>

Index: git-linux/lib/vsprintf.c
===================================================================
--- git-linux.orig/lib/vsprintf.c
+++ git-linux/lib/vsprintf.c
@@ -408,7 +408,7 @@ int vsnprintf(char *buf, size_t size, co
}
str = number(str, end,
(unsigned long) va_arg(args, void *),
- 16, field_width, precision, flags);
+ 16, field_width, precision, flags|SPECIAL);
continue;



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/