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)
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index b4351b2..60f47bb 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -3400,7 +3400,7 @@
FOR_ALL_BUFFERS(buf)
{
- if (bufIsChanged(buf))
+ if (bufIsChanged(buf) && !bt_dontwrite(buf))
{
/*
* Check if there is a reason the buffer cannot be written:
diff --git a/src/testdir/test_terminal.vim b/src/testdir/test_terminal.vim
index cff85a4..92dcd1a 100644
--- a/src/testdir/test_terminal.vim
+++ b/src/testdir/test_terminal.vim
@@ -676,3 +676,12 @@
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
diff --git a/src/version.c b/src/version.c
index edc29cc..0f4d23b 100644
--- a/src/version.c
+++ b/src/version.c
@@ -762,6 +762,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1202,
+/**/
1201,
/**/
1200,