]> granicus.if.org Git - vim/commitdiff
patch 9.0.1049: crash when opening a very small terminal window v9.0.1049
authorBram Moolenaar <Bram@vim.org>
Mon, 12 Dec 2022 13:47:44 +0000 (13:47 +0000)
committerBram Moolenaar <Bram@vim.org>
Mon, 12 Dec 2022 13:47:44 +0000 (13:47 +0000)
Problem:    Crash when opening a very small terminal window.
Solution:   Instead of crashing fix the cursor position. (closes #11697)

src/libvterm/src/screen.c
src/version.c

index 069306ab95dce5d3d0118ab1c33c154ede7bf766..fb1d26e4328511db116fc1b4e29047b8fd029a27 100644 (file)
@@ -661,9 +661,15 @@ static void resize_buffer(VTermScreen *screen, int bufidx, int new_rows, int new
   }
 
   /* We really expect the cursor position to be set by now */
+  /* Unfortunately we do get here when "new_rows" is one.  We don't want
+   * to crash, so until the above code is fixed let's just set the cursor. */
   if(active && (new_cursor.row == -1 || new_cursor.col == -1)) {
-    fprintf(stderr, "screen_resize failed to update cursor position\n");
-    abort();
+    /* fprintf(stderr, "screen_resize failed to update cursor position\n");
+     * abort(); */
+    if (new_cursor.row < 0)
+      new_cursor.row = 0;
+    if (new_cursor.col < 0)
+      new_cursor.col = 0;
   }
 
   if(old_row >= 0 && bufidx == BUFIDX_PRIMARY) {
index ad9e52b2e42921a19efe4a09df51d1157bd76835..48d9250cb43bb612b032fc37a5b74c94e7aa80ec 100644 (file)
@@ -695,6 +695,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1049,
 /**/
     1048,
 /**/