Fixes: debbugs:8806
authorAndreas Schwab <schwab@linux-m68k.org>
Sun, 5 Jun 2011 22:46:26 +0000 (00:46 +0200)
committerAndreas Schwab <schwab@linux-m68k.org>
Sun, 5 Jun 2011 22:46:26 +0000 (00:46 +0200)
* src/editfns.c (Fformat): Correctly handle zero flag with hexadecimal
format.

src/ChangeLog
src/editfns.c

index 1b16fdc..ca369bf 100644 (file)
@@ -1,5 +1,8 @@
 2011-06-05  Andreas Schwab  <schwab@linux-m68k.org>
 
+       * editfns.c (Fformat): Correctly handle zero flag with hexadecimal
+       format.  (Bug#8806)
+
        * gtkutil.c (xg_get_default_scrollbar_width): Avoid warning.
 
        * xfns.c (x_set_scroll_bar_default_width): Move declarations
index 0e40fde..b961e60 100644 (file)
@@ -4083,7 +4083,10 @@ usage: (format STRING &rest OBJECTS)  */)
                  int exponent_bytes = 0;
                  int signedp = src0 == '-' || src0 == '+' || src0 == ' ';
                  int significand_bytes;
-                 if (zero_flag && '0' <= src[signedp] && src[signedp] <= '9')
+                 if (zero_flag
+                     && ((src[signedp] >= '0' && src[signedp] <= '9')
+                         || (src[signedp] >= 'a' && src[signedp] <= 'f')
+                         || (src[signedp] >= 'A' && src[signedp] <= 'F')))
                    {
                      leading_zeros += padding;
                      padding = 0;