aboutsummaryrefslogtreecommitdiff
path: root/src/nvim
diff options
context:
space:
mode:
authorJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2020-12-31 19:56:15 -0500
committerJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2021-01-01 04:30:55 -0500
commitf3c242c13cc9aaefd29f750d211fff76e1fada68 (patch)
tree5096f59f4d61c1493d37456fb8cb890f8a281d1e /src/nvim
parentcf3a8610172feec1fb8ab2863bdad69eb1296f28 (diff)
downloadrneovim-f3c242c13cc9aaefd29f750d211fff76e1fada68.tar.gz
rneovim-f3c242c13cc9aaefd29f750d211fff76e1fada68.tar.bz2
rneovim-f3c242c13cc9aaefd29f750d211fff76e1fada68.zip
vim-patch:8.1.1241: Ex command info contains confusing information
Problem: Ex command info contains confusing information. Solution: When using the NOTADR flag use ADDR_OTHER for the address type. Cleanup code using NOTADR. Check for errors in create_cmdidxs.vim. Adjust Makefile to see the errors. https://github.com/vim/vim/commit/b731689e85b4153af7edc8f0a6b9f99d36d8b011 Use Lua's "assert()" to make an invalid command definition a compilation error. Misc changes: Remove 'RESTRICT' flag. Neovim does not support "restricted" mode since commit 7777532cebcfa9abc5ab2c7beae77f386feed3ca. TODO: Do not generate files before Lua assertions so that CMake always runs the generator script if the previous build has an invalid command definition.
Diffstat (limited to 'src/nvim')
-rw-r--r--src/nvim/ex_cmds.c42
-rw-r--r--src/nvim/ex_cmds.lua1243
-rw-r--r--src/nvim/ex_cmds_defs.h19
-rw-r--r--src/nvim/ex_docmd.c89
-rw-r--r--src/nvim/generators/gen_ex_cmds.lua16
-rw-r--r--src/nvim/testdir/test_usercommands.vim10
6 files changed, 731 insertions, 688 deletions
diff --git a/src/nvim/ex_cmds.c b/src/nvim/ex_cmds.c
index ae389a6727..9e9b50827e 100644
--- a/src/nvim/ex_cmds.c
+++ b/src/nvim/ex_cmds.c
@@ -1032,14 +1032,15 @@ void free_prev_shellcmd(void)
* Bangs in the argument are replaced with the previously entered command.
* Remember the argument.
*/
-void do_bang(int addr_count, exarg_T *eap, int forceit, int do_in, int do_out)
+void do_bang(int addr_count, exarg_T *eap, bool forceit,
+ bool do_in, bool do_out)
+ FUNC_ATTR_NONNULL_ALL
{
- char_u *arg = eap->arg; /* command */
- linenr_T line1 = eap->line1; /* start of range */
- linenr_T line2 = eap->line2; /* end of range */
- char_u *newcmd = NULL; /* the new command */
- int free_newcmd = FALSE; /* need to free() newcmd */
- int ins_prevcmd;
+ char_u *arg = eap->arg; // command
+ linenr_T line1 = eap->line1; // start of range
+ linenr_T line2 = eap->line2; // end of range
+ char_u *newcmd = NULL; // the new command
+ bool free_newcmd = false; // need to free() newcmd
char_u *t;
char_u *p;
char_u *trailarg;
@@ -1064,7 +1065,7 @@ void do_bang(int addr_count, exarg_T *eap, int forceit, int do_in, int do_out)
* Try to find an embedded bang, like in :!<cmd> ! [args]
* (:!! is indicated by the 'forceit' variable)
*/
- ins_prevcmd = forceit;
+ bool ins_prevcmd = forceit;
trailarg = arg;
do {
len = (int)STRLEN(trailarg) + 1;
@@ -1101,7 +1102,7 @@ void do_bang(int addr_count, exarg_T *eap, int forceit, int do_in, int do_out)
else {
trailarg = p;
*trailarg++ = NUL;
- ins_prevcmd = TRUE;
+ ins_prevcmd = true;
break;
}
}
@@ -1131,7 +1132,7 @@ void do_bang(int addr_count, exarg_T *eap, int forceit, int do_in, int do_out)
STRCPY(newcmd, p_shq);
STRCAT(newcmd, prevcmd);
STRCAT(newcmd, p_shq);
- free_newcmd = TRUE;
+ free_newcmd = true;
}
if (addr_count == 0) { /* :! */
/* echo the command */
@@ -1164,15 +1165,15 @@ void do_bang(int addr_count, exarg_T *eap, int forceit, int do_in, int do_out)
// do this.
// Alternatively, if on Unix and redirecting input or output, but not both,
// and the 'shelltemp' option isn't set, use pipes.
-// We use input redirection if do_in is TRUE.
-// We use output redirection if do_out is TRUE.
+// We use input redirection if do_in is true.
+// We use output redirection if do_out is true.
static void do_filter(
linenr_T line1,
linenr_T line2,
exarg_T *eap, /* for forced 'ff' and 'fenc' */
char_u *cmd,
- int do_in,
- int do_out)
+ bool do_in,
+ bool do_out)
{
char_u *itmp = NULL;
char_u *otmp = NULL;
@@ -1669,10 +1670,17 @@ void ex_update(exarg_T *eap)
*/
void ex_write(exarg_T *eap)
{
- if (eap->usefilter) /* input lines to shell command */
- do_bang(1, eap, FALSE, TRUE, FALSE);
- else
+ if (eap->cmdidx == CMD_saveas) {
+ // :saveas does not take a range, uses all lines.
+ eap->line1 = 1;
+ eap->line2 = curbuf->b_ml.ml_line_count;
+ }
+
+ if (eap->usefilter) { // input lines to shell command
+ do_bang(1, eap, false, true, false);
+ } else {
(void)do_write(eap);
+ }
}
/*
diff --git a/src/nvim/ex_cmds.lua b/src/nvim/ex_cmds.lua
index 380237c822..1c2a66a0b9 100644
--- a/src/nvim/ex_cmds.lua
+++ b/src/nvim/ex_cmds.lua
@@ -1,5 +1,7 @@
local bit = require 'bit'
+local module = {}
+
-- Description of the values below is contained in ex_cmds_defs.h file.
local RANGE = 0x001
local BANG = 0x002
@@ -15,22 +17,25 @@ local COUNT = 0x400
local NOTRLCOM = 0x800
local ZEROR = 0x1000
local USECTRLV = 0x2000
-local NOTADR = 0x4000
-local EDITCMD = 0x8000
-local BUFNAME = 0x10000
-local BUFUNL = 0x20000
-local ARGOPT = 0x40000
-local SBOXOK = 0x80000
-local CMDWIN = 0x100000
-local MODIFY = 0x200000
-local EXFLAGS = 0x400000
-local RESTRICT = 0x800000
+local EDITCMD = 0x4000
+local BUFNAME = 0x8000
+local BUFUNL = 0x10000
+local ARGOPT = 0x20000
+local SBOXOK = 0x40000
+local CMDWIN = 0x80000
+local MODIFY = 0x100000
+local EXFLAGS = 0x200000
local FILES = bit.bor(XFILE, EXTRA)
local WORD1 = bit.bor(EXTRA, NOSPC)
local FILE1 = bit.bor(FILES, NOSPC)
+module.flags = {
+ RANGE = RANGE,
+ DFLALL = DFLALL,
+}
+
-- The following table is described in ex_cmds_defs.h file.
-return {
+module.cmds = {
{
command='append',
flags=bit.bor(BANG, RANGE, ZEROR, TRLBAR, CMDWIN, MODIFY),
@@ -40,246 +45,246 @@ return {
{
command='abbreviate',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_abbreviate',
},
{
command='abclear',
flags=bit.bor(EXTRA, TRLBAR, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_abclear',
},
{
command='aboveleft',
flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_wrongmodifier',
},
{
command='all',
- flags=bit.bor(BANG, RANGE, NOTADR, COUNT, TRLBAR),
- addr_type='ADDR_LINES',
+ flags=bit.bor(BANG, RANGE, COUNT, TRLBAR),
+ addr_type='ADDR_OTHER',
func='ex_all',
},
{
command='amenu',
- flags=bit.bor(RANGE, NOTADR, ZEROR, EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type='ADDR_LINES',
+ flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
+ addr_type='ADDR_OTHER',
func='ex_menu',
},
{
command='anoremenu',
- flags=bit.bor(RANGE, NOTADR, ZEROR, EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type='ADDR_LINES',
+ flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
+ addr_type='ADDR_OTHER',
func='ex_menu',
},
{
command='args',
flags=bit.bor(BANG, FILES, EDITCMD, ARGOPT, TRLBAR),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_args',
},
{
command='argadd',
- flags=bit.bor(BANG, RANGE, NOTADR, ZEROR, FILES, TRLBAR),
+ flags=bit.bor(BANG, RANGE, ZEROR, FILES, TRLBAR),
addr_type='ADDR_ARGUMENTS',
func='ex_argadd',
},
{
command='argdelete',
- flags=bit.bor(BANG, RANGE, NOTADR, FILES, TRLBAR),
+ flags=bit.bor(BANG, RANGE, FILES, TRLBAR),
addr_type='ADDR_ARGUMENTS',
func='ex_argdelete',
},
{
command='argdo',
- flags=bit.bor(BANG, NEEDARG, EXTRA, NOTRLCOM, RANGE, NOTADR, DFLALL),
+ flags=bit.bor(BANG, NEEDARG, EXTRA, NOTRLCOM, RANGE, DFLALL),
addr_type='ADDR_ARGUMENTS',
func='ex_listdo',
},
{
command='argedit',
- flags=bit.bor(BANG, NEEDARG, RANGE, NOTADR, ZEROR, FILES, EDITCMD, ARGOPT, TRLBAR),
+ flags=bit.bor(BANG, NEEDARG, RANGE, ZEROR, FILES, EDITCMD, ARGOPT, TRLBAR),
addr_type='ADDR_ARGUMENTS',
func='ex_argedit',
},
{
command='argglobal',
flags=bit.bor(BANG, FILES, EDITCMD, ARGOPT, TRLBAR),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_args',
},
{
command='arglocal',
flags=bit.bor(BANG, FILES, EDITCMD, ARGOPT, TRLBAR),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_args',
},
{
command='argument',
- flags=bit.bor(BANG, RANGE, NOTADR, COUNT, EXTRA, EDITCMD, ARGOPT, TRLBAR),
+ flags=bit.bor(BANG, RANGE, COUNT, EXTRA, EDITCMD, ARGOPT, TRLBAR),
addr_type='ADDR_ARGUMENTS',
func='ex_argument',
},
{
command='ascii',
flags=bit.bor(TRLBAR, SBOXOK, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='do_ascii',
},
{
command='autocmd',
flags=bit.bor(BANG, EXTRA, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_autocmd',
},
{
command='augroup',
flags=bit.bor(BANG, WORD1, TRLBAR, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_autocmd',
},
{
command='aunmenu',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_menu',
},
{
command='buffer',
- flags=bit.bor(BANG, RANGE, NOTADR, BUFNAME, BUFUNL, COUNT, EXTRA, EDITCMD, TRLBAR),
+ flags=bit.bor(BANG, RANGE, BUFNAME, BUFUNL, COUNT, EXTRA, EDITCMD, TRLBAR),
addr_type='ADDR_BUFFERS',
func='ex_buffer',
},
{
command='bNext',
- flags=bit.bor(BANG, RANGE, NOTADR, COUNT, EDITCMD, TRLBAR),
- addr_type='ADDR_LINES',
+ flags=bit.bor(BANG, RANGE, COUNT, EDITCMD, TRLBAR),
+ addr_type='ADDR_OTHER',
func='ex_bprevious',
},
{
command='ball',
- flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR),
- addr_type='ADDR_LINES',
+ flags=bit.bor(RANGE, COUNT, TRLBAR),
+ addr_type='ADDR_OTHER',
func='ex_buffer_all',
},
{
command='badd',
flags=bit.bor(NEEDARG, FILE1, EDITCMD, TRLBAR, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_edit',
},
{
command='bdelete',
- flags=bit.bor(BANG, RANGE, NOTADR, BUFNAME, COUNT, EXTRA, TRLBAR),
+ flags=bit.bor(BANG, RANGE, BUFNAME, COUNT, EXTRA, TRLBAR),
addr_type='ADDR_BUFFERS',
func='ex_bunload',
},
{
command='behave',
flags=bit.bor(NEEDARG, WORD1, TRLBAR, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_behave',
},
{
command='belowright',
flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_wrongmodifier',
},
{
command='bfirst',
- flags=bit.bor(BANG, RANGE, NOTADR, EDITCMD, TRLBAR),
- addr_type='ADDR_LINES',
+ flags=bit.bor(BANG, RANGE, EDITCMD, TRLBAR),
+ addr_type='ADDR_OTHER',
func='ex_brewind',
},
{
command='blast',
- flags=bit.bor(BANG, RANGE, NOTADR, EDITCMD, TRLBAR),
- addr_type='ADDR_LINES',
+ flags=bit.bor(BANG, RANGE, EDITCMD, TRLBAR),
+ addr_type='ADDR_OTHER',
func='ex_blast',
},
{
command='bmodified',
- flags=bit.bor(BANG, RANGE, NOTADR, COUNT, EDITCMD, TRLBAR),
- addr_type='ADDR_LINES',
+ flags=bit.bor(BANG, RANGE, COUNT, EDITCMD, TRLBAR),
+ addr_type='ADDR_OTHER',
func='ex_bmodified',
},
{
command='bnext',
- flags=bit.bor(BANG, RANGE, NOTADR, COUNT, EDITCMD, TRLBAR),
- addr_type='ADDR_LINES',
+ flags=bit.bor(BANG, RANGE, COUNT, EDITCMD, TRLBAR),
+ addr_type='ADDR_OTHER',
func='ex_bnext',
},
{
command='botright',
flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_wrongmodifier',
},
{
command='bprevious',
- flags=bit.bor(BANG, RANGE, NOTADR, COUNT, EDITCMD, TRLBAR),
- addr_type='ADDR_LINES',
+ flags=bit.bor(BANG, RANGE, COUNT, EDITCMD, TRLBAR),
+ addr_type='ADDR_OTHER',
func='ex_bprevious',
},
{
command='brewind',
- flags=bit.bor(BANG, RANGE, NOTADR, EDITCMD, TRLBAR),
- addr_type='ADDR_LINES',
+ flags=bit.bor(BANG, RANGE, EDITCMD, TRLBAR),
+ addr_type='ADDR_OTHER',
func='ex_brewind',
},
{
command='break',
flags=bit.bor(TRLBAR, SBOXOK, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_break',
},
{
command='breakadd',
flags=bit.bor(EXTRA, TRLBAR, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_breakadd',
},
{
command='breakdel',
flags=bit.bor(EXTRA, TRLBAR, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_breakdel',
},
{
command='breaklist',
flags=bit.bor(EXTRA, TRLBAR, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_breaklist',
},
{
command='browse',
flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_wrongmodifier',
},
{
command='buffers',
flags=bit.bor(BANG, EXTRA, TRLBAR, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='buflist_list',
},
{
command='bufdo',
- flags=bit.bor(BANG, NEEDARG, EXTRA, NOTRLCOM, RANGE, NOTADR, DFLALL),
+ flags=bit.bor(BANG, NEEDARG, EXTRA, NOTRLCOM, RANGE, DFLALL),
addr_type='ADDR_BUFFERS',
func='ex_listdo',
},
{
command='bunload',
- flags=bit.bor(BANG, RANGE, NOTADR, BUFNAME, COUNT, EXTRA, TRLBAR),
+ flags=bit.bor(BANG, RANGE, BUFNAME, COUNT, EXTRA, TRLBAR),
addr_type='ADDR_LOADED_BUFFERS',
func='ex_bunload',
},
{
command='bwipeout',
- flags=bit.bor(BANG, RANGE, NOTADR, BUFNAME, BUFUNL, COUNT, EXTRA, TRLBAR),
+ flags=bit.bor(BANG, RANGE, BUFNAME, BUFUNL, COUNT, EXTRA, TRLBAR),
addr_type='ADDR_BUFFERS',
func='ex_bunload',
},
@@ -291,50 +296,50 @@ return {
},
{
command='cNext',
- flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR, BANG),
- addr_type='ADDR_LINES',
+ flags=bit.bor(RANGE, COUNT, TRLBAR, BANG),
+ addr_type='ADDR_OTHER',
func='ex_cnext',
},
{
command='cNfile',
- flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR, BANG),
- addr_type='ADDR_LINES',
+ flags=bit.bor(RANGE, COUNT, TRLBAR, BANG),
+ addr_type='ADDR_OTHER',
func='ex_cnext',
},
{
command='cabbrev',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_abbreviate',
},
{
command='cabclear',
flags=bit.bor(EXTRA, TRLBAR, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_abclear',
},
{
command='cabove',
flags=bit.bor(RANGE, TRLBAR),
- addr_type='ADDR_OTHER ',
+ addr_type='ADDR_OTHER',
func='ex_cbelow',
},
{
command='caddbuffer',
- flags=bit.bor(RANGE, NOTADR, WORD1, TRLBAR),
- addr_type='ADDR_LINES',
+ flags=bit.bor(RANGE, WORD1, TRLBAR),
+ addr_type='ADDR_OTHER',
func='ex_cbuffer',
},
{
command='caddexpr',
flags=bit.bor(NEEDARG, WORD1, NOTRLCOM),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_cexpr',
},
{
command='caddfile',
flags=bit.bor(TRLBAR, FILE1),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_cfile',
},
{
@@ -346,48 +351,48 @@ return {
{
command='catch',
flags=bit.bor(EXTRA, SBOXOK, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_catch',
},
{
command='cbuffer',
- flags=bit.bor(BANG, RANGE, NOTADR, WORD1, TRLBAR),
- addr_type='ADDR_LINES',
+ flags=bit.bor(BANG, RANGE, WORD1, TRLBAR),
+ addr_type='ADDR_OTHER',
func='ex_cbuffer',
},
{
command='cbelow',
flags=bit.bor(RANGE, TRLBAR),
- addr_type='ADDR_OTHER ',
+ addr_type='ADDR_OTHER',
func='ex_cbelow',
},
{
command='cbottom',
flags=bit.bor(TRLBAR),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_cbottom',
},
{
command='cc',
- flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR, BANG),
- addr_type='ADDR_LINES',
+ flags=bit.bor(RANGE, COUNT, TRLBAR, BANG),
+ addr_type='ADDR_OTHER',
func='ex_cc',
},
{
command='cclose',
- flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR),
- addr_type='ADDR_LINES',
+ flags=bit.bor(TRLBAR),
+ addr_type='ADDR_NONE',
func='ex_cclose',
},
{
command='cd',
flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_cd',
},
{
command='cdo',
- flags=bit.bor(BANG, NEEDARG, EXTRA, NOTRLCOM, RANGE, NOTADR, DFLALL),
+ flags=bit.bor(BANG, NEEDARG, EXTRA, NOTRLCOM, RANGE, DFLALL),
addr_type='ADDR_QUICKFIX',
func='ex_listdo',
},
@@ -400,159 +405,159 @@ return {
{
command='cexpr',
flags=bit.bor(NEEDARG, WORD1, NOTRLCOM, BANG),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_cexpr',
},
{
command='cfile',
flags=bit.bor(TRLBAR, FILE1, BANG),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_cfile',
},
-- Even though 'cfdo' is alphabetically lower than 'cfile', it is after
-- 'cfile' in this cmd list to support the existing ":cf" abbreviation.
{
command='cfdo',
- flags=bit.bor(BANG, NEEDARG, EXTRA, NOTRLCOM, RANGE, NOTADR, DFLALL),
+ flags=bit.bor(BANG, NEEDARG, EXTRA, NOTRLCOM, RANGE, DFLALL),
addr_type='ADDR_QUICKFIX',
func='ex_listdo',
},
{
command='cfirst',
- flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR, BANG),
- addr_type='ADDR_LINES',
+ flags=bit.bor(RANGE, COUNT, TRLBAR, BANG),
+ addr_type='ADDR_OTHER',
func='ex_cc',
},
{
command='cgetfile',
flags=bit.bor(TRLBAR, FILE1),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_cfile',
},
{
command='cgetbuffer',
- flags=bit.bor(RANGE, NOTADR, WORD1, TRLBAR),
- addr_type='ADDR_LINES',
+ flags=bit.bor(RANGE, WORD1, TRLBAR),
+ addr_type='ADDR_OTHER',
func='ex_cbuffer',
},
{
command='cgetexpr',
flags=bit.bor(NEEDARG, WORD1, NOTRLCOM),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_cexpr',
},
{
command='chdir',
flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_cd',
},
{
command='changes',
flags=bit.bor(TRLBAR, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_changes',
},
{
command='checkhealth',
flags=bit.bor(EXTRA, TRLBAR),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_checkhealth',
},
{
command='checkpath',
flags=bit.bor(TRLBAR, BANG, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_checkpath',
},
{
command='checktime',
- flags=bit.bor(RANGE, NOTADR, BUFNAME, COUNT, EXTRA, TRLBAR),
- addr_type='ADDR_LINES',
+ flags=bit.bor(RANGE, BUFNAME, COUNT, EXTRA, TRLBAR),
+ addr_type='ADDR_OTHER',
func='ex_checktime',
},
{
command='chistory',
flags=bit.bor(TRLBAR),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='qf_history',
},
{
command='clist',
flags=bit.bor(BANG, EXTRA, TRLBAR, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='qf_list',
},
{
command='clast',
- flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR, BANG),
- addr_type='ADDR_LINES',
+ flags=bit.bor(RANGE, COUNT, TRLBAR, BANG),
+ addr_type='ADDR_OTHER',
func='ex_cc',
},
{
command='close',
- flags=bit.bor(BANG, RANGE, NOTADR, COUNT, TRLBAR, CMDWIN),
+ flags=bit.bor(BANG, RANGE, COUNT, TRLBAR, CMDWIN),
addr_type='ADDR_WINDOWS',
func='ex_close',
},
{
command='clearjumps',
flags=bit.bor(TRLBAR, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_clearjumps',
},
{
command='cmap',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_map',
},
{
command='cmapclear',
flags=bit.bor(EXTRA, TRLBAR, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_mapclear',
},
{
command='cmenu',
- flags=bit.bor(RANGE, NOTADR, ZEROR, EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type='ADDR_LINES',
+ flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
+ addr_type='ADDR_OTHER',
func='ex_menu',
},
{
command='cnext',
- flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR, BANG),
- addr_type='ADDR_LINES',
+ flags=bit.bor(RANGE, COUNT, TRLBAR, BANG),
+ addr_type='ADDR_OTHER',
func='ex_cnext',
},
{
command='cnewer',
- flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR),
- addr_type='ADDR_LINES',
+ flags=bit.bor(RANGE, COUNT, TRLBAR),
+ addr_type='ADDR_OTHER',
func='qf_age',
},
{
command='cnfile',
- flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR, BANG),
- addr_type='ADDR_LINES',
+ flags=bit.bor(RANGE, COUNT, TRLBAR, BANG),
+ addr_type='ADDR_OTHER',
func='ex_cnext',
},
{
command='cnoremap',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_map',
},
{
command='cnoreabbrev',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_abbreviate',
},
{
command='cnoremenu',
- flags=bit.bor(RANGE, NOTADR, ZEROR, EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type='ADDR_LINES',
+ flags=bit.bor(RANGE, ZEROR, EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
+ addr_type='ADDR_OTHER',
func='ex_menu',
},
{
@@ -563,116 +568,116 @@ return {
},
{
command='colder',
- flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR),
- addr_type='ADDR_LINES',
+ flags=bit.bor(RANGE, COUNT, TRLBAR),
+ addr_type='ADDR_OTHER',
func='qf_age',
},
{
command='colorscheme',
flags=bit.bor(WORD1, TRLBAR, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_colorscheme',
},
{
command='command',
flags=bit.bor(EXTRA, BANG, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_command',
},
{
command='comclear',
flags=bit.bor(TRLBAR, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_comclear',
},
{
command='compiler',
flags=bit.bor(BANG, TRLBAR, WORD1, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_compiler',
},
{
command='continue',
flags=bit.bor(TRLBAR, SBOXOK, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_continue',
},
{
command='confirm',
flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_wrongmodifier',
},
{
command='const',
flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_const',
},
{
command='copen',
- flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR),
- addr_type='ADDR_LINES',
+ flags=bit.bor(RANGE, COUNT, TRLBAR),
+ addr_type='ADDR_OTHER',
func='ex_copen',
},
{
command='cprevious',
- flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR, BANG),
- addr_type='ADDR_LINES',
+ flags=bit.bor(RANGE, COUNT, TRLBAR, BANG),
+ addr_type='ADDR_OTHER',
func='ex_cnext',
},
{
command='cpfile',
- flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR, BANG),
- addr_type='ADDR_LINES',
+ flags=bit.bor(RANGE, COUNT, TRLBAR, BANG),
+ addr_type='ADDR_OTHER',
func='ex_cnext',
},
{
command='cquit',
- flags=bit.bor(RANGE, NOTADR, COUNT, ZEROR, TRLBAR, BANG),
- addr_type='ADDR_LINES',
+ flags=bit.bor(RANGE, COUNT, ZEROR, TRLBAR, BANG),
+ addr_type='ADDR_OTHER',
func='ex_cquit',
},
{
command='crewind',
- flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR, BANG),
- addr_type='ADDR_LINES',
+ flags=bit.bor(RANGE, COUNT, TRLBAR, BANG),
+ addr_type='ADDR_OTHER',
func='ex_cc',
},
{
command='cscope',
flags=bit.bor(EXTRA, NOTRLCOM, XFILE),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_cscope',
},
{
command='cstag',
flags=bit.bor(BANG, TRLBAR, WORD1),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_cstag',
},
{
command='cunmap',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_unmap',
},
{
command='cunabbrev',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_abbreviate',
},
{
command='cunmenu',
flags=bit.bor(EXTRA, TRLBAR, NOTRLCOM, USECTRLV, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_menu',
},
{
command='cwindow',
- flags=bit.bor(RANGE, NOTADR, COUNT, TRLBAR),
- addr_type='ADDR_LINES',
+ flags=bit.bor(RANGE, COUNT, TRLBAR),
+ addr_type='ADDR_OTHER',
func='ex_cwindow',
},
{
@@ -684,43 +689,43 @@ return {
{
command='delmarks',
flags=bit.bor(BANG, EXTRA, TRLBAR, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_delmarks',
},
{
command='debug',
flags=bit.bor(NEEDARG, EXTRA, NOTRLCOM, SBOXOK, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_debug',
},
{
command='debuggreedy',
- flags=bit.bor(RANGE, NOTADR, ZEROR, TRLBAR, CMDWIN),
- addr_type='ADDR_LINES',
+ flags=bit.bor(RANGE, ZEROR, TRLBAR, CMDWIN),
+ addr_type='ADDR_OTHER',
func='ex_debuggreedy',
},
{
command='delcommand',
flags=bit.bor(BANG, NEEDARG, WORD1, TRLBAR, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_delcommand',
},
{
command='delfunction',
flags=bit.bor(BANG, NEEDARG, WORD1, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_delfunction',
},
{
command='display',
flags=bit.bor(EXTRA, NOTRLCOM, TRLBAR, SBOXOK, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_display',
},
{
command='diffupdate',
flags=bit.bor(BANG, TRLBAR),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_diffupdate',
},
{
@@ -732,13 +737,13 @@ return {
{
command='diffoff',
flags=bit.bor(BANG, TRLBAR),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_diffoff',
},
{
command='diffpatch',
flags=bit.bor(EXTRA, FILE1, TRLBAR, MODIFY),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_diffpatch',
},
{
@@ -750,19 +755,19 @@ return {
{
command='diffsplit',
flags=bit.bor(EXTRA, FILE1, TRLBAR),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_diffsplit',
},
{
command='diffthis',
flags=bit.bor(TRLBAR),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_diffthis',
},
{
command='digraphs',
flags=bit.bor(BANG, EXTRA, TRLBAR, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_digraphs',
},
{
@@ -780,19 +785,19 @@ return {
{
command='doautocmd',
flags=bit.bor(EXTRA, TRLBAR, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_doautocmd',
},
{
command='doautoall',
flags=bit.bor(EXTRA, TRLBAR, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_doautoall',
},
{
command='drop',
flags=bit.bor(FILES, EDITCMD, NEEDARG, ARGOPT, TRLBAR),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_drop',
},
{
@@ -810,109 +815,109 @@ return {
{
command='edit',
flags=bit.bor(BANG, FILE1, EDITCMD, ARGOPT, TRLBAR),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_edit',
},
{
command='earlier',
flags=bit.bor(TRLBAR, EXTRA, NOSPC, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_later',
},
{
command='echo',
flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_echo',
},
{
command='echoerr',
flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_execute',
},
{
command='echohl',
flags=bit.bor(EXTRA, TRLBAR, SBOXOK, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_echohl',
},
{
command='echomsg',
flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_execute',
},
{
command='echon',
flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_echo',
},
{
command='else',
flags=bit.bor(TRLBAR, SBOXOK, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_else',
},
{
command='elseif',
flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_else',
},
{
command='emenu',
- flags=bit.bor(NEEDARG, EXTRA, TRLBAR, NOTRLCOM, RANGE, NOTADR, CMDWIN),
- addr_type='ADDR_LINES',
+ flags=bit.bor(NEEDARG, EXTRA, TRLBAR, NOTRLCOM, RANGE, CMDWIN),
+ addr_type='ADDR_OTHER',
func='ex_emenu',
},
{
command='endif',
flags=bit.bor(TRLBAR, SBOXOK, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_endif',
},
{
command='endfunction',
flags=bit.bor(TRLBAR, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_endfunction',
},
{
command='endfor',
flags=bit.bor(TRLBAR, SBOXOK, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_endwhile',
},
{
command='endtry',
flags=bit.bor(TRLBAR, SBOXOK, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func='ex_endtry',
},
{
command='endwhile',
flags=bit.bor(TRLBAR, SBOXOK, CMDWIN),
- addr_type='ADDR_LINES',
+ addr_type='ADDR_NONE',
func