0
0
mirror of https://github.com/vim/vim.git synced 2025-11-13 22:54:27 -05:00

patch 8.1.0573: cannot redefine user command without ! in same script

Problem:    Cannot redefine user command without ! in same script
Solution:   Allow redefining user command without ! in same script, like with
            functions.
This commit is contained in:
Bram Moolenaar
2018-12-08 16:03:28 +01:00
parent 76ab4fd619
commit 55d4691308
4 changed files with 59 additions and 13 deletions

View File

@@ -90,6 +90,34 @@ func Test_Ambiguous()
delcommand Dothat
endfunc
func Test_redefine_on_reload()
call writefile(['command ExistingCommand echo "yes"'], 'Xcommandexists')
call assert_equal(0, exists(':ExistingCommand'))
source Xcommandexists
call assert_equal(2, exists(':ExistingCommand'))
" Redefining a command when reloading a script is OK.
source Xcommandexists
call assert_equal(2, exists(':ExistingCommand'))
" But redefining in another script is not OK.
call writefile(['command ExistingCommand echo "yes"'], 'Xcommandexists2')
call assert_fails('source Xcommandexists2', 'E174:')
call delete('Xcommandexists2')
" And defining twice in one script is not OK.
delcommand ExistingCommand
call assert_equal(0, exists(':ExistingCommand'))
call writefile([
\ 'command ExistingCommand echo "yes"',
\ 'command ExistingCommand echo "no"',
\ ], 'Xcommandexists')
call assert_fails('source Xcommandexists', 'E174:')
call assert_equal(2, exists(':ExistingCommand'))
call delete('Xcommandexists')
delcommand ExistingCommand
endfunc
func Test_CmdUndefined()
call assert_fails('Doit', 'E492:')
au CmdUndefined Doit :command Doit let g:didit = 'yes'