changeset 12654:d03798bddf5e v8.0.1205

patch 8.0.1205: it is possible to unload a changed buffer commit https://github.com/vim/vim/commit/ff930cad8a9100eeb04256aab1a14de993c1d7e9 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Oct 19 17:12:10 2017 +0200 patch 8.0.1205: it is possible to unload a changed buffer Problem: Using "1q" it is possible to unload a changed buffer. (Rick Howe) Solution: Check the right window for changes.
author Christian Brabandt <cb@256bit.org>
date Thu, 19 Oct 2017 17:15:04 +0200
parents e1e23eb0b699
children 6963f5ca8813
files src/ex_docmd.c src/testdir/test_edit.vim src/version.c
diffstat 3 files changed, 17 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -7245,8 +7245,8 @@ ex_quit(exarg_T *eap)
      */
     if (check_more(FALSE, eap->forceit) == OK && only_one_window())
 	exiting = TRUE;
-    if ((!buf_hide(curbuf)
-		&& check_changed(curbuf, (p_awa ? CCGD_AW : 0)
+    if ((!buf_hide(wp->w_buffer)
+		&& check_changed(wp->w_buffer, (p_awa ? CCGD_AW : 0)
 				       | (eap->forceit ? CCGD_FORCEIT : 0)
 				       | CCGD_EXCMD))
 	    || check_more(TRUE, eap->forceit) == FAIL
--- a/src/testdir/test_edit.vim
+++ b/src/testdir/test_edit.vim
@@ -1373,3 +1373,16 @@ func Test_edit_complete_very_long_name()
   endif
   set swapfile&
 endfunc
+
+func Test_edit_quit()
+  edit foo.txt
+  split
+  new
+  call setline(1, 'hello')
+  3wincmd w
+  redraw!
+  call assert_fails('1q', 'E37:')
+  bwipe! foo.txt
+  only
+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 */
 /**/
+    1205,
+/**/
     1204,
 /**/
     1203,