To: vim_dev@googlegroups.com Subject: Patch 8.2.1746 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.2.1746 Problem: Vim9: Cannot use "fina" for "finally". (Naruhiko Nishino) Solution: Specifically check for "fina". (closes #7020) Files: src/ex_docmd.c, src/testdir/test_trycatch.vim, src/testdir/test_vim9_script.vim *** ../vim-8.2.1745/src/ex_docmd.c 2020-09-26 15:20:39.256399356 +0200 --- src/ex_docmd.c 2020-09-26 17:19:41.037374026 +0200 *************** *** 3420,3425 **** --- 3420,3429 ---- 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; } *** ../vim-8.2.1745/src/testdir/test_trycatch.vim 2020-07-11 22:14:54.318422203 +0200 --- src/testdir/test_trycatch.vim 2020-09-26 17:12:12.270588592 +0200 *************** *** 37,43 **** if loops == 2 try Xpath 'f' . loops ! finally Xpath 'g' . loops endtry endif --- 37,43 ---- if loops == 2 try Xpath 'f' . loops ! final Xpath 'g' . loops endtry endif *************** *** 49,67 **** Xpath 'i' endfunc func T25_G() if 1 try Xpath 'A' call T25_F() Xpath 'B' ! finally Xpath 'C' endtry else try Xpath 'D' ! finally Xpath 'E' endtry endif --- 49,68 ---- 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' ! fina Xpath 'C' endtry else try Xpath 'D' ! finall Xpath 'E' endtry endif *** ../vim-8.2.1745/src/testdir/test_vim9_script.vim 2020-09-26 15:08:52.885779899 +0200 --- src/testdir/test_vim9_script.vim 2020-09-26 17:18:49.353514760 +0200 *************** *** 316,322 **** endtry catch /wrong/ add(l, 'caught') ! finally add(l, 'finally') endtry assert_equal(['1', 'caught', 'finally'], l) --- 316,322 ---- endtry catch /wrong/ add(l, 'caught') ! fina add(l, 'finally') endtry assert_equal(['1', 'caught', 'finally'], l) *************** *** 526,532 **** def ReturnFinally(): string try return 'intry' ! finally g:in_finally = 'finally' endtry return 'end' --- 526,532 ---- def ReturnFinally(): string try return 'intry' ! finall g:in_finally = 'finally' endtry return 'end' *** ../vim-8.2.1745/src/version.c 2020-09-26 15:20:39.256399356 +0200 --- src/version.c 2020-09-26 17:13:26.270389777 +0200 *************** *** 752,753 **** --- 752,755 ---- { /* Add new patch number below this line */ + /**/ + 1746, /**/ -- No engineer can take a shower without wondering if some sort of Teflon coating would make showering unnecessary. (Scott Adams - The Dilbert principle) /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///