From 308660bd263367a4f1a75498cbd2e29cade47f4d Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Thu, 16 Jun 2022 12:10:48 +0100 Subject: 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. --- src/indent.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) (limited to 'src/indent.c') diff --git a/src/indent.c b/src/indent.c index 73eb12c49b..794fa2c343 100644 --- a/src/indent.c +++ b/src/indent.c @@ -1612,6 +1612,20 @@ copy_indent(int size, char_u *src) 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". */ @@ -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) -- cgit v1.2.3