changeset 11547:3d03ed329a54 v8.0.0656

patch 8.0.0656: cannot use ! after some user commands commit https://github.com/vim/vim/commit/6f9a476b2f2f0bb5c50d703ec4fc535ffd5bfe8f Author: Bram Moolenaar <Bram@vim.org> Date: Thu Jun 22 20:39:17 2017 +0200 patch 8.0.0656: cannot use ! after some user commands Problem: Cannot use ! after some user commands. Solution: Properly check for existing command. (Higashi Higashi)
author Christian Brabandt <cb@256bit.org>
date Thu, 22 Jun 2017 20:45:04 +0200
parents ec53a7fce93a
children edd5aab18670
files src/ex_docmd.c src/testdir/test_vimscript.vim src/version.c
diffstat 3 files changed, 13 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -2370,7 +2370,8 @@ do_one_cmd(
 	goto doend;
     }
     /* Check for wrong commands. */
-    if (*p == '!' && ea.cmd[1] == 0151 && ea.cmd[0] == 78)
+    if (*p == '!' && ea.cmd[1] == 0151 && ea.cmd[0] == 78
+	    && !IS_USER_CMDIDX(ea.cmdidx))
     {
 	errormsg = uc_fun_cmd();
 	goto doend;
--- a/src/testdir/test_vimscript.vim
+++ b/src/testdir/test_vimscript.vim
@@ -1400,6 +1400,15 @@ func Test_delfunction_force()
     delfunc! Xtest
 endfunc
 
+" Test using bang after user command				    {{{1
+func Test_user_command_with_bang()
+    command -bang Nieuw let nieuw = 1
+    Ni!
+    call assert_equal(1, nieuw)
+    unlet nieuw
+    delcommand Nieuw
+endfunc
+
 "-------------------------------------------------------------------------------
 " Modelines								    {{{1
 " vim: ts=8 sw=4 tw=80 fdm=marker
--- a/src/version.c
+++ b/src/version.c
@@ -765,6 +765,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    656,
+/**/
     655,
 /**/
     654,