From 3b6fb3fefd0bde9bd0700987c4db549a7f4916ec Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sun, 25 Jun 2023 08:15:45 +0800 Subject: vim-patch:9.0.1664: divide by zero when scrolling with 'smoothscroll' set Problem: Divide by zero when scrolling with 'smoothscroll' set. Solution: Avoid using a negative width. (closes vim/vim#12540, closes vim/vim#12528) https://github.com/vim/vim/commit/8154e642aa476e1a5d3de66c34e8289845b2b797 Co-authored-by: fullwaywang --- test/functional/legacy/scroll_opt_spec.lua | 42 ++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'test/functional') diff --git a/test/functional/legacy/scroll_opt_spec.lua b/test/functional/legacy/scroll_opt_spec.lua index 3b755ff3e8..165570e7ec 100644 --- a/test/functional/legacy/scroll_opt_spec.lua +++ b/test/functional/legacy/scroll_opt_spec.lua @@ -939,6 +939,48 @@ describe('smoothscroll', function() ]]) end) + -- oldtest: Test_smoothscroll_zero_width_scroll_cursor_bot() + it('does not divide by zero in zero-width window', function() + screen:try_resize(12, 19) + screen:set_default_attr_ids({ + [1] = {foreground = Screen.colors.Brown}; -- LineNr + [2] = {bold = true, reverse = true}; -- StatusLine + [3] = {reverse = true}; -- StatusLineNC + }) + exec([[ + silent normal yy + silent normal 19p + winsize 0 19 + vsplit + vertical resize 0 + set foldcolumn=1 + set number + set smoothscroll + silent normal 20G + ]]) + screen:expect([[ + {1: }│ | + {1: }│ | + {1: }│ | + {1: }│ | + {1: }│ | + {1: }│ | + {1: }│ | + {1: }│ | + {1: }│ | + {1: }│ | + {1: }│ | + {1: }│ | + {1: }│ | + {1: }│ | + {1: }│ | + {1: }│ | + {1:^ }│ | + {2:< }{3: