0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

patch 8.2.3259: when 'indentexpr' causes an error did_throw may hang

Problem:    When 'indentexpr' causes an error the did_throw flag may remain
            set.
Solution:   Reset did_throw and show the error. (closes #8677)
This commit is contained in:
Bram Moolenaar
2021-07-31 21:32:31 +02:00
parent 78db17c6f3
commit 620c959c6c
4 changed files with 78 additions and 61 deletions

View File

@@ -1822,6 +1822,13 @@ get_expr_indent(void)
check_cursor();
State = save_State;
// Reset did_throw, unless 'debug' has "throw" and inside a try/catch.
if (did_throw && (vim_strchr(p_debug, 't') == NULL || trylevel == 0))
{
handle_did_throw();
did_throw = FALSE;
}
// If there is an error, just keep the current indent.
if (indent < 0)
indent = get_indent();