File xterm-reset-parsing-state.patch of Package xterm.32862
--- charproc.c
+++ charproc.c
@@ -2533,6 +2533,7 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp)
TRACE(("CASE_VT52_CUP - VT52 cursor addressing\n"));
sp->vt52_cup = True;
InitParams();
+ ResetState(sp);
break;
case CASE_VT52_IGNORE:
@@ -4719,7 +4730,9 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp)
for (value = 1; value <= 5; ++value)
set_mod_fkeys(xw, value, DEFAULT, True);
}
+ ResetState(sp);
break;
+
case CASE_SET_MOD_FKEYS0:
TRACE(("CASE_SET_MOD_FKEYS0\n"));
if (nparam >= 1 && GetParam(0) != DEFAULT) {
@@ -4727,6 +4740,7 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp)
} else {
xw->keyboard.modify_now.function_keys = -1;
}
+ ResetState(sp);
break;
#endif
case CASE_HIDE_POINTER:
@@ -4736,6 +4750,7 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp)
} else {
screen->pointer_mode = DEF_POINTER_MODE;
}
+ ResetState(sp);
break;
case CASE_SM_TITLE:
@@ -4750,6 +4765,7 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp)
screen->title_modes = DEF_TITLE_MODES;
}
TRACE(("...title_modes %#x\n", screen->title_modes));
+ ResetState(sp);
break;
case CASE_RM_TITLE:
@@ -4764,6 +4780,7 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp)
screen->title_modes = DEF_TITLE_MODES;
}
TRACE(("...title_modes %#x\n", screen->title_modes));
+ ResetState(sp);
break;
case CASE_CSI_IGNORE: