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
