Blame SOURCES/kbd-1.15.5-loadkeys-regression.patch

3787e6
diff -up kbd-1.15.5/src/loadkeys.analyze.l.orig kbd-1.15.5/src/loadkeys.analyze.l
3787e6
--- kbd-1.15.5/src/loadkeys.analyze.l.orig	2013-01-21 11:22:51.374582275 +0100
3787e6
+++ kbd-1.15.5/src/loadkeys.analyze.l	2013-01-21 11:25:29.278331267 +0100
3787e6
@@ -307,8 +307,10 @@ To                      to|To|TO
3787e6
 				char *s = xstrndup(yytext+1, strlen(yytext)-2);
3787e6
 				/* use static pathname to store *s ? */
3787e6
 				open_include(s);
3787e6
-				yy_pop_state();
3787e6
-				state_ptr--;
3787e6
+				while (state_ptr > 0) {
3787e6
+					yy_pop_state();
3787e6
+					state_ptr--;
3787e6
+				}
3787e6
 			}
3787e6
 <INCLSTR>[^"]|\"\"|\"[^"\n]*{Eol}	{
3787e6
 				yyerror(_("expected filename between quotes"));
3787e6
@@ -323,7 +325,7 @@ To                      to|To|TO
3787e6
 			}
3787e6
 {Eol}			{
3787e6
 				line_nr++;
3787e6
-				if (state_ptr > 0) {
3787e6
+				while (state_ptr > 0) {
3787e6
 					yy_pop_state();
3787e6
 					state_ptr--;
3787e6
 				}
3787e6
@@ -428,8 +430,10 @@ To                      to|To|TO
3787e6
 			}
3787e6
 <STR>\"			{
3787e6
 				*p = '\0';
3787e6
-				yy_pop_state();
3787e6
-				state_ptr--;
3787e6
+				while (state_ptr > 0) {
3787e6
+					yy_pop_state();
3787e6
+					state_ptr--;
3787e6
+				}
3787e6
 				return(STRLITERAL);
3787e6
 			}
3787e6
 .			{