blob: c78a22780840327636eb3e67bb4c2d1800a952e4 [file] [log] [blame]
https://bugs.gentoo.org/447440
From 7e06e56157e8431d02e1377cdc44230944203d88 Mon Sep 17 00:00:00 2001
From: Alexey Gladkov <gladkov.alexey@gmail.com>
Date: Tue, 11 Dec 2012 14:24:44 +0400
Subject: [PATCH] Fix regression in 16117ce6ab
Signed-off-by: Alexey Gladkov <gladkov.alexey@gmail.com>
---
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--;
+ }
}
<INCLSTR>[^"]|\"\"|\"[^"\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
}
<STR>\" {
*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