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. */ | 					 * 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