summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-10-15 22:42:23 +0200
committerBram Moolenaar <Bram@vim.org>2017-10-15 22:42:23 +0200
commit059db5c29ffef283a4b90bab9228708fa32e3dd2 (patch)
treed4f99d4adfd04a43311d54baae75f8a803519a34
parent44cc4cf72fdd12cd9a779031d443aac4254d51ae (diff)
downloadvim-git-059db5c29ffef283a4b90bab9228708fa32e3dd2.tar.gz
patch 8.0.1202: :wall gives an errof for a terminal windowv8.0.1202
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)
-rw-r--r--src/ex_cmds.c2
-rw-r--r--src/testdir/test_terminal.vim9
-rw-r--r--src/version.c2
3 files changed, 12 insertions, 1 deletions
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index b4351b23d..60f47bbd2 100644
--- 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:
diff --git a/src/testdir/test_terminal.vim b/src/testdir/test_terminal.vim
index cff85a459..92dcd1a57 100644
--- 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
diff --git a/src/version.c b/src/version.c
index edc29cc4f..0f4d23ba9 100644
--- 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,