From: Bram Moolenaar Date: Thu, 22 Jun 2017 17:15:24 +0000 (+0200) Subject: patch 8.0.0655: not easy to make sure a function does not exist X-Git-Tag: v8.0.0655 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d6abcd154cdc6a8dd4b7c6ccad37617ea8a1b4aa;p=vim 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 index 531bd0e16..519cd0811 100644 --- a/src/ex_cmds.h +++ b/src/ex_cmds.h @@ -426,7 +426,7 @@ EX(CMD_delcommand, "delcommand", ex_delcommand, 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 index 6f5a73fb8..c09e2343b 100644 --- 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 index de089bb68..34da2ef4b 100644 --- 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 index 1e7d64861..533660fa0 100644 --- a/src/version.c +++ b/src/version.c @@ -764,6 +764,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 655, /**/ 654, /**/