Messages in this thread | | | Date | Tue, 1 Jul 2008 20:46:24 +0200 | From | "Vegard Nossum" <> | Subject | Re: [PATCH] x86: small unifications of address printing |
| |
On Tue, Jul 1, 2008 at 8:29 PM, Andi Kleen <andi@firstfloor.org> wrote: > Vegard Nossum <vegard.nossum@gmail.com> writes: > >> 'man 3 printf' tells me that %p should be printed as if by %#x, but >> this is not true for the kernel, which does not use the '0x' prefix >> for the %p conversion specifier. > > Problem is that %p will not pad to 8/16 digits. Addresses are traditionally > padded.
Yes, it will, and correctly too:
case 'p': flags |= SMALL; if (field_width == -1) { field_width = 2*sizeof(void *); flags |= ZEROPAD; }
Or did I read this code wrong? field_width is initialized to -1 by default unless overridden. The SMALL flag means lowercase hexadecimal digits.
Vegard
-- "The animistic metaphor of the bug that maliciously sneaked in while the programmer was not looking is intellectually dishonest as it disguises that the error is the programmer's own creation." -- E. W. Dijkstra, EWD1036
| |