diff src/testdir/test_autocmd.vim @ 35053:f5ebd5ee3d53 v9.1.0374

patch 9.1.0374: wrong botline in BufEnter Commit: https://github.com/vim/vim/commit/eb80b8304efb6dfeaa8d01dd41fe281df4894240 Author: Jaehwang Jung <tomtomjhj@gmail.com> Date: Fri Apr 26 18:48:48 2024 +0200 patch 9.1.0374: wrong botline in BufEnter Problem: When :edit an existing buffer, line('w$') may return a wrong result. Solution: Reset w_valid in curwin_init() (Jaehwang Jung) `do_ecmd()` reinitializes the current window (`curwin_init()`) whose `w_valid` field may have `VALID_BOTLINE` set. Resetting `w_botline` without marking it as invalid makes subsequent `validate_botline()` calls a no-op, thus resulting in wrong `line('w$')` value. closes: #14642 Signed-off-by: Jaehwang Jung <tomtomjhj@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Fri, 26 Apr 2024 19:00:03 +0200
parents f9b510d3ed32
children 92b3535e3c20
line wrap: on
line diff
--- a/src/testdir/test_autocmd.vim
+++ b/src/testdir/test_autocmd.vim
@@ -4679,4 +4679,16 @@ func Test_SwapExists_set_other_buf_modif
   bwipe!
 endfunc
 
+func Test_BufEnter_botline()
+  set hidden
+  call writefile(range(10), 'Xxx1', 'D')
+  call writefile(range(20), 'Xxx2', 'D')
+  edit Xxx1
+  edit Xxx2
+  au BufEnter Xxx1 call assert_true(line('w$') > 1)
+  edit Xxx1
+  au! BufEnter Xxx1
+  set hidden&vim
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab