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)
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index a7542f3..bb504ff 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -3420,6 +3420,10 @@
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 1f1681f..9f670f7 100644
--- a/src/testdir/test_trycatch.vim
+++ b/src/testdir/test_trycatch.vim
@@ -37,7 +37,7 @@
if loops == 2
try
Xpath 'f' . loops
- finally
+ final
Xpath 'g' . loops
endtry
endif
@@ -49,19 +49,20 @@
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 2f82b8d..0feb9fa 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -316,7 +316,7 @@
endtry
catch /wrong/
add(l, 'caught')
- finally
+ fina
add(l, 'finally')
endtry
assert_equal(['1', 'caught', 'finally'], l)
@@ -526,7 +526,7 @@
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 bd5d607..49ce61c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1746,
+/**/
1745,
/**/
1744,