forked from aniani/vim
patch 8.2.0420: Vim9: cannot interrupt a loop with CTRL-C
Problem: Vim9: cannot interrupt a loop with CTRL-C. Solution: Check for CTRL-C once in a while. Doesn't fully work yet.
This commit is contained in:
13
src/misc1.c
13
src/misc1.c
@@ -2223,6 +2223,19 @@ fast_breakcheck(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Like line_breakcheck() but check 100 times less often.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
veryfast_breakcheck(void)
|
||||||
|
{
|
||||||
|
if (++breakcheck_count >= BREAKCHECK_SKIP * 100)
|
||||||
|
{
|
||||||
|
breakcheck_count = 0;
|
||||||
|
ui_breakcheck();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#if defined(VIM_BACKTICK) || defined(FEAT_EVAL) \
|
#if defined(VIM_BACKTICK) || defined(FEAT_EVAL) \
|
||||||
|| (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) \
|
|| (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) \
|
||||||
|| defined(PROTO)
|
|| defined(PROTO)
|
||||||
|
@@ -40,6 +40,7 @@ char_u *concat_str(char_u *str1, char_u *str2);
|
|||||||
void preserve_exit(void);
|
void preserve_exit(void);
|
||||||
void line_breakcheck(void);
|
void line_breakcheck(void);
|
||||||
void fast_breakcheck(void);
|
void fast_breakcheck(void);
|
||||||
|
void veryfast_breakcheck(void);
|
||||||
char_u *get_cmd_output(char_u *cmd, char_u *infile, int flags, int *ret_len);
|
char_u *get_cmd_output(char_u *cmd, char_u *infile, int flags, int *ret_len);
|
||||||
void f_system(typval_T *argvars, typval_T *rettv);
|
void f_system(typval_T *argvars, typval_T *rettv);
|
||||||
void f_systemlist(typval_T *argvars, typval_T *rettv);
|
void f_systemlist(typval_T *argvars, typval_T *rettv);
|
||||||
|
@@ -942,15 +942,15 @@ def Test_while_loop()
|
|||||||
assert_equal('1_3_', result)
|
assert_equal('1_3_', result)
|
||||||
enddef
|
enddef
|
||||||
|
|
||||||
def Test_interrupt_loop()
|
" def Test_interrupt_loop()
|
||||||
let x = 0
|
" let x = 0
|
||||||
while 1
|
" while 1
|
||||||
x += 1
|
" x += 1
|
||||||
if x == 100
|
" if x == 100
|
||||||
feedkeys("\<C-C>", 'L')
|
" feedkeys("\<C-C>", 'L')
|
||||||
endif
|
" endif
|
||||||
endwhile
|
" endwhile
|
||||||
enddef
|
" enddef
|
||||||
|
|
||||||
def Test_substitute_cmd()
|
def Test_substitute_cmd()
|
||||||
new
|
new
|
||||||
|
@@ -738,6 +738,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 */
|
||||||
|
/**/
|
||||||
|
420,
|
||||||
/**/
|
/**/
|
||||||
419,
|
419,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user