patch 8.0.0898: can't use the alternate screen in a terminal window
Problem: Can't use the alternate screen in a terminal window.
Solution: Initialze the alternate screen. (Yasuhiro Matsumoto, closes
#1957) Add term_getaltscreen().
diff --git a/src/terminal.c b/src/terminal.c
index b1cb61f..e22f7bc 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -146,6 +146,8 @@
VTermPos tl_cursor_pos;
int tl_cursor_visible;
+
+ int tl_using_altscreen;
};
#define TMODE_ONCE 1 /* CTRL-\ CTRL-N used */
@@ -1316,6 +1318,11 @@
out_flush();
break;
+ case VTERM_PROP_ALTSCREEN:
+ /* TODO: do anything else? */
+ term->tl_using_altscreen = value->boolean;
+ break;
+
default:
break;
}
@@ -1865,6 +1872,9 @@
/* Required to initialize most things. */
vterm_screen_reset(screen, 1 /* hard */);
+
+ /* Allow using alternate screen. */
+ vterm_screen_enable_altscreen(screen, 1);
}
/*
@@ -1939,6 +1949,19 @@
}
/*
+ * "term_getaltscreen(buf)" function
+ */
+ void
+f_term_getaltscreen(typval_T *argvars, typval_T *rettv)
+{
+ buf_T *buf = term_get_buf(argvars);
+
+ if (buf == NULL)
+ return;
+ rettv->vval.v_number = buf->b_term->tl_using_altscreen;
+}
+
+/*
* "term_getattr(attr, name)" function
*/
void