Thread (7 messages) 7 messages, 4 authors, 2021-10-14

RE: Use of '%#02x' is almost always wrong

From: David Laight <hidden>
Date: 2021-10-14 08:27:24
Also in: lkml

From: Bernd Petrovitsch
Sent: 14 October 2021 00:16

On 12/10/2021 23:10, David Laight wrote:
[...]
quoted
quoted
So presumably all the uses of %#02x in the kernel are not outputting
what is actually expected.  Perhaps all of these should use %#04x.
Doesn't help. The definition of "%#x" is completely broken.
Seconded ...
quoted
Basically 0 doesn't get the "0x" prefix, so "%#04x" outputs
"0000".
... just because of that.
And if one get's in touch with tools where format strings are
the % -stuff is not consistently used ...
quoted
"0000" if the value is zero.
So the correct replacement is (probably) "0x%02x".
At least it's consistent that way.

And in the big techie picture, I don't see what the '#' modifer
buys and why it makes sense to use it.
It works for "%#8x" where it add the "0x" to the right-aligned
hex digits.

	David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help