Mercurial > vim
view src/testdir/test_visual.vim @ 11997:66b677c77467 v8.0.0879
patch 8.0.0879: crash when shifting with huge number
commit https://github.com/vim/vim/commit/bae5a17a738d1a3b5c51d9aa5d99e228d3911955
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Aug 6 15:42:06 2017 +0200
patch 8.0.0879: crash when shifting with huge number
Problem: Crash when shifting with huge number.
Solution: Check for overflow. (Dominique Pelle, closes https://github.com/vim/vim/issues/1945)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 06 Aug 2017 15:45:04 +0200 |
parents | ae45d497868f |
children | 7d7835ab8b37 |
line wrap: on
line source
" Tests for various Visual mode. if !has('visual') finish endif set belloff=all func Test_block_shift_multibyte() " Uses double-wide character. if !has('multi_byte') return endif split call setline(1, ['xヹxxx', 'ヹxxx']) exe "normal 1G0l\<C-V>jl>" call assert_equal('x ヹxxx', getline(1)) call assert_equal(' ヹxxx', getline(2)) q! endfunc func Test_block_shift_overflow() " This used to cause a multiplication overflow followed by a crash. new normal ii exe "normal \<C-V>876543210>" q! endfunc func Test_dotregister_paste() new exe "norm! ihello world\<esc>" norm! 0ve".p call assert_equal('hello world world', getline(1)) q! endfunc func Test_Visual_ctrl_o() new call setline(1, ['one', 'two', 'three']) call cursor(1,2) set noshowmode set tw=0 call feedkeys("\<c-v>jjlIa\<c-\>\<c-o>:set tw=88\<cr>\<esc>", 'tx') call assert_equal(['oane', 'tawo', 'tahree'], getline(1, 3)) call assert_equal(88, &tw) set tw& bw! endfu func Test_Visual_vapo() new normal oxx normal vapo bwipe! endfunc func Test_Visual_inner_quote() new normal oxX normal vki' bwipe! endfunc