From: Colin Watson Date: Wed, 2 Jan 2013 12:48:31 +0000 (+0000) Subject: Fix failing printf test. X-Git-Tag: grub-2.02-beta1~1386 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=45d26abb40d80858beca01fcd283838c430111f1;p=thirdparty%2Fgrub.git Fix failing printf test. * grub-core/kern/misc.c (grub_vsnprintf_real): Parse '-', '.', and '$' in the correct order when collecting type information. --- diff --git a/ChangeLog b/ChangeLog index 68920bfde..bb263f281 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2013-01-02 Colin Watson + + Fix failing printf test. + + * grub-core/kern/misc.c (grub_vsnprintf_real): Parse '-', '.', and + '$' in the correct order when collecting type information. + 2013-01-02 Colin Watson * docs/grub.texi (configfile): Explain environment variable diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c index 95d46245e..c3203a068 100644 --- a/grub-core/kern/misc.c +++ b/grub-core/kern/misc.c @@ -741,23 +741,26 @@ grub_vsnprintf_real (char *str, grub_size_t max_len, const char *fmt0, va_list a if (*fmt && *fmt =='-') fmt++; - while (*fmt && grub_isdigit (*fmt)) - fmt++; - - if (*fmt && *fmt =='.') - fmt++; + p = fmt; while (*fmt && grub_isdigit (*fmt)) fmt++; - p = fmt; - if (*fmt && *fmt == '$') { curn = grub_strtoull (p, 0, 10) - 1; fmt++; } + if (*fmt && *fmt =='-') + fmt++; + + while (*fmt && grub_isdigit (*fmt)) + fmt++; + + if (*fmt && *fmt =='.') + fmt++; + while (*fmt && grub_isdigit (*fmt)) fmt++;