forked from aniani/vim
		
	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. */ | ||||
|  | ||||
| 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 ex_no_reprint INIT(= FALSE); /* no need to print after z or p */ | ||||
|   | ||||
| @@ -2259,26 +2259,34 @@ func! Test_normal53_digraph() | ||||
|   bw! | ||||
| endfunc | ||||
|  | ||||
| func! Test_normal54_Ctrl_bsl() | ||||
| 	new | ||||
| 	call setline(1, 'abcdefghijklmn') | ||||
| 	exe "norm! df\<c-\>\<c-n>" | ||||
| 	call assert_equal(['abcdefghijklmn'], getline(1,'$')) | ||||
| 	exe "norm! df\<c-\>\<c-g>" | ||||
| 	call assert_equal(['abcdefghijklmn'], getline(1,'$')) | ||||
| 	exe "norm! df\<c-\>m" | ||||
| 	call assert_equal(['abcdefghijklmn'], getline(1,'$')) | ||||
| func Test_normal54_Ctrl_bsl() | ||||
|   new | ||||
|   call setline(1, 'abcdefghijklmn') | ||||
|   exe "norm! df\<c-\>\<c-n>" | ||||
|   call assert_equal(['abcdefghijklmn'], getline(1,'$')) | ||||
|   exe "norm! df\<c-\>\<c-g>" | ||||
|   call assert_equal(['abcdefghijklmn'], getline(1,'$')) | ||||
|   exe "norm! df\<c-\>m" | ||||
|   call assert_equal(['abcdefghijklmn'], getline(1,'$')) | ||||
|   if !has("multi_byte") | ||||
|     return | ||||
|   endif | ||||
| 	call setline(2, 'abcdefghijklmnāf') | ||||
| 	norm! 2gg0 | ||||
| 	exe "norm! df\<Char-0x101>" | ||||
| 	call assert_equal(['abcdefghijklmn', 'f'], getline(1,'$')) | ||||
| 	norm! 1gg0 | ||||
| 	exe "norm! df\<esc>" | ||||
| 	call assert_equal(['abcdefghijklmn', 'f'], getline(1,'$')) | ||||
|   call setline(2, 'abcdefghijklmnāf') | ||||
|   norm! 2gg0 | ||||
|   exe "norm! df\<Char-0x101>" | ||||
|   call assert_equal(['abcdefghijklmn', 'f'], getline(1,'$')) | ||||
|   norm! 1gg0 | ||||
|   exe "norm! df\<esc>" | ||||
|   call assert_equal(['abcdefghijklmn', 'f'], getline(1,'$')) | ||||
|  | ||||
| 	" clean up | ||||
| 	bw! | ||||
|   " clean up | ||||
|   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 | ||||
|   | ||||
| @@ -764,6 +764,8 @@ static char *(features[]) = | ||||
|  | ||||
| static int included_patches[] = | ||||
| {   /* Add new patch number below this line */ | ||||
| /**/ | ||||
|     516, | ||||
| /**/ | ||||
|     515, | ||||
| /**/ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user