aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nvim/ex_cmds.c2
-rw-r--r--src/nvim/testdir/shared.vim11
-rw-r--r--src/nvim/testdir/test_search.vim2
3 files changed, 12 insertions, 3 deletions
diff --git a/src/nvim/ex_cmds.c b/src/nvim/ex_cmds.c
index 17b66fd32c..df455399c4 100644
--- a/src/nvim/ex_cmds.c
+++ b/src/nvim/ex_cmds.c
@@ -1939,7 +1939,7 @@ void do_wqall(exarg_T *eap)
}
FOR_ALL_BUFFERS(buf) {
- if (!bufIsChanged(buf)) {
+ if (!bufIsChanged(buf) || bt_dontwrite(buf)) {
continue;
}
/*
diff --git a/src/nvim/testdir/shared.vim b/src/nvim/testdir/shared.vim
index a5cf4def4f..6cc2d06a36 100644
--- a/src/nvim/testdir/shared.vim
+++ b/src/nvim/testdir/shared.vim
@@ -133,7 +133,9 @@ func s:kill_server(cmd)
endif
endfunc
-" Wait for up to a second for "expr" to become true.
+" Wait for up to a second for "expr" to become true. "expr" can be a
+" stringified expression to evaluate, or a funcref without arguments.
+"
" A second argument can be used to specify a different timeout in msec.
"
" Return time slept in milliseconds. With the +reltime feature this can be
@@ -146,8 +148,13 @@ func WaitFor(expr, ...)
else
let slept = 0
endif
+ if type(a:expr) == v:t_func
+ let Test = a:expr
+ else
+ let Test = {-> eval(a:expr) }
+ endif
for i in range(timeout / 10)
- if eval(a:expr)
+ if Test()
if has('reltime')
return float2nr(reltimefloat(reltime(start)) * 1000)
endif
diff --git a/src/nvim/testdir/test_search.vim b/src/nvim/testdir/test_search.vim
index 5e5ec96fd1..8e284ba042 100644
--- a/src/nvim/testdir/test_search.vim
+++ b/src/nvim/testdir/test_search.vim
@@ -1,5 +1,7 @@
" Test for the search command
+source shared.vim
+
func Test_search_cmdline()
" See test/functional/legacy/search_spec.lua
throw 'skipped: Nvim does not support test_override()'