diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-04-06 17:47:40 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-04-06 17:47:40 +0200 |
commit | fa1e90cd4d1bebd66da22df4625f70963f091f17 (patch) | |
tree | 4d129283fee69272fd52f7d88e27b7822b21a3f2 /src/libvterm | |
parent | d9eefe3155277cec71105f52d34a76f7a3237e7f (diff) | |
download | vim-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.c | 10 |
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; |