fix %lf, etc. with printf
authorRich Felker <dalias@aerifal.cx>
Tue, 17 Apr 2012 01:50:23 +0000 (21:50 -0400)
committerRich Felker <dalias@aerifal.cx>
Tue, 17 Apr 2012 01:50:23 +0000 (21:50 -0400)
the l prefix is redundant/no-op with printf, since default promotions
always promote floats to double; however, it is valid, and printf was
wrongly rejecting it.

src/stdio/vfprintf.c

index b5001ff..928c8c1 100644 (file)
@@ -73,6 +73,8 @@ static const unsigned char states[]['z'-'A'+1] = {
        }, { /* 1: l-prefixed */
                S('d') = LONG, S('i') = LONG,
                S('o') = ULONG, S('u') = ULONG, S('x') = ULONG, S('X') = ULONG,
+               S('e') = DBL, S('f') = DBL, S('g') = DBL, S('a') = DBL,
+               S('E') = DBL, S('F') = DBL, S('G') = DBL, S('A') = DBL,
                S('c') = INT, S('s') = PTR, S('n') = PTR,
                S('l') = LLPRE,
        }, { /* 2: ll-prefixed */