patch 8.1.0171: typing CTRL-W n in a terminal window causes ml_get error
Problem: Typing CTRL-W n in a terminal window causes ml_get error.
Solution: When resizing the terminal outside of terminal_loop() make sure
the snapshot is complete.
diff --git a/src/terminal.c b/src/terminal.c
index 2e99a85..22b90c8 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -3134,13 +3134,16 @@
if (term->tl_rows != newrows || term->tl_cols != newcols)
{
-
-
term->tl_vterm_size_changed = TRUE;
vterm_set_size(vterm, newrows, newcols);
ch_log(term->tl_job->jv_channel, "Resizing terminal to %d lines",
newrows);
term_report_winsize(term, newrows, newcols);
+
+ // Updating the terminal size will cause the snapshot to be cleared.
+ // When not in terminal_loop() we need to restore it.
+ if (term != in_terminal_loop)
+ may_move_terminal_to_buffer(term, FALSE);
}
/* The cursor may have been moved when resizing. */