patch 9.0.0350: :echowindow does not work in a compiled function
Problem: :echowindow does not work in a compiled function.
Solution: Handle the expression at compile time.
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 9f7875f..ae1f195 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -8349,11 +8349,20 @@
}
/*
- * ":redraw": force redraw
+ * ":redraw": force redraw, with clear for ":redraw!".
*/
void
ex_redraw(exarg_T *eap)
{
+ redraw_cmd(eap->forceit);
+}
+
+/*
+ * ":redraw": force redraw, with clear if "clear" is TRUE.
+ */
+ void
+redraw_cmd(int clear)
+{
int r = RedrawingDisabled;
int p = p_lz;
@@ -8361,7 +8370,7 @@
p_lz = FALSE;
validate_cursor();
update_topline();
- update_screen(eap->forceit ? UPD_CLEAR : VIsual_active ? UPD_INVERTED : 0);
+ update_screen(clear ? UPD_CLEAR : VIsual_active ? UPD_INVERTED : 0);
if (need_maketitle)
maketitle();
#if defined(MSWIN) && (!defined(FEAT_GUI_MSWIN) || defined(VIMDLL))