Messages in this thread Patch in this message | | | From | Nikita Danilov <> | Date | Thu, 12 Oct 2006 15:03:58 +0400 | Subject | Re: [PATCH] use %p for pointers |
| |
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@gmail.com>
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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |