changeset 22950:1270401054d8 v8.2.2022

patch 8.2.2022: Vim9: star command recognized errornously Commit: https://github.com/vim/vim/commit/95388e3179f6b995dbc4acd3f23e3856bb0286fd Author: Bram Moolenaar <Bram@vim.org> Date: Fri Nov 20 21:07:00 2020 +0100 patch 8.2.2022: Vim9: star command recognized errornously Problem: Vim9: star command recognized errornously. Solution: Give an error for missing colon. (issue https://github.com/vim/vim/issues/7335)
author Bram Moolenaar <Bram@vim.org>
date Fri, 20 Nov 2020 21:15:04 +0100
parents a695c4f79964
children e857d80bab79
files src/ex_docmd.c src/testdir/test_vim9_cmd.vim src/version.c
diffstat 3 files changed, 21 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -3482,6 +3482,11 @@ find_ex_command(
 		break;
 	    }
 
+	// Not not recognize ":*" as the star command unless '*' is in
+	// 'cpoptions'.
+	if (eap->cmdidx == CMD_star && vim_strchr(p_cpo, CPO_STAR) == NULL)
+	    p = eap->cmd;
+
 	// Look for a user defined command as a last resort.  Let ":Print" be
 	// overruled by a user defined command.
 	if ((eap->cmdidx == CMD_SIZE || eap->cmdidx == CMD_Print)
--- a/src/testdir/test_vim9_cmd.vim
+++ b/src/testdir/test_vim9_cmd.vim
@@ -634,5 +634,19 @@ def Test_f_args()
   CheckScriptSuccess(lines)
 enddef
 
+def Test_star_command()
+  var lines =<< trim END
+    vim9script
+    @s = 'g:success = 8'
+    set cpo+=*
+    exe '*s'
+    assert_equal(8, g:success)
+    unlet g:success
+    set cpo-=*
+    assert_fails("exe '*s'", 'E1050:')
+  END
+  CheckScriptSuccess(lines)
+enddef
+
 
 " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker
--- 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 */
 /**/
+    2022,
+/**/
     2021,
 /**/
     2020,