From: Vladimir 'phcoder' Serbinenko Date: Sun, 14 Mar 2010 13:32:33 +0000 (+0100) Subject: * doc/kernel.c (cmain): Use padding to properly display 64-bit X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=432c7554bf41a13b6af416e35ddd527cbee876b1;p=thirdparty%2Fgrub.git * doc/kernel.c (cmain): Use padding to properly display 64-bit quantities. (printf): Add padding support. Reported by: Soeren D. Schulze. --- diff --git a/ChangeLog b/ChangeLog index b8ce5673b..09068870f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2010-03-14 Vladimir Serbinenko + + * doc/kernel.c (cmain): Use padding to properly display 64-bit + quantities. + (printf): Add padding support. + Reported by: Soeren D. Schulze. + 2010-02-09 Vladimir Serbinenko * doc/multiboot.texi: Fix a typo. diff --git a/doc/kernel.c b/doc/kernel.c index d8a5323a7..e36f2d4c2 100644 --- a/doc/kernel.c +++ b/doc/kernel.c @@ -141,8 +141,8 @@ cmain (unsigned long magic, unsigned long addr) (unsigned long) mmap < mbi->mmap_addr + mbi->mmap_length; mmap = (multiboot_memory_map_t *) ((unsigned long) mmap + mmap->size + sizeof (mmap->size))) - printf (" size = 0x%x, base_addr = 0x%x%x," - " length = 0x%x%x, type = 0x%x\n", + printf (" size = 0x%x, base_addr = 0x%x%08x," + " length = 0x%x%08x, type = 0x%x\n", (unsigned) mmap->size, (unsigned) (mmap->addr >> 32), (unsigned) (mmap->addr & 0xffffffff), @@ -337,9 +337,22 @@ printf (const char *format, ...) putchar (c); else { - char *p; + char *p, *p2; + int pad0 = 0, pad = 0; c = *format++; + if (c == '0') + { + pad0 = 1; + c = *format++; + } + + if (c >= '0' && c <= '9') + { + pad = c - '0'; + c = *format++; + } + switch (c) { case 'd': @@ -356,6 +369,9 @@ printf (const char *format, ...) p = "(null)"; string: + for (p2 = p; *p2; p2++); + for (; p2 < p + pad; p2++) + putchar (pad0 ? '0' : ' '); while (*p) putchar (*p++); break;