changeset 22395:03249b8976a9 v8.2.1746

patch 8.2.1746: Vim9: cannot use "fina" for "finally" Commit: https://github.com/vim/vim/commit/373863ed48c02b5df52574aa7d50aeecb1037d40 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Sep 26 17:20:53 2020 +0200 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 https://github.com/vim/vim/issues/7020)
author Bram Moolenaar <Bram@vim.org>
date Sat, 26 Sep 2020 17:30:05 +0200
parents e86d16efd79a
children 44cb9b1dc1ed
files src/ex_docmd.c src/testdir/test_trycatch.vim src/testdir/test_vim9_script.vim src/version.c
diffstat 4 files changed, 12 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- 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;
 }
 
--- 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
--- 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'
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1746,
+/**/
     1745,
 /**/
     1744,