]> git.ipfire.org Git - thirdparty/vim.git/commit
patch 9.0.2134: ml_get error when scrolling v9.0.2134
authorChristian Brabandt <cb@256bit.org>
Mon, 27 Nov 2023 22:25:03 +0000 (23:25 +0100)
committerChristian Brabandt <cb@256bit.org>
Mon, 27 Nov 2023 22:25:03 +0000 (23:25 +0100)
commitc4ffeddfe5bd1824650e9b911ed9245bf56c69e3
tree70ce689983063144a5cf7eaba328933d8c141193
parentd1c3ef1f47c87d1da056c56564e1985fe6f2931d
patch 9.0.2134: ml_get error when scrolling

Problem:  ml_get error when scrolling after delete
Solution: mark topline to be validated in main_loop
          if it is larger than current buffers line
          count

reset_lnums() is called after e.g. TextChanged autocommands and it may
accidentally cause curwin->w_topline to become invalid, e.g. if the
autocommand has deleted some lines.

So verify that curwin->w_topline points to a valid line and if not, mark
the window to have w_topline recalculated in main_loop() in
update_topline() after reset_lnums() returns.

fixes: #13568
fixes: #13578

Signed-off-by: Christian Brabandt <cb@256bit.org>
src/testdir/dumps/Test_delete_ml_get_errors_1.dump [new file with mode: 0644]
src/testdir/samples/box.txt [new file with mode: 0644]
src/testdir/samples/matchparen.vim [new file with mode: 0644]
src/testdir/test_delete.vim
src/version.c
src/window.c