summaryrefslogtreecommitdiff
path: root/src/libvterm
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-04-06 17:47:40 +0200
committerBram Moolenaar <Bram@vim.org>2019-04-06 17:47:40 +0200
commitfa1e90cd4d1bebd66da22df4625f70963f091f17 (patch)
tree4d129283fee69272fd52f7d88e27b7822b21a3f2 /src/libvterm
parentd9eefe3155277cec71105f52d34a76f7a3237e7f (diff)
downloadvim-git-fa1e90cd4d1bebd66da22df4625f70963f091f17.tar.gz
patch 8.1.1125: libvterm does not handle the window position reportv8.1.1125
Problem: Libvterm does not handle the window position report. Solution: Let libvterm call the fallback CSI handler when not handling CSI sequence. Handle the window position report in Vim.
Diffstat (limited to 'src/libvterm')
-rw-r--r--src/libvterm/src/state.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/libvterm/src/state.c b/src/libvterm/src/state.c
index 8b02093bb..a1261455f 100644
--- a/src/libvterm/src/state.c
+++ b/src/libvterm/src/state.c
@@ -905,6 +905,7 @@ static int on_csi(const char *leader, const long args[], int argcount, const cha
int leader_byte = 0;
int intermed_byte = 0;
VTermPos oldpos = state->pos;
+ int handled = 1;
/* Some temporaries for later code */
int count, val;
@@ -1416,6 +1417,10 @@ static int on_csi(const char *leader, const long args[], int argcount, const cha
case 8: /* CSI 8 ; rows ; cols t set size */
if (argcount == 3)
on_resize(CSI_ARG(args[1]), CSI_ARG(args[2]), state);
+ break;
+ default:
+ handled = 0;
+ break;
}
break;
@@ -1450,6 +1455,11 @@ static int on_csi(const char *leader, const long args[], int argcount, const cha
break;
default:
+ handled = 0;
+ break;
+ }
+
+ if (!handled) {
if(state->fallbacks && state->fallbacks->csi)
if((*state->fallbacks->csi)(leader, args, argcount, intermed, command, state->fbdata))
return 1;