diff src/libvterm/src/state.c @ 16241:c1698187c482 v8.1.1125

patch 8.1.1125: libvterm does not handle the window position report commit https://github.com/vim/vim/commit/fa1e90cd4d1bebd66da22df4625f70963f091f17 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Apr 6 17:47:40 2019 +0200 patch 8.1.1125: libvterm does not handle the window position report 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.
author Bram Moolenaar <Bram@vim.org>
date Sat, 06 Apr 2019 18:00:05 +0200
parents 544490b69e1d
children a1229400434a
line wrap: on
line diff
--- a/src/libvterm/src/state.c
+++ b/src/libvterm/src/state.c
@@ -905,6 +905,7 @@ static int on_csi(const char *leader, co
   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, co
       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, co
     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;