forked from aniani/vim
patch 8.2.5108: retab test disabled because it hangs on MS-Windows
Problem: Retab test disabled because it hangs on MS-Windows. Solution: Also set got_int at the other place a overlong text is detected.
This commit is contained in:
24
src/indent.c
24
src/indent.c
@@ -1612,6 +1612,20 @@ copy_indent(int size, char_u *src)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Give a "resulting text too long" error and maybe set got_int.
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
emsg_text_too_long(void)
|
||||||
|
{
|
||||||
|
emsg(_(e_resulting_text_too_long));
|
||||||
|
#ifdef FEAT_EVAL
|
||||||
|
// when not inside a try/catch set got_int to break out of any loop
|
||||||
|
if (trylevel == 0)
|
||||||
|
#endif
|
||||||
|
got_int = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ":retab".
|
* ":retab".
|
||||||
*/
|
*/
|
||||||
@@ -1749,7 +1763,7 @@ ex_retab(exarg_T *eap)
|
|||||||
new_len = old_len - col + start_col + len + 1;
|
new_len = old_len - col + start_col + len + 1;
|
||||||
if (new_len <= 0 || new_len >= MAXCOL)
|
if (new_len <= 0 || new_len >= MAXCOL)
|
||||||
{
|
{
|
||||||
emsg(_(e_resulting_text_too_long));
|
emsg_text_too_long();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
new_line = alloc(new_len);
|
new_line = alloc(new_len);
|
||||||
@@ -1780,13 +1794,7 @@ ex_retab(exarg_T *eap)
|
|||||||
vcol += chartabsize(ptr + col, (colnr_T)vcol);
|
vcol += chartabsize(ptr + col, (colnr_T)vcol);
|
||||||
if (vcol >= MAXCOL)
|
if (vcol >= MAXCOL)
|
||||||
{
|
{
|
||||||
emsg(_(e_resulting_text_too_long));
|
emsg_text_too_long();
|
||||||
// when not inside a try/catch set got_int to break out of any
|
|
||||||
// loop
|
|
||||||
#ifdef FEAT_EVAL
|
|
||||||
if (trylevel == 0)
|
|
||||||
#endif
|
|
||||||
got_int = TRUE;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (has_mbyte)
|
if (has_mbyte)
|
||||||
|
@@ -92,7 +92,7 @@ func RetabLoop()
|
|||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func Test_retab_endless()
|
func Test_retab_endless()
|
||||||
" inside try/catch we catch the error message
|
" inside try/catch we can catch the error message
|
||||||
call setline(1, "\t0\t")
|
call setline(1, "\t0\t")
|
||||||
let caught = 'no'
|
let caught = 'no'
|
||||||
try
|
try
|
||||||
@@ -106,13 +106,7 @@ func Test_retab_endless()
|
|||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func Test_nocatch_retab_endless()
|
func Test_nocatch_retab_endless()
|
||||||
" FIXME: why does this hang on MS-Windows? Is got_int reset somewhere?
|
" when not inside try/catch an interrupt is generated to get out of loops
|
||||||
if has('win32')
|
|
||||||
let g:skipped_reason = "does not work on MS-Windows"
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
|
|
||||||
" not inside try/catch an interrupt is generated to get out of loops
|
|
||||||
call setline(1, "\t0\t")
|
call setline(1, "\t0\t")
|
||||||
call assert_fails('call RetabLoop()', ['E1240:', 'Interrupted'])
|
call assert_fails('call RetabLoop()', ['E1240:', 'Interrupted'])
|
||||||
|
|
||||||
|
@@ -734,6 +734,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 */
|
||||||
|
/**/
|
||||||
|
5108,
|
||||||
/**/
|
/**/
|
||||||
5107,
|
5107,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user