diff src/ex_eval.c @ 25537:e0d6268c153a v8.2.3305

patch 8.2.3305: Vim9: :finally in skipped block not handled correctly Commit: https://github.com/vim/vim/commit/84934998806408db3f3ecff7ac4c3980e0c2a96e Author: rbtnn <naru123456789@gmail.com> Date: Sat Aug 7 13:26:53 2021 +0200 patch 8.2.3305: Vim9: :finally in skipped block not handled correctly Problem: Vim9: :finally in skipped block not handled correctly. Solution: Check whether :finally is in a skipped block. (Naruhiko Nishino, closes #8724)
author Bram Moolenaar <Bram@vim.org>
date Sat, 07 Aug 2021 13:30:03 +0200
parents 2063b858cad9
children 9f691e8a74e3
line wrap: on
line diff
--- a/src/ex_eval.c
+++ b/src/ex_eval.c
@@ -2018,7 +2018,8 @@ ex_endtry(exarg_T *eap)
 	{
 	    idx = cstack->cs_idx;
 
-	    if (in_vim9script()
+	    // Check the flags only when not in a skipped block.
+	    if (!skip && in_vim9script()
 		     && (cstack->cs_flags[idx] & (CSF_CATCH|CSF_FINALLY)) == 0)
 	    {
 		// try/endtry without any catch or finally: give an error and