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/popupwin.c b/src/popupwin.c
index 8292dba..72d38787 100644
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -4529,6 +4529,31 @@
 	popup_hide(message_win);
 }
 
+/*
+ * Invoked before outputting a message for ":echowindow".
+ */
+    void
+start_echowindow(void)
+{
+    in_echowindow = TRUE;
+}
+
+/*
+ * Invoked after outputting a message for ":echowindow".
+ */
+    void
+end_echowindow(void)
+{
+    // show the message window now
+    redraw_cmd(FALSE);
+
+    // do not overwrite messages
+    // TODO: only for message window
+    msg_didout = TRUE;
+    if (msg_col == 0)
+	msg_col = 1;
+    in_echowindow = FALSE;
+}
 #endif
 
 /*