# HG changeset patch # User Christian Brabandt # Date 1498152604 -7200 # Node ID 1780e6fecb308a69361154cab2cdc2fa07ee2f26 # Parent c5f791fb7861274f00e3f2f2a8b2d3d2e9345198 patch 8.0.0655: not easy to make sure a function does not exist commit https://github.com/vim/vim/commit/d6abcd154cdc6a8dd4b7c6ccad37617ea8a1b4aa Author: Bram Moolenaar Date: Thu Jun 22 19:15:24 2017 +0200 patch 8.0.0655: not easy to make sure a function does not exist Problem: Not easy to make sure a function does not exist. Solution: Add ! as an optional argument to :delfunc. diff --git a/src/ex_cmds.h b/src/ex_cmds.h --- a/src/ex_cmds.h +++ b/src/ex_cmds.h @@ -426,7 +426,7 @@ EX(CMD_delcommand, "delcommand", ex_delc NEEDARG|WORD1|TRLBAR|CMDWIN, ADDR_LINES), EX(CMD_delfunction, "delfunction", ex_delfunction, - NEEDARG|WORD1|CMDWIN, + BANG|NEEDARG|WORD1|CMDWIN, ADDR_LINES), EX(CMD_display, "display", ex_display, EXTRA|NOTRLCOM|TRLBAR|SBOXOK|CMDWIN, diff --git a/src/testdir/test_vimscript.vim b/src/testdir/test_vimscript.vim --- a/src/testdir/test_vimscript.vim +++ b/src/testdir/test_vimscript.vim @@ -1390,6 +1390,16 @@ func Test_endfunction_trailing() set verbose=0 endfunc +func Test_delfunction_force() + delfunc! Xtest + delfunc! Xtest + func Xtest() + echo 'nothing' + endfunc + delfunc! Xtest + delfunc! Xtest +endfunc + "------------------------------------------------------------------------------- " Modelines {{{1 " vim: ts=8 sw=4 tw=80 fdm=marker diff --git a/src/userfunc.c b/src/userfunc.c --- a/src/userfunc.c +++ b/src/userfunc.c @@ -2807,7 +2807,8 @@ ex_delfunction(exarg_T *eap) { if (fp == NULL) { - EMSG2(_(e_nofunc), eap->arg); + if (!eap->forceit) + EMSG2(_(e_nofunc), eap->arg); return; } if (fp->uf_calls > 0) diff --git a/src/version.c b/src/version.c --- 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 */ /**/ + 655, +/**/ 654, /**/ 653,