]> git.ipfire.org Git - thirdparty/vim.git/commit
patch 9.1.0121: Infinite loop or signed overflow with 'smoothscroll' v9.1.0121
authorSean Dewar <6256228+seandewar@users.noreply.github.com>
Wed, 21 Feb 2024 18:40:44 +0000 (19:40 +0100)
committerChristian Brabandt <cb@256bit.org>
Wed, 21 Feb 2024 18:40:44 +0000 (19:40 +0100)
commit02fcae02a926e4e8379d77fb716da4202029882d
tree01ee180ae7ee548383c405ca06a8f7f965032c96
parent3f905ab3c4f66562f4a224bf00f49d98a0b0da91
patch 9.1.0121: Infinite loop or signed overflow with 'smoothscroll'

Problem:  infinite loop in win_update with 'smoothscroll' set when
          window width is equal to textoff, or signed integer overflow
          if smaller.
Solution: don't revalidate wp->w_skipcol in that case, as no buffer text
          is being shown. (Sean Dewar)

Don't instead reset w_skipcol; that would lose the scroll position
within the line, which may be undesirable if the window is made wider
later.

Also include changes from the splitmove PR #14042 that I (in my infinite
Git wisdom) forgot to commit. This includes a change to
Test_window_split_no_room to ensure it doesn't fail for some screen
sizes.

Move Test_smoothscroll_in_zero_width_window to test_scroll_opt.vim, as
that file feels more appropriate.

closes: #14068

Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
src/drawscreen.c
src/proto/window.pro
src/testdir/test_scroll_opt.vim
src/testdir/test_window_cmd.vim
src/version.c
src/window.c