mirror of
https://github.com/vim/vim.git
synced 2025-09-24 03:44:06 -04:00
patch 8.0.0516: a large count on a normal command causes trouble
Problem: A large count on a normal command causes trouble. (Dominique Pelle) Solution: Make "opcount" long.
This commit is contained in:
@@ -932,10 +932,10 @@ EXTERN int State INIT(= NORMAL); /* This is the current state of the
|
|||||||
* command interpreter. */
|
* command interpreter. */
|
||||||
|
|
||||||
EXTERN int finish_op INIT(= FALSE);/* TRUE while an operator is pending */
|
EXTERN int finish_op INIT(= FALSE);/* TRUE while an operator is pending */
|
||||||
EXTERN int opcount INIT(= 0); /* count for pending operator */
|
EXTERN long opcount INIT(= 0); /* count for pending operator */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ex mode (Q) state
|
* Ex mode (Q) state
|
||||||
*/
|
*/
|
||||||
EXTERN int exmode_active INIT(= 0); /* zero, EXMODE_NORMAL or EXMODE_VIM */
|
EXTERN int exmode_active INIT(= 0); /* zero, EXMODE_NORMAL or EXMODE_VIM */
|
||||||
EXTERN int ex_no_reprint INIT(= FALSE); /* no need to print after z or p */
|
EXTERN int ex_no_reprint INIT(= FALSE); /* no need to print after z or p */
|
||||||
|
@@ -2259,26 +2259,34 @@ func! Test_normal53_digraph()
|
|||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_normal54_Ctrl_bsl()
|
func Test_normal54_Ctrl_bsl()
|
||||||
new
|
new
|
||||||
call setline(1, 'abcdefghijklmn')
|
call setline(1, 'abcdefghijklmn')
|
||||||
exe "norm! df\<c-\>\<c-n>"
|
exe "norm! df\<c-\>\<c-n>"
|
||||||
call assert_equal(['abcdefghijklmn'], getline(1,'$'))
|
call assert_equal(['abcdefghijklmn'], getline(1,'$'))
|
||||||
exe "norm! df\<c-\>\<c-g>"
|
exe "norm! df\<c-\>\<c-g>"
|
||||||
call assert_equal(['abcdefghijklmn'], getline(1,'$'))
|
call assert_equal(['abcdefghijklmn'], getline(1,'$'))
|
||||||
exe "norm! df\<c-\>m"
|
exe "norm! df\<c-\>m"
|
||||||
call assert_equal(['abcdefghijklmn'], getline(1,'$'))
|
call assert_equal(['abcdefghijklmn'], getline(1,'$'))
|
||||||
if !has("multi_byte")
|
if !has("multi_byte")
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
call setline(2, 'abcdefghijklmnāf')
|
call setline(2, 'abcdefghijklmnāf')
|
||||||
norm! 2gg0
|
norm! 2gg0
|
||||||
exe "norm! df\<Char-0x101>"
|
exe "norm! df\<Char-0x101>"
|
||||||
call assert_equal(['abcdefghijklmn', 'f'], getline(1,'$'))
|
call assert_equal(['abcdefghijklmn', 'f'], getline(1,'$'))
|
||||||
norm! 1gg0
|
norm! 1gg0
|
||||||
exe "norm! df\<esc>"
|
exe "norm! df\<esc>"
|
||||||
call assert_equal(['abcdefghijklmn', 'f'], getline(1,'$'))
|
call assert_equal(['abcdefghijklmn', 'f'], getline(1,'$'))
|
||||||
|
|
||||||
" clean up
|
" clean up
|
||||||
bw!
|
bw!
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
func Test_normal_large_count()
|
||||||
|
" This may fail with 32bit long, how do we detect that?
|
||||||
|
new
|
||||||
|
normal o
|
||||||
|
normal 6666666666dL
|
||||||
|
bwipe!
|
||||||
endfunc
|
endfunc
|
||||||
|
@@ -764,6 +764,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 */
|
||||||
|
/**/
|
||||||
|
516,
|
||||||
/**/
|
/**/
|
||||||
515,
|
515,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user