From be99042b03edf7b8156c9adbc23516bfcf2cec0f Mon Sep 17 00:00:00 2001
From: Bram Moolenaar <Bram@vim.org>
Date: Mon, 30 May 2022 16:01:42 +0100
Subject: [PATCH] patch 8.2.5044: command line test fails

Problem:    Command line test fails.
Solution:   Also beep when cmdline win can't be opened because of locks.
            Make the test not beep.  Make the test pass on MS-Windows.

---
 src/ex_getln.c                  | 6 ++----
 src/testdir/test_substitute.vim | 5 +++--
 2 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/src/ex_getln.c b/src/ex_getln.c
index d5fc38d..7571ae2 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -4186,11 +4186,9 @@ open_cmdwin(void)
 #endif
 
     // Can't do this when text or buffer is locked.
-    if (text_or_buf_locked())
-	return K_IGNORE;
-
     // Can't do this recursively.  Can't do it when typing a password.
-    if (cmdwin_type != 0
+    if (text_or_buf_locked()
+	    || cmdwin_type != 0
 # if defined(FEAT_CRYPT) || defined(FEAT_EVAL)
 	    || cmdline_star > 0
 # endif
diff --git a/src/testdir/test_substitute.vim b/src/testdir/test_substitute.vim
index 367f472..3450c4f 100644
--- a/src/testdir/test_substitute.vim
+++ b/src/testdir/test_substitute.vim
@@ -781,6 +781,7 @@ func Test_sub_open_cmdline_win()
   " the error only happens in a very specific setup, run a new Vim instance to
   " get a clean starting point.
   let lines =<< trim [SCRIPT]
+  set vb t_vb=
     norm o0000000000000000000000000000000000000000000000000000
     func Replace()
       norm q/
@@ -793,8 +794,8 @@ func Test_sub_open_cmdline_win()
   [SCRIPT]
   call writefile(lines, 'Xscript')
   if RunVim([], [], '-u NONE -S Xscript')
-    let messages = readfile('Xresult')
-    call assert_match('E565: Not allowed to change text or change window', messages[3])
+    call assert_match('E565: Not allowed to change text or change window',
+          \ readfile('Xresult')->join('XX'))
   endif
 
   call delete('Xscript')
-- 
2.27.0

