Automatically zero-pads %p
authorBarret Rhoden <brho@cs.berkeley.edu>
Mon, 27 May 2013 18:20:30 +0000 (11:20 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Mon, 27 May 2013 18:20:30 +0000 (11:20 -0700)
I tend to use this as a "print a 0x, zero pad out to sizeof void* bits,
and print in hex".  This change will get rid of the need for me to %08,
and will adjust to %016 for 64 bit pointers.

kern/src/printfmt.c

index 90e7486..235ee20 100644 (file)
@@ -214,6 +214,9 @@ void vprintfmt(void (*putch)(int, void**), void **putdat, const char *fmt, va_li
                case 'p':
                        putch('0', putdat);
                        putch('x', putdat);
+                       /* automatically zero-pad pointers, out to the length of a ptr */
+                       padc = '0';
+                       width = sizeof(void*) * 2;      /* 8 bits per byte / 4 bits per char */
                        num = (unsigned long long)
                                (uintptr_t) va_arg(ap, void *);
                        base = 16;