diff --git a/src/libs/3rdparty/libvterm/src/parser.c b/src/libs/3rdparty/libvterm/src/parser.c index b43a549cefc..b8959fdfe5b 100644 --- a/src/libs/3rdparty/libvterm/src/parser.c +++ b/src/libs/3rdparty/libvterm/src/parser.c @@ -203,7 +203,7 @@ size_t vterm_input_write(VTerm *vt, const char *bytes, size_t len) switch(vt->parser.state) { case CSI_LEADER: /* Extract leader bytes 0x3c to 0x3f */ - if(c >= 0x3c && c <= 0x3f) { + if(c >= 0x3c && c <= 0x3f || c == '!') { if(vt->parser.v.csi.leaderlen < CSI_LEADER_MAX-1) vt->parser.v.csi.leader[vt->parser.v.csi.leaderlen++] = c; break; diff --git a/src/libs/3rdparty/libvterm/src/state.c b/src/libs/3rdparty/libvterm/src/state.c index 5362efbcd35..1aa8ce5aa44 100644 --- a/src/libs/3rdparty/libvterm/src/state.c +++ b/src/libs/3rdparty/libvterm/src/state.c @@ -934,6 +934,7 @@ static int on_csi(const char *leader, const long args[], int argcount, const cha return 0; switch(leader[0]) { + case '!': case '?': case '>': leader_byte = leader[0];