39 lines
1.0 KiB
Diff
39 lines
1.0 KiB
Diff
diff -up kbd-1.15.5/src/loadkeys.analyze.l.orig kbd-1.15.5/src/loadkeys.analyze.l
|
|
--- kbd-1.15.5/src/loadkeys.analyze.l.orig 2013-01-21 11:22:51.374582275 +0100
|
|
+++ kbd-1.15.5/src/loadkeys.analyze.l 2013-01-21 11:25:29.278331267 +0100
|
|
@@ -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);
|
|
}
|
|
. {
|