glsl2: Fix lexing of octal values, including "0".
authorEric Anholt <eric@anholt.net>
Mon, 19 Jul 2010 18:52:54 +0000 (11:52 -0700)
committerEric Anholt <eric@anholt.net>
Mon, 19 Jul 2010 18:58:03 +0000 (11:58 -0700)
When faced with a constructor like 'ivec4(0, 2, 0, 0)', we would
manage to get a value of 2 instead of 0 for the first "0".  Usually 2
characters past "0" would point at some junk and lex as 0 anyway.

Fixes glsl-octal and glsl-unused-varyings.

src/glsl/glsl_lexer.lpp

index 6c10008..b0afc44 100644 (file)
@@ -231,7 +231,7 @@ void                return VOID;
                            return INTCONSTANT;
                        }
 0[0-7]*                        {
-                           yylval->n = strtol(yytext + 2, NULL, 8);
+                           yylval->n = strtol(yytext, NULL, 8);
                            return INTCONSTANT;
                        }