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:
@@ -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;
|
||||||
|
@@ -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
|
||||||
|
@@ -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,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user