=== modified file 'grub-core/kern/misc.c' --- grub-core/kern/misc.c 2011-04-18 21:03:52 +0000 +++ grub-core/kern/misc.c 2011-04-22 21:38:31 +0000 @@ -750,10 +750,10 @@ if (*p && *p == '.') { - p++; fmt++; - while (*p && grub_isdigit (*p)) + do p++; + while (*p && grub_isdigit (*p)); if (p > fmt) { @@ -789,39 +789,26 @@ unsig = 1; /* Fall through. */ case 'd': - if (longlongfmt) - { - long long ll; - + { + unsigned long long ll; + if (longlongfmt) ll = va_arg (args, long long); - grub_lltoa (tmp, c, ll); - } - else if (longfmt && unsig) - { - unsigned long l = va_arg (args, unsigned long); - grub_lltoa (tmp, c, l); - } - else if (longfmt) - { - long l = va_arg (args, long); - grub_lltoa (tmp, c, l); - } - else if (unsig) - { - unsigned u = va_arg (args, unsigned); - grub_lltoa (tmp, c, u); - } - else - { - n = va_arg (args, int); - grub_lltoa (tmp, c, n); - } - if (! rightfill && grub_strlen (tmp) < format1) - write_fill (zerofill, format1 - grub_strlen (tmp)); - write_str (tmp); - if (rightfill && grub_strlen (tmp) < format1) - write_fill (zerofill, format1 - grub_strlen (tmp)); - break; + else if (longfmt && unsig) + ll = va_arg (args, unsigned long); + else if (longfmt) + ll = va_arg (args, long); + else if (unsig) + ll = va_arg (args, unsigned); + else + ll = va_arg (args, int); + grub_lltoa (tmp, c, ll); + if (! rightfill && grub_strlen (tmp) < format1) + write_fill (zerofill, format1 - grub_strlen (tmp)); + write_str (tmp); + if (rightfill && grub_strlen (tmp) < format1) + write_fill (zerofill, format1 - grub_strlen (tmp)); + break; + } case 'c': n = va_arg (args, int);