changeset 31433:c9da70c1e6d5 v9.0.1049

patch 9.0.1049: crash when opening a very small terminal window Commit: https://github.com/vim/vim/commit/67578e5bcf7404d40d42876b738b72e68add1a3e Author: Bram Moolenaar <Bram@vim.org> Date: Mon Dec 12 13:47:44 2022 +0000 patch 9.0.1049: crash when opening a very small terminal window Problem: Crash when opening a very small terminal window. Solution: Instead of crashing fix the cursor position. (closes https://github.com/vim/vim/issues/11697)
author Bram Moolenaar <Bram@vim.org>
date Mon, 12 Dec 2022 15:00:05 +0100
parents 564574ecbe03
children 82f2f32bbe5e
files src/libvterm/src/screen.c src/version.c
diffstat 2 files changed, 10 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/libvterm/src/screen.c
+++ b/src/libvterm/src/screen.c
@@ -661,9 +661,15 @@ static void resize_buffer(VTermScreen *s
   }
 
   /* 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) {
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1049,
+/**/
     1048,
 /**/
     1047,