Mercurial > vim
changeset 12648:cdfd6eb8bb80 v8.0.1202
patch 8.0.1202: :wall gives an errof for a terminal window
commit https://github.com/vim/vim/commit/059db5c29ffef283a4b90bab9228708fa32e3dd2
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Oct 15 22:42:23 2017 +0200
patch 8.0.1202: :wall gives an errof for a terminal window
Problem: :wall gives an errof for a terminal window. (Marius Gedminas)
Solution: Don't try writing a buffer that can't be written. (Yasuhiro
Matsumoto, closes #2190)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 15 Oct 2017 22:45:05 +0200 |
parents | c95072b87faa |
children | 2fca3bfff76f |
files | src/ex_cmds.c src/testdir/test_terminal.vim src/version.c |
diffstat | 3 files changed, 12 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ex_cmds.c +++ b/src/ex_cmds.c @@ -3400,7 +3400,7 @@ do_wqall(exarg_T *eap) FOR_ALL_BUFFERS(buf) { - if (bufIsChanged(buf)) + if (bufIsChanged(buf) && !bt_dontwrite(buf)) { /* * Check if there is a reason the buffer cannot be written:
--- a/src/testdir/test_terminal.vim +++ b/src/testdir/test_terminal.vim @@ -676,3 +676,12 @@ func Test_terminal_tmap() call TerminalTmap(1) call TerminalTmap(0) endfunc + +func Test_terminal_wall() + let buf = Run_shell_in_terminal({}) + wall + call Stop_shell_in_terminal(buf) + call term_wait(buf) + exe buf . 'bwipe' + unlet g:job +endfunc