From e4ce65d445c45e14903b9daf08ee8658cb0f3090 Mon Sep 17 00:00:00 2001
From: Bram Moolenaar <Bram@vim.org>
Date: Wed, 4 Aug 2010 20:12:32 +0200
Subject: [PATCH] After entering a crypt key would need to hit return to
 continue. When silencing a message it would still clear a kept message.

---
 src/message.c | 7 +++++--
 src/misc2.c   | 2 +-
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/message.c b/src/message.c
index 3b1b458922..c33b173b89 100644
--- a/src/message.c
+++ b/src/message.c
@@ -1135,8 +1135,11 @@ msg_start()
 {
     int		did_return = FALSE;
 
-    vim_free(keep_msg);
-    keep_msg = NULL;			/* don't display old message now */
+    if (!msg_silent)
+    {
+	vim_free(keep_msg);
+	keep_msg = NULL;		/* don't display old message now */
+    }
 
 #ifdef FEAT_EVAL
     if (need_clr_eos)
diff --git a/src/misc2.c b/src/misc2.c
index 3c25a1f087..8492b3e815 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -4016,9 +4016,9 @@ get_crypt_key(store, twice)
     }
 
     /* since the user typed this, no need to wait for return */
-    need_wait_return = FALSE;
     if (msg_didout)
 	msg_putchar('\n');
+    need_wait_return = FALSE;
     msg_didout = FALSE;
 
     free_crypt_key(p2);
-- 
GitLab