# HG changeset patch # User Bram Moolenaar # Date 1655378103 -7200 # Node ID 6a6c56354cfcdf0cb4e1df06e675ed0c3c92cd88 # Parent 052e7b3d245f1b1246ad0c48b15087c15b6b1a11 patch 8.2.5108: retab test disabled because it hangs on MS-Windows Commit: https://github.com/vim/vim/commit/308660bd263367a4f1a75498cbd2e29cade47f4d Author: Bram Moolenaar Date: Thu Jun 16 12:10:48 2022 +0100 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. diff --git a/src/indent.c b/src/indent.c --- a/src/indent.c +++ b/src/indent.c @@ -1613,6 +1613,20 @@ copy_indent(int size, char_u *src) } /* + * 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". */ void @@ -1749,7 +1763,7 @@ ex_retab(exarg_T *eap) new_len = old_len - col + start_col + len + 1; if (new_len <= 0 || new_len >= MAXCOL) { - emsg(_(e_resulting_text_too_long)); + emsg_text_too_long(); break; } new_line = alloc(new_len); @@ -1780,13 +1794,7 @@ ex_retab(exarg_T *eap) vcol += chartabsize(ptr + col, (colnr_T)vcol); if (vcol >= MAXCOL) { - emsg(_(e_resulting_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; + emsg_text_too_long(); break; } if (has_mbyte) diff --git a/src/testdir/test_retab.vim b/src/testdir/test_retab.vim --- a/src/testdir/test_retab.vim +++ b/src/testdir/test_retab.vim @@ -92,7 +92,7 @@ func RetabLoop() endfunc 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") let caught = 'no' try @@ -106,13 +106,7 @@ func Test_retab_endless() endfunc func Test_nocatch_retab_endless() - " FIXME: why does this hang on MS-Windows? Is got_int reset somewhere? - 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 + " when not inside try/catch an interrupt is generated to get out of loops call setline(1, "\t0\t") call assert_fails('call RetabLoop()', ['E1240:', 'Interrupted']) diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -735,6 +735,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 5108, +/**/ 5107, /**/ 5106,