diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-07-17 13:03:10 +0800 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2022-07-17 13:51:46 +0800 |
commit | 7e79cb56c5e2ebc34731764c5fa46bebfd5603e2 (patch) | |
tree | a30379c223b74f086cce7b197964b93bdbda53cc | |
parent | 95b1191505a567fd309c16615948479456826c92 (diff) | |
download | rneovim-7e79cb56c5e2ebc34731764c5fa46bebfd5603e2.tar.gz rneovim-7e79cb56c5e2ebc34731764c5fa46bebfd5603e2.tar.bz2 rneovim-7e79cb56c5e2ebc34731764c5fa46bebfd5603e2.zip |
vim-patch:8.2.1294: Vim9: error when using vim9script in TextYankPost
Problem: Vim9: error when using vim9script in TextYankPost.
Solution: Use EX_LOCKOK instead of the EX_CMDWIN flag for command that can
be used when text is locked. (closes vim/vim#6529)
https://github.com/vim/vim/commit/37394ff75270877a032422abcd079a6732a29730
-rw-r--r-- | src/nvim/ex_cmds.lua | 609 | ||||
-rw-r--r-- | src/nvim/ex_cmds_defs.h | 7 | ||||
-rw-r--r-- | src/nvim/ex_docmd.c | 28 |
3 files changed, 329 insertions, 315 deletions
diff --git a/src/nvim/ex_cmds.lua b/src/nvim/ex_cmds.lua index 8c8cde8be3..3ccc45e9ab 100644 --- a/src/nvim/ex_cmds.lua +++ b/src/nvim/ex_cmds.lua @@ -26,6 +26,7 @@ local SBOXOK = 0x40000 local CMDWIN = 0x80000 local MODIFY = 0x100000 local FLAGS = 0x200000 +local LOCK_OK = 0x1000000 local PREVIEW = 0x8000000 local FILES = bit.bor(XFILE, EXTRA) local WORD1 = bit.bor(EXTRA, NOSPC) @@ -41,19 +42,19 @@ module.flags = { module.cmds = { { command='append', - flags=bit.bor(BANG, RANGE, ZEROR, TRLBAR, CMDWIN, MODIFY), + flags=bit.bor(BANG, RANGE, ZEROR, TRLBAR, CMDWIN, LOCK_OK, MODIFY), addr_type='ADDR_LINES', func='ex_append', }, { command='abbreviate', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_abbreviate', }, { command='abclear', - flags=bit.bor(EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_abclear', }, @@ -71,13 +72,13 @@ module.cmds = { }, { command='amenu', - flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_menu', }, { command='anoremenu', - flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_menu', }, @@ -131,25 +132,25 @@ module.cmds = { }, { command='ascii', - flags=bit.bor(TRLBAR, SBOXOK, CMDWIN), + flags=bit.bor(TRLBAR, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='do_ascii', }, { command='autocmd', - flags=bit.bor(BANG, EXTRA, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(BANG, EXTRA, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_autocmd', }, { command='augroup', - flags=bit.bor(BANG, WORD1, TRLBAR, CMDWIN), + flags=bit.bor(BANG, WORD1, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_autocmd', }, { command='aunmenu', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_menu', }, @@ -173,13 +174,13 @@ module.cmds = { }, { command='badd', - flags=bit.bor(NEEDARG, FILE1, CMDARG, TRLBAR, CMDWIN), + flags=bit.bor(NEEDARG, FILE1, CMDARG, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_edit', }, { command='balt', - flags=bit.bor(NEEDARG, FILE1, CMDARG, TRLBAR, CMDWIN), + flags=bit.bor(NEEDARG, FILE1, CMDARG, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_edit', }, @@ -191,7 +192,7 @@ module.cmds = { }, { command='behave', - flags=bit.bor(BANG, NEEDARG, WORD1, TRLBAR, CMDWIN), + flags=bit.bor(BANG, NEEDARG, WORD1, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_behave', }, @@ -245,37 +246,37 @@ module.cmds = { }, { command='break', - flags=bit.bor(TRLBAR, SBOXOK, CMDWIN), + flags=bit.bor(TRLBAR, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_break', }, { command='breakadd', - flags=bit.bor(EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_breakadd', }, { command='breakdel', - flags=bit.bor(EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_breakdel', }, { command='breaklist', - flags=bit.bor(EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_breaklist', }, { command='browse', - flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM, CMDWIN), + flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_wrongmodifier', }, { command='buffers', - flags=bit.bor(BANG, EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(BANG, EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='buflist_list', }, @@ -299,7 +300,7 @@ module.cmds = { }, { command='change', - flags=bit.bor(BANG, WHOLEFOLD, RANGE, COUNT, TRLBAR, CMDWIN, MODIFY), + flags=bit.bor(BANG, WHOLEFOLD, RANGE, COUNT, TRLBAR, CMDWIN, LOCK_OK, MODIFY), addr_type='ADDR_LINES', func='ex_change', }, @@ -317,13 +318,13 @@ module.cmds = { }, { command='cabbrev', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_abbreviate', }, { command='cabclear', - flags=bit.bor(EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_abclear', }, @@ -359,13 +360,13 @@ module.cmds = { }, { command='call', - flags=bit.bor(RANGE, NEEDARG, EXTRA, NOTRLCOM, SBOXOK, CMDWIN), + flags=bit.bor(RANGE, NEEDARG, EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_call', }, { command='catch', - flags=bit.bor(EXTRA, SBOXOK, CMDWIN), + flags=bit.bor(EXTRA, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_catch', }, @@ -407,7 +408,7 @@ module.cmds = { }, { command='cd', - flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN), + flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_cd', }, @@ -419,7 +420,7 @@ module.cmds = { }, { command='center', - flags=bit.bor(TRLBAR, RANGE, WHOLEFOLD, EXTRA, CMDWIN, MODIFY), + flags=bit.bor(TRLBAR, RANGE, WHOLEFOLD, EXTRA, CMDWIN, LOCK_OK, MODIFY), addr_type='ADDR_LINES', func='ex_align', }, @@ -469,13 +470,13 @@ module.cmds = { }, { command='chdir', - flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN), + flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_cd', }, { command='changes', - flags=bit.bor(TRLBAR, CMDWIN), + flags=bit.bor(TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_changes', }, @@ -487,7 +488,7 @@ module.cmds = { }, { command='checkpath', - flags=bit.bor(TRLBAR, BANG, CMDWIN), + flags=bit.bor(TRLBAR, BANG, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_checkpath', }, @@ -505,7 +506,7 @@ module.cmds = { }, { command='clist', - flags=bit.bor(BANG, EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(BANG, EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='qf_list', }, @@ -517,31 +518,31 @@ module.cmds = { }, { command='close', - flags=bit.bor(BANG, RANGE, COUNT, TRLBAR, CMDWIN), + flags=bit.bor(BANG, RANGE, COUNT, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_WINDOWS', func='ex_close', }, { command='clearjumps', - flags=bit.bor(TRLBAR, CMDWIN), + flags=bit.bor(TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_clearjumps', }, { command='cmap', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_map', }, { command='cmapclear', - flags=bit.bor(EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_mapclear', }, { command='cmenu', - flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_menu', }, @@ -565,25 +566,25 @@ module.cmds = { }, { command='cnoremap', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_map', }, { command='cnoreabbrev', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_abbreviate', }, { command='cnoremenu', - flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_menu', }, { command='copy', - flags=bit.bor(RANGE, WHOLEFOLD, EXTRA, TRLBAR, CMDWIN, MODIFY), + flags=bit.bor(RANGE, WHOLEFOLD, EXTRA, TRLBAR, CMDWIN, LOCK_OK, MODIFY), addr_type='ADDR_LINES', func='ex_copymove', }, @@ -595,43 +596,43 @@ module.cmds = { }, { command='colorscheme', - flags=bit.bor(WORD1, TRLBAR, CMDWIN), + flags=bit.bor(WORD1, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_colorscheme', }, { command='command', - flags=bit.bor(EXTRA, BANG, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, BANG, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_command', }, { command='comclear', - flags=bit.bor(TRLBAR, CMDWIN), + flags=bit.bor(TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_comclear', }, { command='compiler', - flags=bit.bor(BANG, TRLBAR, WORD1, CMDWIN), + flags=bit.bor(BANG, TRLBAR, WORD1, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_compiler', }, { command='continue', - flags=bit.bor(TRLBAR, SBOXOK, CMDWIN), + flags=bit.bor(TRLBAR, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_continue', }, { command='confirm', - flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM, CMDWIN), + flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_wrongmodifier', }, { command='const', - flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN), + flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_const', }, @@ -679,19 +680,19 @@ module.cmds = { }, { command='cunmap', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_unmap', }, { command='cunabbrev', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_abbreviate', }, { command='cunmenu', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_menu', }, @@ -703,43 +704,43 @@ module.cmds = { }, { command='delete', - flags=bit.bor(RANGE, WHOLEFOLD, REGSTR, COUNT, TRLBAR, CMDWIN, MODIFY), + flags=bit.bor(RANGE, WHOLEFOLD, REGSTR, COUNT, TRLBAR, CMDWIN, LOCK_OK, MODIFY), addr_type='ADDR_LINES', func='ex_operators', }, { command='delmarks', - flags=bit.bor(BANG, EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(BANG, EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_delmarks', }, { command='debug', - flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM, SBOXOK, CMDWIN), + flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_debug', }, { command='debuggreedy', - flags=bit.bor(RANGE, ZEROR, TRLBAR, CMDWIN), + flags=bit.bor(RANGE, ZEROR, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_debuggreedy', }, { command='delcommand', - flags=bit.bor(BANG, NEEDARG, WORD1, TRLBAR, CMDWIN), + flags=bit.bor(BANG, NEEDARG, WORD1, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_delcommand', }, { command='delfunction', - flags=bit.bor(BANG, NEEDARG, WORD1, CMDWIN), + flags=bit.bor(BANG, NEEDARG, WORD1, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_delfunction', }, { command='display', - flags=bit.bor(EXTRA, NOTRLCOM, TRLBAR, SBOXOK, CMDWIN), + flags=bit.bor(EXTRA, NOTRLCOM, TRLBAR, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_display', }, @@ -787,7 +788,7 @@ module.cmds = { }, { command='digraphs', - flags=bit.bor(BANG, EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(BANG, EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_digraphs', }, @@ -799,19 +800,19 @@ module.cmds = { }, { command='dlist', - flags=bit.bor(BANG, RANGE, DFLALL, WHOLEFOLD, EXTRA, CMDWIN), + flags=bit.bor(BANG, RANGE, DFLALL, WHOLEFOLD, EXTRA, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_findpat', }, { command='doautocmd', - flags=bit.bor(EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_doautocmd', }, { command='doautoall', - flags=bit.bor(EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_doautoall', }, @@ -823,7 +824,7 @@ module.cmds = { }, { command='dsearch', - flags=bit.bor(BANG, RANGE, DFLALL, WHOLEFOLD, EXTRA, CMDWIN), + flags=bit.bor(BANG, RANGE, DFLALL, WHOLEFOLD, EXTRA, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_findpat', }, @@ -841,85 +842,85 @@ module.cmds = { }, { command='earlier', - flags=bit.bor(TRLBAR, EXTRA, NOSPC, CMDWIN), + flags=bit.bor(TRLBAR, EXTRA, NOSPC, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_later', }, { command='echo', - flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN), + flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_echo', }, { command='echoerr', - flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN), + flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_execute', }, { command='echohl', - flags=bit.bor(EXTRA, TRLBAR, SBOXOK, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_echohl', }, { command='echomsg', - flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN), + flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_execute', }, { command='echon', - flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN), + flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_echo', }, { command='else', - flags=bit.bor(TRLBAR, SBOXOK, CMDWIN), + flags=bit.bor(TRLBAR, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_else', }, { command='elseif', - flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN), + flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_else', }, { command='emenu', - flags=bit.bor(NEEDARG, EXTRA, TRLBAR, NOTRLCOM, RANGE, CMDWIN), + flags=bit.bor(NEEDARG, EXTRA, TRLBAR, NOTRLCOM, RANGE, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_emenu', }, { command='endif', - flags=bit.bor(TRLBAR, SBOXOK, CMDWIN), + flags=bit.bor(TRLBAR, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_endif', }, { command='endfunction', - flags=bit.bor(TRLBAR, CMDWIN), + flags=bit.bor(TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_endfunction', }, { command='endfor', - flags=bit.bor(TRLBAR, SBOXOK, CMDWIN), + flags=bit.bor(TRLBAR, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_endwhile', }, { command='endtry', - flags=bit.bor(TRLBAR, SBOXOK, CMDWIN), + flags=bit.bor(TRLBAR, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_endtry', }, { command='endwhile', - flags=bit.bor(TRLBAR, SBOXOK, CMDWIN), + flags=bit.bor(TRLBAR, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_endwhile', }, @@ -931,7 +932,7 @@ module.cmds = { }, { command='eval', - flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN), + flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_eval', }, @@ -943,13 +944,13 @@ module.cmds = { }, { command='execute', - flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN), + flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_execute', }, { command='exit', - flags=bit.bor(RANGE, WHOLEFOLD, BANG, FILE1, ARGOPT, DFLALL, TRLBAR, CMDWIN), + flags=bit.bor(RANGE, WHOLEFOLD, BANG, FILE1, ARGOPT, DFLALL, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_exit', }, @@ -967,13 +968,13 @@ module.cmds = { }, { command='files', - flags=bit.bor(BANG, EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(BANG, EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='buflist_list', }, { command='filetype', - flags=bit.bor(EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_filetype', }, @@ -991,13 +992,13 @@ module.cmds = { }, { command='finally', - flags=bit.bor(TRLBAR, SBOXOK, CMDWIN), + flags=bit.bor(TRLBAR, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_finally', }, { command='finish', - flags=bit.bor(TRLBAR, SBOXOK, CMDWIN), + flags=bit.bor(TRLBAR, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_finish', }, @@ -1009,13 +1010,13 @@ module.cmds = { }, { command='fold', - flags=bit.bor(RANGE, WHOLEFOLD, TRLBAR, SBOXOK, CMDWIN), + flags=bit.bor(RANGE, WHOLEFOLD, TRLBAR, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_fold', }, { command='foldclose', - flags=bit.bor(RANGE, BANG, WHOLEFOLD, TRLBAR, SBOXOK, CMDWIN), + flags=bit.bor(RANGE, BANG, WHOLEFOLD, TRLBAR, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_foldopen', }, @@ -1033,31 +1034,31 @@ module.cmds = { }, { command='foldopen', - flags=bit.bor(RANGE, BANG, WHOLEFOLD, TRLBAR, SBOXOK, CMDWIN), + flags=bit.bor(RANGE, BANG, WHOLEFOLD, TRLBAR, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_foldopen', }, { command='for', - flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN), + flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_while', }, { command='function', - flags=bit.bor(EXTRA, BANG, SBOXOK, CMDWIN), + flags=bit.bor(EXTRA, BANG, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_function', }, { command='global', - flags=bit.bor(RANGE, WHOLEFOLD, BANG, EXTRA, DFLALL, SBOXOK, CMDWIN), + flags=bit.bor(RANGE, WHOLEFOLD, BANG, EXTRA, DFLALL, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_global', }, { command='goto', - flags=bit.bor(RANGE, COUNT, TRLBAR, SBOXOK, CMDWIN), + flags=bit.bor(RANGE, COUNT, TRLBAR, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_goto', }, @@ -1075,13 +1076,13 @@ module.cmds = { }, { command='gui', - flags=bit.bor(BANG, FILES, CMDARG, ARGOPT, TRLBAR, CMDWIN), + flags=bit.bor(BANG, FILES, CMDARG, ARGOPT, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_nogui', }, { command='gvim', - flags=bit.bor(BANG, FILES, CMDARG, ARGOPT, TRLBAR, CMDWIN), + flags=bit.bor(BANG, FILES, CMDARG, ARGOPT, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_nogui', }, @@ -1105,7 +1106,7 @@ module.cmds = { }, { command='helptags', - flags=bit.bor(NEEDARG, FILES, TRLBAR, CMDWIN), + flags=bit.bor(NEEDARG, FILES, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_helptags', }, @@ -1117,7 +1118,7 @@ module.cmds = { }, { command='highlight', - flags=bit.bor(BANG, EXTRA, TRLBAR, SBOXOK, CMDWIN), + flags=bit.bor(BANG, EXTRA, TRLBAR, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_highlight', }, @@ -1129,31 +1130,31 @@ module.cmds = { }, { command='history', - flags=bit.bor(EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_history', }, { command='insert', - flags=bit.bor(BANG, RANGE, TRLBAR, CMDWIN, MODIFY), + flags=bit.bor(BANG, RANGE, TRLBAR, CMDWIN, LOCK_OK, MODIFY), addr_type='ADDR_LINES', func='ex_append', }, { command='iabbrev', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_abbreviate', }, { command='iabclear', - flags=bit.bor(EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_abclear', }, { command='if', - flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN), + flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_if', }, @@ -1165,55 +1166,55 @@ module.cmds = { }, { command='ilist', - flags=bit.bor(BANG, RANGE, DFLALL, WHOLEFOLD, EXTRA, CMDWIN), + flags=bit.bor(BANG, RANGE, DFLALL, WHOLEFOLD, EXTRA, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_findpat', }, { command='imap', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_map', }, { command='imapclear', - flags=bit.bor(EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_mapclear', }, { command='imenu', - flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_menu', }, { command='inoremap', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_map', }, { command='inoreabbrev', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_abbreviate', }, { command='inoremenu', - flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_menu', }, { command='intro', - flags=bit.bor(TRLBAR, CMDWIN), + flags=bit.bor(TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_intro', }, { command='isearch', - flags=bit.bor(BANG, RANGE, DFLALL, WHOLEFOLD, EXTRA, CMDWIN), + flags=bit.bor(BANG, RANGE, DFLALL, WHOLEFOLD, EXTRA, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_findpat', }, @@ -1225,37 +1226,37 @@ module.cmds = { }, { command='iunmap', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_unmap', }, { command='iunabbrev', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_abbreviate', }, { command='iunmenu', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_menu', }, { command='join', - flags=bit.bor(BANG, RANGE, WHOLEFOLD, COUNT, FLAGS, TRLBAR, CMDWIN, MODIFY), + flags=bit.bor(BANG, RANGE, WHOLEFOLD, COUNT, FLAGS, TRLBAR, CMDWIN, LOCK_OK, MODIFY), addr_type='ADDR_LINES', func='ex_join', }, { command='jumps', - flags=bit.bor(TRLBAR, CMDWIN), + flags=bit.bor(TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_jumps', }, { command='k', - flags=bit.bor(RANGE, WORD1, TRLBAR, SBOXOK, CMDWIN), + flags=bit.bor(RANGE, WORD1, TRLBAR, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_mark', }, @@ -1285,7 +1286,7 @@ module.cmds = { }, { command='list', - flags=bit.bor(RANGE, WHOLEFOLD, COUNT, FLAGS, TRLBAR, CMDWIN), + flags=bit.bor(RANGE, WHOLEFOLD, COUNT, FLAGS, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_print', }, @@ -1315,7 +1316,7 @@ module.cmds = { }, { command='language', - flags=bit.bor(EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_language', }, @@ -1345,7 +1346,7 @@ module.cmds = { }, { command='later', - flags=bit.bor(TRLBAR, EXTRA, NOSPC, CMDWIN), + flags=bit.bor(TRLBAR, EXTRA, NOSPC, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_later', }, @@ -1375,13 +1376,13 @@ module.cmds = { }, { command='lcd', - flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN), + flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_cd', }, { command='lchdir', - flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN), + flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_cd', }, @@ -1405,7 +1406,7 @@ module.cmds = { }, { command='left', - flags=bit.bor(TRLBAR, RANGE, WHOLEFOLD, EXTRA, CMDWIN, MODIFY), + flags=bit.bor(TRLBAR, RANGE, WHOLEFOLD, EXTRA, CMDWIN, LOCK_OK, MODIFY), addr_type='ADDR_LINES', func='ex_align', }, @@ -1417,7 +1418,7 @@ module.cmds = { }, { command='let', - flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN), + flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_let', }, @@ -1503,19 +1504,19 @@ module.cmds = { }, { command='llist', - flags=bit.bor(BANG, EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(BANG, EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='qf_list', }, { command='lmap', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_map', }, { command='lmapclear', - flags=bit.bor(EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_mapclear', }, @@ -1527,7 +1528,7 @@ module.cmds = { }, { command='lnoremap', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_map', }, @@ -1557,7 +1558,7 @@ module.cmds = { }, { command='loadkeymap', - flags=bit.bor(CMDWIN), + flags=bit.bor(CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_loadkeymap', }, @@ -1569,7 +1570,7 @@ module.cmds = { }, { command='lockvar', - flags=bit.bor(BANG, EXTRA, NEEDARG, SBOXOK, CMDWIN), + flags=bit.bor(BANG, EXTRA, NEEDARG, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_lockvar', }, @@ -1611,25 +1612,25 @@ module.cmds = { }, { command='lunmap', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_unmap', }, { command='lua', - flags=bit.bor(RANGE, EXTRA, NEEDARG, CMDWIN), + flags=bit.bor(RANGE, EXTRA, NEEDARG, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_lua', }, { command='luado', - flags=bit.bor(RANGE, DFLALL, EXTRA, NEEDARG, CMDWIN), + flags=bit.bor(RANGE, DFLALL, EXTRA, NEEDARG, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_luado', }, { command='luafile', - flags=bit.bor(RANGE, FILE1, NEEDARG, CMDWIN), + flags=bit.bor(RANGE, FILE1, NEEDARG, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_luafile', }, @@ -1653,19 +1654,19 @@ module.cmds = { }, { command='ls', - flags=bit.bor(BANG, EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(BANG, EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='buflist_list', }, { command='move', - flags=bit.bor(RANGE, WHOLEFOLD, EXTRA, TRLBAR, CMDWIN, MODIFY), + flags=bit.bor(RANGE, WHOLEFOLD, EXTRA, TRLBAR, CMDWIN, LOCK_OK, MODIFY), addr_type='ADDR_LINES', func='ex_copymove', }, { command='mark', - flags=bit.bor(RANGE, WORD1, TRLBAR, SBOXOK, CMDWIN), + flags=bit.bor(RANGE, WORD1, TRLBAR, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_mark', }, @@ -1677,49 +1678,49 @@ module.cmds = { }, { command='map', - flags=bit.bor(BANG, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(BANG, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_map', }, { command='mapclear', - flags=bit.bor(EXTRA, BANG, TRLBAR, CMDWIN), + flags=bit.bor(EXTRA, BANG, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_mapclear', }, { command='marks', - flags=bit.bor(EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_marks', }, { command='match', - flags=bit.bor(RANGE, EXTRA, CMDWIN), + flags=bit.bor(RANGE, EXTRA, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_match', }, { command='menu', - flags=bit.bor(RANGE, ZEROR, BANG, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(RANGE, ZEROR, BANG, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_menu', }, { command='menutranslate', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_menutranslate', }, { command='messages', - flags=bit.bor(EXTRA, TRLBAR, RANGE, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, RANGE, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_messages', }, { command='mkexrc', - flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN), + flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_mkrc', }, @@ -1737,7 +1738,7 @@ module.cmds = { }, { command='mkvimrc', - flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN), + flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_mkrc', }, @@ -1749,19 +1750,19 @@ module.cmds = { }, { command='mode', - flags=bit.bor(WORD1, TRLBAR, CMDWIN), + flags=bit.bor(WORD1, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_mode', }, { command='mzscheme', - flags=bit.bor(RANGE, EXTRA, DFLALL, NEEDARG, CMDWIN, SBOXOK), + flags=bit.bor(RANGE, EXTRA, DFLALL, NEEDARG, CMDWIN, LOCK_OK, SBOXOK), addr_type='ADDR_LINES', func='ex_script_ni', }, { command='mzfile', - flags=bit.bor(RANGE, FILE1, NEEDARG, CMDWIN), + flags=bit.bor(RANGE, FILE1, NEEDARG, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_ni', }, @@ -1779,37 +1780,37 @@ module.cmds = { }, { command='nmap', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_map', }, { command='nmapclear', - flags=bit.bor(EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_mapclear', }, { command='nmenu', - flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_menu', }, { command='nnoremap', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_map', }, { command='nnoremenu', - flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_menu', }, { command='noremap', - flags=bit.bor(BANG, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(BANG, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_map', }, @@ -1821,19 +1822,19 @@ module.cmds = { }, { command='nohlsearch', - flags=bit.bor(TRLBAR, SBOXOK, CMDWIN), + flags=bit.bor(TRLBAR, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_nohlsearch', }, { command='noreabbrev', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_abbreviate', }, { command='noremenu', - flags=bit.bor(RANGE, ZEROR, BANG, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(RANGE, ZEROR, BANG, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_menu', }, @@ -1845,49 +1846,49 @@ module.cmds = { }, { command='normal', - flags=bit.bor(RANGE, BANG, EXTRA, NEEDARG, NOTRLCOM, CTRLV, SBOXOK, CMDWIN), + flags=bit.bor(RANGE, BANG, EXTRA, NEEDARG, NOTRLCOM, CTRLV, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_normal', }, { command='number', - flags=bit.bor(RANGE, WHOLEFOLD, COUNT, FLAGS, TRLBAR, CMDWIN), + flags=bit.bor(RANGE, WHOLEFOLD, COUNT, FLAGS, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_print', }, { command='nunmap', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_unmap', }, { command='nunmenu', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_menu', }, { command='oldfiles', - flags=bit.bor(BANG, TRLBAR, SBOXOK, CMDWIN), + flags=bit.bor(BANG, TRLBAR, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_oldfiles', }, { command='omap', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_map', }, { command='omapclear', - flags=bit.bor(EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_mapclear', }, { command='omenu', - flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_menu', }, @@ -1899,13 +1900,13 @@ module.cmds = { }, { command='onoremap', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_map', }, { command='onoremenu', - flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_menu', }, @@ -1917,37 +1918,37 @@ module.cmds = { }, { command='ounmap', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_unmap', }, { command='ounmenu', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_menu', }, { command='ownsyntax', - flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN), + flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_ownsyntax', }, { command='print', - flags=bit.bor(RANGE, WHOLEFOLD, COUNT, FLAGS, TRLBAR, CMDWIN, SBOXOK), + flags=bit.bor(RANGE, WHOLEFOLD, COUNT, FLAGS, TRLBAR, CMDWIN, LOCK_OK, SBOXOK), addr_type='ADDR_LINES', func='ex_print', }, { command='packadd', - flags=bit.bor(BANG, FILE1, NEEDARG, TRLBAR, SBOXOK, CMDWIN), + flags=bit.bor(BANG, FILE1, NEEDARG, TRLBAR, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_packadd', }, { command='packloadall', - flags=bit.bor(BANG, TRLBAR, SBOXOK, CMDWIN), + flags=bit.bor(BANG, TRLBAR, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_packloadall', }, @@ -1959,19 +1960,19 @@ module.cmds = { }, { command='perl', - flags=bit.bor(RANGE, EXTRA, DFLALL, NEEDARG, SBOXOK, CMDWIN), + flags=bit.bor(RANGE, EXTRA, DFLALL, NEEDARG, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_perl', }, { command='perldo', - flags=bit.bor(RANGE, EXTRA, DFLALL, NEEDARG, CMDWIN), + flags=bit.bor(RANGE, EXTRA, DFLALL, NEEDARG, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_perldo', }, { command='perlfile', - flags=bit.bor(RANGE, FILE1, NEEDARG, CMDWIN), + flags=bit.bor(RANGE, FILE1, NEEDARG, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_perlfile', }, @@ -1989,7 +1990,7 @@ module.cmds = { }, { command='popup', - flags=bit.bor(NEEDARG, EXTRA, BANG, TRLBAR, NOTRLCOM, CMDWIN), + flags=bit.bor(NEEDARG, EXTRA, BANG, TRLBAR, NOTRLCOM, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_popup', }, @@ -2013,13 +2014,13 @@ module.cmds = { }, { command='profile', - flags=bit.bor(BANG, EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(BANG, EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_profile', }, { command='profdel', - flags=bit.bor(EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_breakdel', }, @@ -2085,85 +2086,85 @@ module.cmds = { }, { command='put', - flags=bit.bor(RANGE, WHOLEFOLD, BANG, REGSTR, TRLBAR, ZEROR, CMDWIN, MODIFY), + flags=bit.bor(RANGE, WHOLEFOLD, BANG, REGSTR, TRLBAR, ZEROR, CMDWIN, LOCK_OK, MODIFY), addr_type='ADDR_LINES', func='ex_put', }, { command='pwd', - flags=bit.bor(TRLBAR, CMDWIN), + flags=bit.bor(TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_pwd', }, { command='python', - flags=bit.bor(RANGE, EXTRA, NEEDARG, CMDWIN), + flags=bit.bor(RANGE, EXTRA, NEEDARG, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_python3', }, { command='pydo', - flags=bit.bor(RANGE, DFLALL, EXTRA, NEEDARG, CMDWIN), + flags=bit.bor(RANGE, DFLALL, EXTRA, NEEDARG, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_pydo3', }, { command='pyfile', - flags=bit.bor(RANGE, FILE1, NEEDARG, CMDWIN), + flags=bit.bor(RANGE, FILE1, NEEDARG, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_py3file', }, { command='py3', - flags=bit.bor(RANGE, EXTRA, NEEDARG, CMDWIN), + flags=bit.bor(RANGE, EXTRA, NEEDARG, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_python3', }, { command='py3do', - flags=bit.bor(RANGE, DFLALL, EXTRA, NEEDARG, CMDWIN), + flags=bit.bor(RANGE, DFLALL, EXTRA, NEEDARG, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_pydo3', }, { command='python3', - flags=bit.bor(RANGE, EXTRA, NEEDARG, CMDWIN), + flags=bit.bor(RANGE, EXTRA, NEEDARG, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_python3', }, { command='py3file', - flags=bit.bor(RANGE, FILE1, NEEDARG, CMDWIN), + flags=bit.bor(RANGE, FILE1, NEEDARG, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_py3file', }, { command='pyx', - flags=bit.bor(RANGE, EXTRA, NEEDARG, CMDWIN), + flags=bit.bor(RANGE, EXTRA, NEEDARG, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_python3', }, { command='pyxdo', - flags=bit.bor(RANGE, DFLALL, EXTRA, NEEDARG, CMDWIN), + flags=bit.bor(RANGE, DFLALL, EXTRA, NEEDARG, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_pydo3', }, { command='pythonx', - flags=bit.bor(RANGE, EXTRA, NEEDARG, CMDWIN), + flags=bit.bor(RANGE, EXTRA, NEEDARG, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_python3', }, { command='pyxfile', - flags=bit.bor(RANGE, FILE1, NEEDARG, CMDWIN), + flags=bit.bor(RANGE, FILE1, NEEDARG, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_py3file', }, { command='quit', - flags=bit.bor(BANG, RANGE, COUNT, TRLBAR, CMDWIN), + flags=bit.bor(BANG, RANGE, COUNT, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_WINDOWS', func='ex_quit', }, @@ -2175,13 +2176,13 @@ module.cmds = { }, { command='qall', - flags=bit.bor(BANG, TRLBAR, CMDWIN), + flags=bit.bor(BANG, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_quit_all', }, { command='read', - flags=bit.bor(BANG, RANGE, WHOLEFOLD, FILE1, ARGOPT, TRLBAR, ZEROR, CMDWIN, MODIFY), + flags=bit.bor(BANG, RANGE, WHOLEFOLD, FILE1, ARGOPT, TRLBAR, ZEROR, CMDWIN, LOCK_OK, MODIFY), addr_type='ADDR_LINES', func='ex_read', }, @@ -2193,55 +2194,55 @@ module.cmds = { }, { command='redo', - flags=bit.bor(TRLBAR, CMDWIN), + flags=bit.bor(TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_redo', }, { command='redir', - flags=bit.bor(BANG, FILES, TRLBAR, CMDWIN), + flags=bit.bor(BANG, FILES, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_redir', }, { command='redraw', - flags=bit.bor(BANG, TRLBAR, CMDWIN), + flags=bit.bor(BANG, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_redraw', }, { command='redrawstatus', - flags=bit.bor(BANG, TRLBAR, CMDWIN), + flags=bit.bor(BANG, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_redrawstatus', }, { command='redrawtabline', - flags=bit.bor(TRLBAR, CMDWIN), + flags=bit.bor(TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_redrawtabline', }, { command='registers', - flags=bit.bor(EXTRA, NOTRLCOM, TRLBAR, CMDWIN), + flags=bit.bor(EXTRA, NOTRLCOM, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_display', }, { command='resize', - flags=bit.bor(RANGE, TRLBAR, WORD1, CMDWIN), + flags=bit.bor(RANGE, TRLBAR, WORD1, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_resize', }, { command='retab', - flags=bit.bor(TRLBAR, RANGE, WHOLEFOLD, DFLALL, BANG, WORD1, CMDWIN, MODIFY), + flags=bit.bor(TRLBAR, RANGE, WHOLEFOLD, DFLALL, BANG, WORD1, CMDWIN, LOCK_OK, MODIFY), addr_type='ADDR_LINES', func='ex_retab', }, { command='return', - flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN), + flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_return', }, @@ -2253,7 +2254,7 @@ module.cmds = { }, { command='right', - flags=bit.bor(TRLBAR, RANGE, WHOLEFOLD, EXTRA, CMDWIN, MODIFY), + flags=bit.bor(TRLBAR, RANGE, WHOLEFOLD, EXTRA, CMDWIN, LOCK_OK, MODIFY), addr_type='ADDR_LINES', func='ex_align', }, @@ -2265,13 +2266,13 @@ module.cmds = { }, { command='rshada', - flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN), + flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_shada', }, { command='runtime', - flags=bit.bor(BANG, NEEDARG, FILES, TRLBAR, SBOXOK, CMDWIN), + flags=bit.bor(BANG, NEEDARG, FILES, TRLBAR, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_runtime', }, @@ -2283,31 +2284,31 @@ module.cmds = { }, { command='ruby', - flags=bit.bor(RANGE, EXTRA, NEEDARG, CMDWIN), + flags=bit.bor(RANGE, EXTRA, NEEDARG, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_ruby', }, { command='rubydo', - flags=bit.bor(RANGE, DFLALL, EXTRA, NEEDARG, CMDWIN), + flags=bit.bor(RANGE, DFLALL, EXTRA, NEEDARG, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_rubydo', }, { command='rubyfile', - flags=bit.bor(RANGE, FILE1, NEEDARG, CMDWIN), + flags=bit.bor(RANGE, FILE1, NEEDARG, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_rubyfile', }, { command='rviminfo', - flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN), + flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_shada', }, { command='substitute', - flags=bit.bor(RANGE, WHOLEFOLD, EXTRA, CMDWIN, PREVIEW), + flags=bit.bor(RANGE, WHOLEFOLD, EXTRA, CMDWIN, LOCK_OK, PREVIEW), addr_type='ADDR_LINES', func='ex_substitute', preview_func='ex_substitute_preview', @@ -2338,7 +2339,7 @@ module.cmds = { }, { command='saveas', - flags=bit.bor(BANG, FILE1, ARGOPT, CMDWIN, TRLBAR), + flags=bit.bor(BANG, FILE1, ARGOPT, CMDWIN, LOCK_OK, TRLBAR), addr_type='ADDR_NONE', func='ex_write', }, @@ -2398,13 +2399,13 @@ module.cmds = { }, { command='scriptnames', - flags=bit.bor(BANG, RANGE, COUNT, TRLBAR, CMDWIN), + flags=bit.bor(BANG, RANGE, COUNT, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_scriptnames', }, { command='scriptencoding', - flags=bit.bor(WORD1, TRLBAR, CMDWIN), + flags=bit.bor(WORD1, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_scriptencoding', }, @@ -2416,25 +2417,25 @@ module.cmds = { }, { command='set', - flags=bit.bor(BANG, TRLBAR, EXTRA, CMDWIN, SBOXOK), + flags=bit.bor(BANG, TRLBAR, EXTRA, CMDWIN, LOCK_OK, SBOXOK), addr_type='ADDR_NONE', func='ex_set', }, { command='setfiletype', - flags=bit.bor(TRLBAR, EXTRA, NEEDARG, CMDWIN), + flags=bit.bor(TRLBAR, EXTRA, NEEDARG, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_setfiletype', }, { command='setglobal', - flags=bit.bor(BANG, TRLBAR, EXTRA, CMDWIN, SBOXOK), + flags=bit.bor(BANG, TRLBAR, EXTRA, CMDWIN, LOCK_OK, SBOXOK), addr_type='ADDR_NONE', func='ex_set', }, { command='setlocal', - flags=bit.bor(BANG, TRLBAR, EXTRA, CMDWIN, SBOXOK), + flags=bit.bor(BANG, TRLBAR, EXTRA, CMDWIN, LOCK_OK, SBOXOK), addr_type='ADDR_NONE', func='ex_set', }, @@ -2452,25 +2453,25 @@ module.cmds = { }, { command='simalt', - flags=bit.bor(NEEDARG, WORD1, TRLBAR, CMDWIN), + flags=bit.bor(NEEDARG, WORD1, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_ni', }, { command='sign', - flags=bit.bor(NEEDARG, RANGE, EXTRA, CMDWIN), + flags=bit.bor(NEEDARG, RANGE, EXTRA, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_sign', }, { command='silent', - flags=bit.bor(NEEDARG, EXTRA, BANG, NOTRLCOM, SBOXOK, CMDWIN), + flags=bit.bor(NEEDARG, EXTRA, BANG, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_wrongmodifier', }, { command='sleep', - flags=bit.bor(BANG, RANGE, COUNT, EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(BANG, RANGE, COUNT, EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_sleep', }, @@ -2482,26 +2483,26 @@ module.cmds = { }, { command='smagic', - flags=bit.bor(RANGE, WHOLEFOLD, EXTRA, CMDWIN, PREVIEW), + flags=bit.bor(RANGE, WHOLEFOLD, EXTRA, CMDWIN, LOCK_OK, PREVIEW), addr_type='ADDR_LINES', func='ex_submagic', preview_func='ex_submagic_preview', }, { command='smap', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_map', }, { command='smapclear', - flags=bit.bor(EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_mapclear', }, { command='smenu', - flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_menu', }, @@ -2513,26 +2514,26 @@ module.cmds = { }, { command='snomagic', - flags=bit.bor(RANGE, WHOLEFOLD, EXTRA, CMDWIN, PREVIEW), + flags=bit.bor(RANGE, WHOLEFOLD, EXTRA, CMDWIN, LOCK_OK, PREVIEW), addr_type='ADDR_LINES', func='ex_submagic', preview_func='ex_submagic_preview', }, { command='snoremap', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_map', }, { command='snoremenu', - flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_menu', }, { command='source', - flags=bit.bor(RANGE, DFLALL, WHOLEFOLD, BANG, FILE1, TRLBAR, SBOXOK, CMDWIN), + flags=bit.bor(RANGE, DFLALL, WHOLEFOLD, BANG, FILE1, TRLBAR, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_source', }, @@ -2604,7 +2605,7 @@ module.cmds = { }, { command='stop', - flags=bit.bor(TRLBAR, BANG, CMDWIN), + flags=bit.bor(TRLBAR, BANG, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_stop', }, @@ -2616,25 +2617,25 @@ module.cmds = { }, { command='startinsert', - flags=bit.bor(BANG, TRLBAR, CMDWIN), + flags=bit.bor(BANG, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_startinsert', }, { command='startgreplace', - flags=bit.bor(BANG, TRLBAR, CMDWIN), + flags=bit.bor(BANG, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_startinsert', }, { command='startreplace', - flags=bit.bor(BANG, TRLBAR, CMDWIN), + flags=bit.bor(BANG, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_startinsert', }, { command='stopinsert', - flags=bit.bor(BANG, TRLBAR, CMDWIN), + flags=bit.bor(BANG, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_stopinsert', }, @@ -2658,19 +2659,19 @@ module.cmds = { }, { command='sunmap', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_unmap', }, { command='sunmenu', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_menu', }, { command='suspend', - flags=bit.bor(TRLBAR, BANG, CMDWIN), + flags=bit.bor(TRLBAR, BANG, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_stop', }, @@ -2682,19 +2683,19 @@ module.cmds = { }, { command='swapname', - flags=bit.bor(TRLBAR, CMDWIN), + flags=bit.bor(TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_swapname', }, { command='syntax', - flags=bit.bor(EXTRA, NOTRLCOM, CMDWIN), + flags=bit.bor(EXTRA, NOTRLCOM, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_syntax', }, { command='syntime', - flags=bit.bor(NEEDARG, WORD1, TRLBAR, CMDWIN), + flags=bit.bor(NEEDARG, WORD1, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_syntime', }, @@ -2706,19 +2707,19 @@ module.cmds = { }, { command='t', - flags=bit.bor(RANGE, WHOLEFOLD, EXTRA, TRLBAR, CMDWIN, MODIFY), + flags=bit.bor(RANGE, WHOLEFOLD, EXTRA, TRLBAR, CMDWIN, LOCK_OK, MODIFY), addr_type='ADDR_LINES', func='ex_copymove', }, { command='tcd', - flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN), + flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_cd', }, { command='tchdir', - flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN), + flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_cd', }, @@ -2736,7 +2737,7 @@ module.cmds = { }, { command='tags', - flags=bit.bor(TRLBAR, CMDWIN), + flags=bit.bor(TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='do_tags', }, @@ -2748,7 +2749,7 @@ module.cmds = { }, { command='tabclose', - flags=bit.bor(BANG, RANGE, ZEROR, EXTRA, NOSPC, TRLBAR, CMDWIN), + flags=bit.bor(BANG, RANGE, ZEROR, EXTRA, NOSPC, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_TABS', func='ex_tabclose', }, @@ -2802,7 +2803,7 @@ module.cmds = { }, { command='tabonly', - flags=bit.bor(BANG, RANGE, ZEROR, EXTRA, NOSPC, TRLBAR, CMDWIN), + flags=bit.bor(BANG, RANGE, ZEROR, EXTRA, NOSPC, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_TABS', func='ex_tabonly', }, @@ -2826,31 +2827,31 @@ module.cmds = { }, { command='tabs', - flags=bit.bor(TRLBAR, CMDWIN), + flags=bit.bor(TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_tabs', }, { command='tcl', - flags=bit.bor(RANGE,EXTRA,NEEDARG,CMDWIN), + flags=bit.bor(RANGE, EXTRA, NEEDARG, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_script_ni', }, { command='tcldo', - flags=bit.bor(RANGE,DFLALL,EXTRA,NEEDARG,CMDWIN), + flags=bit.bor(RANGE, DFLALL, EXTRA, NEEDARG, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_ni', }, { command='tclfile', - flags=bit.bor(RANGE,FILE1,NEEDARG,CMDWIN), + flags=bit.bor(RANGE, FILE1, NEEDARG, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_ni', }, { command='terminal', - flags=bit.bor(BANG, FILES, CMDWIN), + flags=bit.bor(BANG, FILES, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_terminal', }, @@ -2862,7 +2863,7 @@ module.cmds = { }, { command='throw', - flags=bit.bor(EXTRA, NEEDARG, SBOXOK, CMDWIN), + flags=bit.bor(EXTRA, NEEDARG, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_throw', }, @@ -2880,37 +2881,37 @@ module.cmds = { }, { command='tlmenu', - flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_menu', }, { command='tlnoremenu', - flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_menu', }, { command='tlunmenu', - flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_menu', }, { command='tmenu', - flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_menu', }, { command='tmap', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_map', }, { command='tmapclear', - flags=bit.bor(EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_mapclear', }, @@ -2922,7 +2923,7 @@ module.cmds = { }, { command='tnoremap', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_map', }, @@ -2946,7 +2947,7 @@ module.cmds = { }, { command='try', - flags=bit.bor(TRLBAR, SBOXOK, CMDWIN), + flags=bit.bor(TRLBAR, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_try', }, @@ -2958,37 +2959,37 @@ module.cmds = { }, { command='tunmenu', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_menu', }, { command='tunmap', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_unmap', }, { command='undo', - flags=bit.bor(BANG, RANGE, COUNT, ZEROR, TRLBAR, CMDWIN), + flags=bit.bor(BANG, RANGE, COUNT, ZEROR, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_undo', }, { command='undojoin', - flags=bit.bor(TRLBAR, CMDWIN), + flags=bit.bor(TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_undojoin', }, { command='undolist', - flags=bit.bor(TRLBAR, CMDWIN), + flags=bit.bor(TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_undolist', }, { command='unabbreviate', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_abbreviate', }, @@ -3000,31 +3001,31 @@ module.cmds = { }, { command='unlet', - flags=bit.bor(BANG, EXTRA, NEEDARG, SBOXOK, CMDWIN), + flags=bit.bor(BANG, EXTRA, NEEDARG, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_unlet', }, { command='unlockvar', - flags=bit.bor(BANG, EXTRA, NEEDARG, SBOXOK, CMDWIN), + flags=bit.bor(BANG, EXTRA, NEEDARG, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_lockvar', }, { command='unmap', - flags=bit.bor(BANG, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(BANG, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_unmap', }, { command='unmenu', - flags=bit.bor(BANG, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(BANG, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_menu', }, { command='unsilent', - flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM, SBOXOK, CMDWIN), + flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_wrongmodifier', }, @@ -3036,19 +3037,19 @@ module.cmds = { }, { command='vglobal', - flags=bit.bor(RANGE, WHOLEFOLD, EXTRA, DFLALL, CMDWIN), + flags=bit.bor(RANGE, WHOLEFOLD, EXTRA, DFLALL, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_global', }, { command='version', - flags=bit.bor(EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_version', }, { command='verbose', - flags=bit.bor(NEEDARG, RANGE, EXTRA, NOTRLCOM, SBOXOK, CMDWIN), + flags=bit.bor(NEEDARG, RANGE, EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_wrongmodifier', }, @@ -3090,25 +3091,25 @@ module.cmds = { }, { command='vmap', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_map', }, { command='vmapclear', - flags=bit.bor(EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_mapclear', }, { command='vmenu', - flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_menu', }, { command='vnoremap', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_map', }, @@ -3120,7 +3121,7 @@ module.cmds = { }, { command='vnoremenu', - flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_menu', }, @@ -3132,19 +3133,19 @@ module.cmds = { }, { command='vunmap', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_unmap', }, { command='vunmenu', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_menu', }, { command='write', - flags=bit.bor(RANGE, WHOLEFOLD, BANG, FILE1, ARGOPT, DFLALL, TRLBAR, CMDWIN), + flags=bit.bor(RANGE, WHOLEFOLD, BANG, FILE1, ARGOPT, DFLALL, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_write', }, @@ -3156,13 +3157,13 @@ module.cmds = { }, { command='wall', - flags=bit.bor(BANG, TRLBAR, CMDWIN), + flags=bit.bor(BANG, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='do_wqall', }, { command='while', - flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN), + flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_while', }, @@ -3174,7 +3175,7 @@ module.cmds = { }, { command='wincmd', - flags=bit.bor(NEEDARG, WORD1, RANGE, CMDWIN), + flags=bit.bor(NEEDARG, WORD1, RANGE, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_wincmd', }, @@ -3186,7 +3187,7 @@ module.cmds = { }, { command='winpos', - flags=bit.bor(EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_ni', }, @@ -3216,7 +3217,7 @@ module.cmds = { }, { command='wshada', - flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN), + flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_shada', }, @@ -3228,13 +3229,13 @@ module.cmds = { }, { command='wviminfo', - flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN), + flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_shada', }, { command='xit', - flags=bit.bor(RANGE, WHOLEFOLD, BANG, FILE1, ARGOPT, DFLALL, TRLBAR, CMDWIN), + flags=bit.bor(RANGE, WHOLEFOLD, BANG, FILE1, ARGOPT, DFLALL, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_exit', }, @@ -3246,55 +3247,55 @@ module.cmds = { }, { command='xmap', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_map', }, { command='xmapclear', - flags=bit.bor(EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_mapclear', }, { command='xmenu', - flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_menu', }, { command='xnoremap', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_map', }, { command='xnoremenu', - flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_OTHER', func='ex_menu', }, { command='xunmap', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_unmap', }, { command='xunmenu', - flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN), + flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, CTRLV, CMDWIN, LOCK_OK), addr_type='ADDR_NONE', func='ex_menu', }, { command='yank', - flags=bit.bor(RANGE, WHOLEFOLD, REGSTR, COUNT, TRLBAR, CMDWIN), + flags=bit.bor(RANGE, WHOLEFOLD, REGSTR, COUNT, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_operators', }, { command='z', - flags=bit.bor(RANGE, WHOLEFOLD, BANG, EXTRA, FLAGS, TRLBAR, CMDWIN), + flags=bit.bor(RANGE, WHOLEFOLD, BANG, EXTRA, FLAGS, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_z', }, @@ -3302,56 +3303,56 @@ module.cmds = { { command='!', enum='CMD_bang', - flags=bit.bor(RANGE, WHOLEFOLD, BANG, FILES, CMDWIN), + flags=bit.bor(RANGE, WHOLEFOLD, BANG, FILES, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_bang', }, { command='#', enum='CMD_pound', - flags=bit.bor(RANGE, WHOLEFOLD, COUNT, FLAGS, TRLBAR, CMDWIN), + flags=bit.bor(RANGE, WHOLEFOLD, COUNT, FLAGS, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_print', }, { command='&', enum='CMD_and', - flags=bit.bor(RANGE, WHOLEFOLD, EXTRA, CMDWIN, MODIFY), + flags=bit.bor(RANGE, WHOLEFOLD, EXTRA, CMDWIN, LOCK_OK, MODIFY), addr_type='ADDR_LINES', func='ex_substitute', }, { command='<', enum='CMD_lshift', - flags=bit.bor(RANGE, WHOLEFOLD, COUNT, FLAGS, TRLBAR, CMDWIN, MODIFY), + flags=bit.bor(RANGE, WHOLEFOLD, COUNT, FLAGS, TRLBAR, CMDWIN, LOCK_OK, MODIFY), addr_type='ADDR_LINES', func='ex_operators', }, { command='=', enum='CMD_equal', - flags=bit.bor(RANGE, TRLBAR, DFLALL, FLAGS, CMDWIN), + flags=bit.bor(RANGE, TRLBAR, DFLALL, FLAGS, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_equal', }, { command='>', enum='CMD_rshift', - flags=bit.bor(RANGE, WHOLEFOLD, COUNT, FLAGS, TRLBAR, CMDWIN, MODIFY), + flags=bit.bor(RANGE, WHOLEFOLD, COUNT, FLAGS, TRLBAR, CMDWIN, LOCK_OK, MODIFY), addr_type='ADDR_LINES', func='ex_operators', }, { command='@', enum='CMD_at', - flags=bit.bor(RANGE, WHOLEFOLD, EXTRA, TRLBAR, CMDWIN), + flags=bit.bor(RANGE, WHOLEFOLD, EXTRA, TRLBAR, CMDWIN, LOCK_OK), addr_type='ADDR_LINES', func='ex_at', }, { command='~', enum='CMD_tilde', - flags=bit.bor(RANGE, WHOLEFOLD, EXTRA, CMDWIN, MODIFY), + flags=bit.bor(RANGE, WHOLEFOLD, EXTRA, CMDWIN, LOCK_OK, MODIFY), addr_type='ADDR_LINES', func='ex_substitute', }, diff --git a/src/nvim/ex_cmds_defs.h b/src/nvim/ex_cmds_defs.h index 6798f7693b..052926fa1f 100644 --- a/src/nvim/ex_cmds_defs.h +++ b/src/nvim/ex_cmds_defs.h @@ -57,11 +57,12 @@ #define EX_BUFUNL 0x10000 // accepts unlisted buffer too #define EX_ARGOPT 0x20000 // allow "++opt=val" argument #define EX_SBOXOK 0x40000 // allowed in the sandbox -#define EX_CMDWIN 0x80000 // allowed in cmdline window; when missing - // disallows editing another buffer when - // current buffer is locked +#define EX_CMDWIN 0x80000 // allowed in cmdline window #define EX_MODIFY 0x100000 // forbidden in non-'modifiable' buffer #define EX_FLAGS 0x200000 // allow flags after count in argument +#define EX_LOCK_OK 0x1000000 // command can be executed when textlock is + // set; when missing disallows editing another + // buffer when current buffer is locked #define EX_KEEPSCRIPT 0x4000000 // keep sctx of where command was invoked #define EX_PREVIEW 0x8000000 // allow incremental command preview #define EX_FILES (EX_XFILE | EX_EXTRA) // multiple extra files allowed diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c index c5f393e2ce..c4d2821e79 100644 --- a/src/nvim/ex_docmd.c +++ b/src/nvim/ex_docmd.c @@ -1590,9 +1590,15 @@ int execute_cmd(exarg_T *eap, CmdParseInfo *cmdinfo, bool preview) && !(curbuf->terminal && eap->cmdidx == CMD_put)) { ERROR(_(e_modifiable)); } - if (text_locked() && !(eap->argt & EX_CMDWIN) - && !IS_USER_CMDIDX(eap->cmdidx)) { - ERROR(_(get_text_locked_msg())); + if (!IS_USER_CMDIDX(eap->cmdidx)) { + if (cmdwin_type != 0 && !(eap->argt & EX_CMDWIN)) { + // Command not allowed in the command line window + ERROR(_(e_cmdwin)); + } + if (text_locked() && !(eap->argt & EX_LOCK_OK)) { + // Command not allowed when text is locked + ERROR(_(get_text_locked_msg())); + } } // Disallow editing another buffer when "curbuf->b_ro_locked" is set. // Do allow ":checktime" (it is postponed). @@ -1967,11 +1973,17 @@ static char *do_one_cmd(char **cmdlinep, int flags, cstack_T *cstack, LineGetter goto doend; } - if (text_locked() && !(ea.argt & EX_CMDWIN) - && !IS_USER_CMDIDX(ea.cmdidx)) { - // Command not allowed when editing the command line. - errormsg = _(get_text_locked_msg()); - goto doend; + if (!IS_USER_CMDIDX(ea.cmdidx)) { + if (cmdwin_type != 0 && !(ea.argt & EX_CMDWIN)) { + // Command not allowed in the command line window + errormsg = _(e_cmdwin); + goto doend; + } + if (text_locked() && !(ea.argt & EX_LOCK_OK)) { + // Command not allowed when text is locked + errormsg = _(get_text_locked_msg()); + goto doend; + } } // Disallow editing another buffer when "curbuf->b_ro_locked" is set. |