diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2018-01-21 11:45:11 +0100 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2018-01-21 18:42:45 +0100 |
commit | a185ab70fd2eb8d55f1156cf7d5513338a309917 (patch) | |
tree | 93aa06b95153a3e1d4a0c83063fa7bdd71edecbe /src | |
parent | 52778d62fcf6521f9a2b844340951247599b7936 (diff) | |
download | rneovim-a185ab70fd2eb8d55f1156cf7d5513338a309917.tar.gz rneovim-a185ab70fd2eb8d55f1156cf7d5513338a309917.tar.bz2 rneovim-a185ab70fd2eb8d55f1156cf7d5513338a309917.zip |
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.
https://github.com/vim/vim/commit/d6abcd154cdc6a8dd4b7c6ccad37617ea8a1b4aa
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/eval.c | 4 | ||||
-rw-r--r-- | src/nvim/ex_cmds.lua | 2 | ||||
-rw-r--r-- | src/nvim/testdir/test_vimscript.vim | 10 |
3 files changed, 14 insertions, 2 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 28c590c0b4..48525c2891 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -20863,7 +20863,9 @@ void ex_delfunction(exarg_T *eap) if (!eap->skip) { 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/nvim/ex_cmds.lua b/src/nvim/ex_cmds.lua index e57e662039..c8593f7460 100644 --- a/src/nvim/ex_cmds.lua +++ b/src/nvim/ex_cmds.lua @@ -692,7 +692,7 @@ return { }, { command='delcommand', - flags=bit.bor(NEEDARG, WORD1, TRLBAR, CMDWIN), + flags=bit.bor(BANG, NEEDARG, WORD1, TRLBAR, CMDWIN), addr_type=ADDR_LINES, func='ex_delcommand', }, diff --git a/src/nvim/testdir/test_vimscript.vim b/src/nvim/testdir/test_vimscript.vim index 78fe62bc63..f48b33e4d1 100644 --- a/src/nvim/testdir/test_vimscript.vim +++ b/src/nvim/testdir/test_vimscript.vim @@ -1242,6 +1242,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 |