diff options
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 | 
