To: vim_dev@googlegroups.com Subject: Patch 8.2.5108 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.2.5108 Problem: Retab test disabled because it hangs on MS-Windows. Solution: Also set got_int at the other place a overlong text is detected. Files: src/indent.c, src/testdir/test_retab.vim *** ../vim-8.2.5107/src/indent.c 2022-06-15 21:08:05.257105150 +0100 --- src/indent.c 2022-06-16 12:09:22.947539917 +0100 *************** *** 1613,1618 **** --- 1613,1632 ---- } /* + * 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,1755 **** new_len = old_len - col + start_col + len + 1; if (new_len <= 0 || new_len >= MAXCOL) { ! emsg(_(e_resulting_text_too_long)); break; } new_line = alloc(new_len); --- 1763,1769 ---- new_len = old_len - col + start_col + len + 1; if (new_len <= 0 || new_len >= MAXCOL) { ! emsg_text_too_long(); break; } new_line = alloc(new_len); *************** *** 1780,1792 **** 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; break; } if (has_mbyte) --- 1794,1800 ---- vcol += chartabsize(ptr + col, (colnr_T)vcol); if (vcol >= MAXCOL) { ! emsg_text_too_long(); break; } if (has_mbyte) *** ../vim-8.2.5107/src/testdir/test_retab.vim 2022-06-15 22:11:41.371540580 +0100 --- src/testdir/test_retab.vim 2022-06-16 12:09:51.959483752 +0100 *************** *** 92,98 **** endfunc func Test_retab_endless() ! " inside try/catch we catch the error message call setline(1, "\t0\t") let caught = 'no' try --- 92,98 ---- endfunc func Test_retab_endless() ! " inside try/catch we can catch the error message call setline(1, "\t0\t") let caught = 'no' try *************** *** 106,118 **** 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 call setline(1, "\t0\t") call assert_fails('call RetabLoop()', ['E1240:', 'Interrupted']) --- 106,112 ---- endfunc func Test_nocatch_retab_endless() ! " 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']) *** ../vim-8.2.5107/src/version.c 2022-06-16 11:42:05.600034913 +0100 --- src/version.c 2022-06-16 12:06:14.115921643 +0100 *************** *** 736,737 **** --- 736,739 ---- { /* Add new patch number below this line */ + /**/ + 5108, /**/ -- (letter from Mark to Mike, about the film's probable certificate) I would like to get back to the Censor and agree to lose the shits, take the odd Jesus Christ out and lose Oh fuck off, but to retain 'fart in your general direction', 'castanets of your testicles' and 'oral sex' and ask him for an 'A' rating on that basis. "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// \\\ \\\ sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///