diff src/testdir/test_diffmode.vim @ 10821:d9e48fb5142f v8.0.0300

patch 8.0.0300: cannot stop diffing hidden buffers commit https://github.com/vim/vim/commit/25ea0544587dd45088512fec9d7a685e35fea679 Author: Bram Moolenaar <Bram@vim.org> Date: Fri Feb 3 23:16:28 2017 +0100 patch 8.0.0300: cannot stop diffing hidden buffers Problem: Cannot stop diffing hidden buffers. (Daniel Hahler) Solution: When using :diffoff! make the whole list if diffed buffers empty. (closes #736)
author Christian Brabandt <cb@256bit.org>
date Fri, 03 Feb 2017 23:30:04 +0100
parents d0b74b18e4b5
children c0d5e8ab1452
line wrap: on
line diff
--- a/src/testdir/test_diffmode.vim
+++ b/src/testdir/test_diffmode.vim
@@ -212,6 +212,7 @@ func Test_diffoff()
   call setline(1, ['One', '', 'Two', 'Three'])
   diffthis
   redraw
+  call assert_notequal(normattr, screenattr(1, 1))
   diffoff!
   redraw
   call assert_equal(normattr, screenattr(1, 1))
@@ -219,6 +220,42 @@ func Test_diffoff()
   bwipe!
 endfunc
 
+func Test_diffoff_hidden()
+  set diffopt=filler,foldcolumn:0
+  e! one
+  call setline(1, ['Two', 'Three'])
+  let normattr = screenattr(1, 1)
+  diffthis
+  botright vert new two
+  call setline(1, ['One', 'Four'])
+  diffthis
+  redraw
+  call assert_notequal(normattr, screenattr(1, 1))
+  set hidden
+  close
+  redraw
+  " diffing with hidden buffer two
+  call assert_notequal(normattr, screenattr(1, 1))
+  diffoff
+  redraw
+  call assert_equal(normattr, screenattr(1, 1))
+  diffthis
+  redraw
+  " still diffing with hidden buffer two
+  call assert_notequal(normattr, screenattr(1, 1))
+  diffoff!
+  redraw
+  call assert_equal(normattr, screenattr(1, 1))
+  diffthis
+  redraw
+  " no longer diffing with hidden buffer two
+  call assert_equal(normattr, screenattr(1, 1))
+
+  bwipe!
+  bwipe!
+  set hidden& diffopt&
+endfunc
+
 func Test_setting_cursor()
   new Xtest1
   put =range(1,90)