diff options
-rw-r--r-- | src/nvim/ex_cmds2.c | 5 | ||||
-rw-r--r-- | test/old/testdir/test_winfixbuf.vim | 11 |
2 files changed, 14 insertions, 2 deletions
diff --git a/src/nvim/ex_cmds2.c b/src/nvim/ex_cmds2.c index dacdb27b08..732631b678 100644 --- a/src/nvim/ex_cmds2.c +++ b/src/nvim/ex_cmds2.c @@ -457,8 +457,9 @@ void ex_listdo(exarg_T *eap) } if (curwin->w_p_wfb) { // Split the window, which will be 'nowinfixbuf', and set curwin to that - win_split(0, 0); - + if (win_split(0, 0) == FAIL) { + return; // error message already given + } if (curwin->w_p_wfb) { // Autocommands set 'winfixbuf' or sent us to another window // with it set. Give up. diff --git a/test/old/testdir/test_winfixbuf.vim b/test/old/testdir/test_winfixbuf.vim index eb6d35f0af..3eb221023c 100644 --- a/test/old/testdir/test_winfixbuf.vim +++ b/test/old/testdir/test_winfixbuf.vim @@ -3248,4 +3248,15 @@ func Test_quickfix_changed_split_failed() augroup! QfChanged endfunc +func Test_bufdo_splitwin_fails() + call s:reset_all_buffers() + let other = s:make_buffer_pairs() + " Make sure there is not enough room to + " split the winfixedbuf window + let &winheight=&lines + let &winminheight=&lines-2 + call assert_fails(':bufdo echo 1', 'E36:') + set winminheight&vim winheight&vim +endfunc + " vim: shiftwidth=2 sts=2 expandtab |