0
0
mirror of https://github.com/vim/vim.git synced 2025-09-25 03:54:15 -04:00

patch 9.0.1367: divide by zero in zero-width window

Problem:    Divide by zero in zero-width window.
Solution:   Check the width is positive.
This commit is contained in:
Bram Moolenaar
2023-03-01 17:55:31 +00:00
parent ad60898aa4
commit e0f8691969
3 changed files with 32 additions and 11 deletions

View File

@@ -1734,7 +1734,7 @@ scrolldown(
col -= width1; col -= width1;
++row; ++row;
} }
if (col > width2) if (col > width2 && width2 > 0)
{ {
row += col / width2; row += col / width2;
col = col % width2; col = col % width2;

View File

@@ -1772,7 +1772,7 @@ func Test_splitkeep_options()
let &t_WS = save_WS let &t_WS = save_WS
endfunc endfunc
function Test_splitkeep_cmdwin_cursor_position() func Test_splitkeep_cmdwin_cursor_position()
set splitkeep=screen set splitkeep=screen
call setline(1, range(&lines)) call setline(1, range(&lines))
@@ -1797,9 +1797,9 @@ function Test_splitkeep_cmdwin_cursor_position()
%bwipeout! %bwipeout!
set splitkeep& set splitkeep&
endfunction endfunc
function Test_splitkeep_misc() func Test_splitkeep_misc()
set splitkeep=screen set splitkeep=screen
set splitbelow set splitbelow
@@ -1832,7 +1832,7 @@ function Test_splitkeep_misc()
set splitkeep& set splitkeep&
endfunc endfunc
function Test_splitkeep_callback() func Test_splitkeep_callback()
CheckScreendump CheckScreendump
let lines =<< trim END let lines =<< trim END
set splitkeep=screen set splitkeep=screen
@@ -1865,7 +1865,7 @@ function Test_splitkeep_callback()
call StopVimInTerminal(buf) call StopVimInTerminal(buf)
endfunc endfunc
function Test_splitkeep_fold() func Test_splitkeep_fold()
CheckScreendump CheckScreendump
let lines =<< trim END let lines =<< trim END
@@ -1895,9 +1895,9 @@ function Test_splitkeep_fold()
call VerifyScreenDump(buf, 'Test_splitkeep_fold_4', {}) call VerifyScreenDump(buf, 'Test_splitkeep_fold_4', {})
call StopVimInTerminal(buf) call StopVimInTerminal(buf)
endfunction endfunc
function Test_splitkeep_status() func Test_splitkeep_status()
CheckScreendump CheckScreendump
let lines =<< trim END let lines =<< trim END
@@ -1915,9 +1915,9 @@ function Test_splitkeep_status()
call VerifyScreenDump(buf, 'Test_splitkeep_status_1', {}) call VerifyScreenDump(buf, 'Test_splitkeep_status_1', {})
call StopVimInTerminal(buf) call StopVimInTerminal(buf)
endfunction endfunc
function Test_new_help_window_on_error() func Test_new_help_window_on_error()
help change.txt help change.txt
execute "normal! /CTRL-@\<CR>" execute "normal! /CTRL-@\<CR>"
silent! execute "normal! \<C-W>]" silent! execute "normal! \<C-W>]"
@@ -1927,7 +1927,26 @@ function Test_new_help_window_on_error()
call assert_equal(wincount, winnr('$')) call assert_equal(wincount, winnr('$'))
call assert_equal(expand("<cword>"), "'mod'") call assert_equal(expand("<cword>"), "'mod'")
endfunction endfunc
func Test_smoothscroll_in_zero_width_window()
let save_lines = &lines
let save_columns = &columns
winsize 0 24
set cpo+=n
exe "noremap 0 \<C-W>n\<C-W>L"
norm 000000
set number smoothscroll
exe "norm \<C-Y>"
only!
let &lines = save_lines
let &columns = save_columns
set cpo-=n
unmap 0
set nonumber nosmoothscroll
endfunc
" vim: shiftwidth=2 sts=2 expandtab " vim: shiftwidth=2 sts=2 expandtab

View File

@@ -695,6 +695,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
1367,
/**/ /**/
1366, 1366,
/**/ /**/