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
--- a/src/version.c
+++ b/src/version.c
@@ -762,6 +762,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1202,
+/**/
     1201,
 /**/
     1200,