Re: [PATCH] x86: small unifications of address printing

Vegard Nossum
2008-07-01T18:46:34Z

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