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 #12540, closes #12528)
diff --git a/src/testdir/test_scroll_opt.vim b/src/testdir/test_scroll_opt.vim
index 4604166..279e547 100644
--- a/src/testdir/test_scroll_opt.vim
+++ b/src/testdir/test_scroll_opt.vim
@@ -833,4 +833,28 @@
   call StopVimInTerminal(buf)
 endfunc
 
+" this was dividing by zero bug in scroll_cursor_bot
+func Test_smoothscroll_zero_width_scroll_cursor_bot()
+  CheckScreendump
+
+  let lines =<< trim END
+      silent normal yy
+      silent normal 19p
+      winsize 0 19
+      vsplit
+      vertical resize 0
+      set foldcolumn=1
+      set number
+      set smoothscroll
+      silent normal 20G
+  END
+  call writefile(lines, 'XSmoothScrollZeroBot', 'D')
+  let buf = RunVimInTerminal('-u NONE -S XSmoothScrollZeroBot', #{rows: 19, wait_for_ruler: 0})
+  call TermWait(buf, 1000)
+
+  call VerifyScreenDump(buf, 'Test_smoothscroll_zero_bot', {})
+
+  call StopVimInTerminal(buf)
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab