From 373863ed48c02b5df52574aa7d50aeecb1037d40 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sat, 26 Sep 2020 17:20:53 +0200 Subject: [PATCH] patch 8.2.1746: Vim9: cannot use "fina" for "finally" Problem: Vim9: Cannot use "fina" for "finally". (Naruhiko Nishino) Solution: Specifically check for "fina". (closes #7020) --- src/ex_docmd.c | 4 ++++ src/testdir/test_trycatch.vim | 7 ++++--- src/testdir/test_vim9_script.vim | 4 ++-- src/version.c | 2 ++ 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/ex_docmd.c b/src/ex_docmd.c index a7542f35b4..bb504ffd6a 100644 --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -3420,6 +3420,10 @@ find_ex_command( eap->cmdidx = CMD_SIZE; } + // ":fina" means ":finally" for backwards compatibility. + if (eap->cmdidx == CMD_final && p - eap->cmd == 4) + eap->cmdidx = CMD_finally; + return p; } diff --git a/src/testdir/test_trycatch.vim b/src/testdir/test_trycatch.vim index 1f1681f2d9..9f670f7aed 100644 --- a/src/testdir/test_trycatch.vim +++ b/src/testdir/test_trycatch.vim @@ -37,7 +37,7 @@ func T25_F() if loops == 2 try Xpath 'f' . loops - finally + final Xpath 'g' . loops endtry endif @@ -49,19 +49,20 @@ func T25_F() Xpath 'i' endfunc +" Also try using "fina" and "final" and "finall" as abbraviations. func T25_G() if 1 try Xpath 'A' call T25_F() Xpath 'B' - finally + fina Xpath 'C' endtry else try Xpath 'D' - finally + finall Xpath 'E' endtry endif diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim index 2f82b8dd37..0feb9fad41 100644 --- a/src/testdir/test_vim9_script.vim +++ b/src/testdir/test_vim9_script.vim @@ -316,7 +316,7 @@ def Test_try_catch() endtry catch /wrong/ add(l, 'caught') - finally + fina add(l, 'finally') endtry assert_equal(['1', 'caught', 'finally'], l) @@ -526,7 +526,7 @@ enddef def ReturnFinally(): string try return 'intry' - finally + finall g:in_finally = 'finally' endtry return 'end' diff --git a/src/version.c b/src/version.c index bd5d60745e..49ce61cab7 100644 --- a/src/version.c +++ b/src/version.c @@ -750,6 +750,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1746, /**/ 1745, /**/