From: Bram Moolenaar Date: Mon, 12 Dec 2022 13:47:44 +0000 (+0000) Subject: patch 9.0.1049: crash when opening a very small terminal window X-Git-Tag: v9.0.1049 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=67578e5bcf7404d40d42876b738b72e68add1a3e;p=thirdparty%2Fvim.git 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 #11697) --- diff --git a/src/libvterm/src/screen.c b/src/libvterm/src/screen.c index 069306ab95..fb1d26e432 100644 --- a/src/libvterm/src/screen.c +++ b/src/libvterm/src/screen.c @@ -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) { diff --git a/src/version.c b/src/version.c index ad9e52b2e4..48d9250cb4 100644 --- a/src/version.c +++ b/src/version.c @@ -695,6 +695,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1049, /**/ 1048, /**/