https://bugs.gentoo.org/447440 From 7e06e56157e8431d02e1377cdc44230944203d88 Mon Sep 17 00:00:00 2001 From: Alexey Gladkov Date: Tue, 11 Dec 2012 14:24:44 +0400 Subject: [PATCH] Fix regression in 16117ce6ab Signed-off-by: Alexey Gladkov --- src/loadkeys.analyze.l | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/loadkeys.analyze.l b/src/loadkeys.analyze.l index c18dcea..f817c78 100644 --- a/src/loadkeys.analyze.l +++ b/src/loadkeys.analyze.l @@ -307,8 +307,10 @@ To to|To|TO char *s = xstrndup(yytext+1, strlen(yytext)-2); /* use static pathname to store *s ? */ open_include(s); - yy_pop_state(); - state_ptr--; + while (state_ptr > 0) { + yy_pop_state(); + state_ptr--; + } } [^"]|\"\"|\"[^"\n]*{Eol} { yyerror(_("expected filename between quotes")); @@ -323,7 +325,7 @@ To to|To|TO } {Eol} { line_nr++; - if (state_ptr > 0) { + while (state_ptr > 0) { yy_pop_state(); state_ptr--; } @@ -428,8 +430,10 @@ To to|To|TO } \" { *p = '\0'; - yy_pop_state(); - state_ptr--; + while (state_ptr > 0) { + yy_pop_state(); + state_ptr--; + } return(STRLITERAL); } . { --- a/src/loadkeys.analyze.c +++ b/src/loadkeys.analyze.c @@ -1359,8 +1359,10 @@ YY_RULE_SETUP char *s = xstrndup(yytext+1, strlen(yytext)-2); /* use static pathname to store *s ? */ open_include(s); - yy_pop_state(); - state_ptr--; + while (state_ptr > 0) { + yy_pop_state(); + state_ptr--; + } } YY_BREAK case 3: @@ -1393,7 +1395,7 @@ YY_RULE_SETUP #line 324 "loadkeys.analyze.l" { line_nr++; - if (state_ptr > 0) { + while (state_ptr > 0) { yy_pop_state(); state_ptr--; } @@ -1670,8 +1670,10 @@ YY_RULE_SETUP #line 429 "loadkeys.analyze.l" { *p = '\0'; - yy_pop_state(); - state_ptr--; + while (state_ptr > 0) { + yy_pop_state(); + state_ptr--; + } return(STRLITERAL); } YY_BREAK -- 1.8.0.2