changeset 29177:6a6c56354cfc v8.2.5108

patch 8.2.5108: retab test disabled because it hangs on MS-Windows Commit: https://github.com/vim/vim/commit/308660bd263367a4f1a75498cbd2e29cade47f4d Author: Bram Moolenaar <Bram@vim.org> 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.
author Bram Moolenaar <Bram@vim.org>
date Thu, 16 Jun 2022 13:15:03 +0200
parents 052e7b3d245f
children 5c6a9452357f
files src/indent.c src/testdir/test_retab.vim src/version.c
diffstat 3 files changed, 20 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- 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)
--- 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'])
 
--- 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,