forked from aniani/vim
patch 8.1.1261: no error for quickfix commands with negative range
Problem: No error for quickfix commands with negative range. Solution: Add ADDR_UNSIGNED and use it for quickfix commands. Make assert_fails() show the command if the error doesn't match.
This commit is contained in:
@@ -73,8 +73,10 @@ typedef enum {
|
||||
ADDR_BUFFERS, // buffer number
|
||||
ADDR_TABS, // tab page number
|
||||
ADDR_TABS_RELATIVE, // Tab page that only relative
|
||||
ADDR_QUICKFIX_VALID, // quickfix list valid entry number
|
||||
ADDR_QUICKFIX, // quickfix list entry number
|
||||
ADDR_OTHER, // something else
|
||||
ADDR_UNSIGNED, // positive count or zero, defaults to 1
|
||||
ADDR_OTHER, // something else, use line number for '$', '%', etc.
|
||||
ADDR_NONE // no range used
|
||||
} cmd_addr_T;
|
||||
#endif
|
||||
@@ -92,7 +94,7 @@ typedef struct exarg exarg_T;
|
||||
* Not supported commands are included to avoid ambiguities.
|
||||
*/
|
||||
#ifdef EX
|
||||
# undef EX /* just in case */
|
||||
# undef EX // just in case
|
||||
#endif
|
||||
#ifdef DO_DECLARE_EXCMD
|
||||
# define EX(a, b, c, d, e) {(char_u *)b, c, (long_u)(d), e}
|
||||
@@ -242,10 +244,10 @@ EX(CMD_change, "change", ex_change,
|
||||
ADDR_LINES),
|
||||
EX(CMD_cNext, "cNext", ex_cnext,
|
||||
RANGE|COUNT|TRLBAR|BANG,
|
||||
ADDR_OTHER),
|
||||
ADDR_UNSIGNED),
|
||||
EX(CMD_cNfile, "cNfile", ex_cnext,
|
||||
RANGE|COUNT|TRLBAR|BANG,
|
||||
ADDR_OTHER),
|
||||
ADDR_UNSIGNED),
|
||||
EX(CMD_cabbrev, "cabbrev", ex_abbreviate,
|
||||
EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
|
||||
ADDR_NONE),
|
||||
@@ -253,8 +255,8 @@ EX(CMD_cabclear, "cabclear", ex_abclear,
|
||||
EXTRA|TRLBAR|CMDWIN,
|
||||
ADDR_NONE),
|
||||
EX(CMD_cabove, "cabove", ex_cbelow,
|
||||
RANGE|TRLBAR,
|
||||
ADDR_OTHER),
|
||||
RANGE|COUNT|TRLBAR,
|
||||
ADDR_UNSIGNED),
|
||||
EX(CMD_caddbuffer, "caddbuffer", ex_cbuffer,
|
||||
RANGE|WORD1|TRLBAR,
|
||||
ADDR_OTHER),
|
||||
@@ -274,14 +276,14 @@ EX(CMD_cbuffer, "cbuffer", ex_cbuffer,
|
||||
BANG|RANGE|WORD1|TRLBAR,
|
||||
ADDR_OTHER),
|
||||
EX(CMD_cbelow, "cbelow", ex_cbelow,
|
||||
RANGE|TRLBAR,
|
||||
ADDR_OTHER),
|
||||
RANGE|COUNT|TRLBAR,
|
||||
ADDR_UNSIGNED),
|
||||
EX(CMD_cbottom, "cbottom", ex_cbottom,
|
||||
TRLBAR,
|
||||
ADDR_NONE),
|
||||
EX(CMD_cc, "cc", ex_cc,
|
||||
RANGE|COUNT|TRLBAR|BANG,
|
||||
ADDR_OTHER),
|
||||
ADDR_QUICKFIX),
|
||||
EX(CMD_cclose, "cclose", ex_cclose,
|
||||
TRLBAR,
|
||||
ADDR_NONE),
|
||||
@@ -290,7 +292,7 @@ EX(CMD_cd, "cd", ex_cd,
|
||||
ADDR_NONE),
|
||||
EX(CMD_cdo, "cdo", ex_listdo,
|
||||
BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|DFLALL,
|
||||
ADDR_QUICKFIX),
|
||||
ADDR_QUICKFIX_VALID),
|
||||
EX(CMD_center, "center", ex_align,
|
||||
TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY,
|
||||
ADDR_LINES),
|
||||
@@ -302,10 +304,10 @@ EX(CMD_cfile, "cfile", ex_cfile,
|
||||
ADDR_NONE),
|
||||
EX(CMD_cfdo, "cfdo", ex_listdo,
|
||||
BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|DFLALL,
|
||||
ADDR_QUICKFIX),
|
||||
ADDR_QUICKFIX_VALID),
|
||||
EX(CMD_cfirst, "cfirst", ex_cc,
|
||||
RANGE|COUNT|TRLBAR|BANG,
|
||||
ADDR_OTHER),
|
||||
ADDR_UNSIGNED),
|
||||
EX(CMD_cgetfile, "cgetfile", ex_cfile,
|
||||
TRLBAR|FILE1,
|
||||
ADDR_NONE),
|
||||
@@ -335,7 +337,7 @@ EX(CMD_clist, "clist", qf_list,
|
||||
ADDR_NONE),
|
||||
EX(CMD_clast, "clast", ex_cc,
|
||||
RANGE|COUNT|TRLBAR|BANG,
|
||||
ADDR_OTHER),
|
||||
ADDR_UNSIGNED),
|
||||
EX(CMD_close, "close", ex_close,
|
||||
BANG|RANGE|COUNT|TRLBAR|CMDWIN,
|
||||
ADDR_WINDOWS),
|
||||
@@ -353,13 +355,13 @@ EX(CMD_cmenu, "cmenu", ex_menu,
|
||||
ADDR_OTHER),
|
||||
EX(CMD_cnext, "cnext", ex_cnext,
|
||||
RANGE|COUNT|TRLBAR|BANG,
|
||||
ADDR_OTHER),
|
||||
ADDR_UNSIGNED),
|
||||
EX(CMD_cnewer, "cnewer", qf_age,
|
||||
RANGE|COUNT|TRLBAR,
|
||||
ADDR_OTHER),
|
||||
ADDR_UNSIGNED),
|
||||
EX(CMD_cnfile, "cnfile", ex_cnext,
|
||||
RANGE|COUNT|TRLBAR|BANG,
|
||||
ADDR_OTHER),
|
||||
ADDR_UNSIGNED),
|
||||
EX(CMD_cnoremap, "cnoremap", ex_map,
|
||||
EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
|
||||
ADDR_NONE),
|
||||
@@ -374,7 +376,7 @@ EX(CMD_copy, "copy", ex_copymove,
|
||||
ADDR_LINES),
|
||||
EX(CMD_colder, "colder", qf_age,
|
||||
RANGE|COUNT|TRLBAR,
|
||||
ADDR_OTHER),
|
||||
ADDR_UNSIGNED),
|
||||
EX(CMD_colorscheme, "colorscheme", ex_colorscheme,
|
||||
WORD1|TRLBAR|CMDWIN,
|
||||
ADDR_NONE),
|
||||
@@ -398,7 +400,7 @@ EX(CMD_copen, "copen", ex_copen,
|
||||
ADDR_OTHER),
|
||||
EX(CMD_cprevious, "cprevious", ex_cnext,
|
||||
RANGE|COUNT|TRLBAR|BANG,
|
||||
ADDR_OTHER),
|
||||
ADDR_UNSIGNED),
|
||||
EX(CMD_cpfile, "cpfile", ex_cnext,
|
||||
RANGE|COUNT|TRLBAR|BANG,
|
||||
ADDR_OTHER),
|
||||
@@ -407,7 +409,7 @@ EX(CMD_cquit, "cquit", ex_cquit,
|
||||
ADDR_NONE),
|
||||
EX(CMD_crewind, "crewind", ex_cc,
|
||||
RANGE|COUNT|TRLBAR|BANG,
|
||||
ADDR_OTHER),
|
||||
ADDR_UNSIGNED),
|
||||
EX(CMD_cscope, "cscope", ex_cscope,
|
||||
EXTRA|NOTRLCOM|XFILE,
|
||||
ADDR_NONE),
|
||||
@@ -725,16 +727,16 @@ EX(CMD_list, "list", ex_print,
|
||||
ADDR_LINES),
|
||||
EX(CMD_lNext, "lNext", ex_cnext,
|
||||
RANGE|COUNT|TRLBAR|BANG,
|
||||
ADDR_OTHER),
|
||||
ADDR_UNSIGNED),
|
||||
EX(CMD_lNfile, "lNfile", ex_cnext,
|
||||
RANGE|COUNT|TRLBAR|BANG,
|
||||
ADDR_OTHER),
|
||||
ADDR_UNSIGNED),
|
||||
EX(CMD_last, "last", ex_last,
|
||||
EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR,
|
||||
ADDR_NONE),
|
||||
EX(CMD_labove, "labove", ex_cbelow,
|
||||
RANGE|TRLBAR,
|
||||
ADDR_OTHER),
|
||||
RANGE|COUNT|TRLBAR,
|
||||
ADDR_UNSIGNED),
|
||||
EX(CMD_language, "language", ex_language,
|
||||
EXTRA|TRLBAR|CMDWIN,
|
||||
ADDR_NONE),
|
||||
@@ -754,8 +756,8 @@ EX(CMD_lbuffer, "lbuffer", ex_cbuffer,
|
||||
BANG|RANGE|WORD1|TRLBAR,
|
||||
ADDR_OTHER),
|
||||
EX(CMD_lbelow, "lbelow", ex_cbelow,
|
||||
RANGE|TRLBAR,
|
||||
ADDR_OTHER),
|
||||
RANGE|COUNT|TRLBAR,
|
||||
ADDR_UNSIGNED),
|
||||
EX(CMD_lbottom, "lbottom", ex_cbottom,
|
||||
TRLBAR,
|
||||
ADDR_NONE),
|
||||
@@ -773,7 +775,7 @@ EX(CMD_lcscope, "lcscope", ex_cscope,
|
||||
ADDR_NONE),
|
||||
EX(CMD_ldo, "ldo", ex_listdo,
|
||||
BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|DFLALL,
|
||||
ADDR_QUICKFIX),
|
||||
ADDR_QUICKFIX_VALID),
|
||||
EX(CMD_left, "left", ex_align,
|
||||
TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY,
|
||||
ADDR_LINES),
|
||||
@@ -791,10 +793,10 @@ EX(CMD_lfile, "lfile", ex_cfile,
|
||||
ADDR_NONE),
|
||||
EX(CMD_lfdo, "lfdo", ex_listdo,
|
||||
BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|DFLALL,
|
||||
ADDR_QUICKFIX),
|
||||
ADDR_QUICKFIX_VALID),
|
||||
EX(CMD_lfirst, "lfirst", ex_cc,
|
||||
RANGE|COUNT|TRLBAR|BANG,
|
||||
ADDR_OTHER),
|
||||
ADDR_UNSIGNED),
|
||||
EX(CMD_lgetfile, "lgetfile", ex_cfile,
|
||||
TRLBAR|FILE1,
|
||||
ADDR_NONE),
|
||||
@@ -818,10 +820,10 @@ EX(CMD_lhistory, "lhistory", qf_history,
|
||||
ADDR_NONE),
|
||||
EX(CMD_ll, "ll", ex_cc,
|
||||
RANGE|COUNT|TRLBAR|BANG,
|
||||
ADDR_OTHER),
|
||||
ADDR_QUICKFIX),
|
||||
EX(CMD_llast, "llast", ex_cc,
|
||||
RANGE|COUNT|TRLBAR|BANG,
|
||||
ADDR_OTHER),
|
||||
ADDR_UNSIGNED),
|
||||
EX(CMD_llist, "llist", qf_list,
|
||||
BANG|EXTRA|TRLBAR|CMDWIN,
|
||||
ADDR_NONE),
|
||||
@@ -839,13 +841,13 @@ EX(CMD_lnoremap, "lnoremap", ex_map,
|
||||
ADDR_NONE),
|
||||
EX(CMD_lnext, "lnext", ex_cnext,
|
||||
RANGE|COUNT|TRLBAR|BANG,
|
||||
ADDR_OTHER),
|
||||
ADDR_UNSIGNED),
|
||||
EX(CMD_lnewer, "lnewer", qf_age,
|
||||
RANGE|COUNT|TRLBAR,
|
||||
ADDR_OTHER),
|
||||
ADDR_UNSIGNED),
|
||||
EX(CMD_lnfile, "lnfile", ex_cnext,
|
||||
RANGE|COUNT|TRLBAR|BANG,
|
||||
ADDR_OTHER),
|
||||
ADDR_UNSIGNED),
|
||||
EX(CMD_loadview, "loadview", ex_loadview,
|
||||
FILE1|TRLBAR,
|
||||
ADDR_NONE),
|
||||
@@ -860,19 +862,19 @@ EX(CMD_lockvar, "lockvar", ex_lockvar,
|
||||
ADDR_NONE),
|
||||
EX(CMD_lolder, "lolder", qf_age,
|
||||
RANGE|COUNT|TRLBAR,
|
||||
ADDR_OTHER),
|
||||
ADDR_UNSIGNED),
|
||||
EX(CMD_lopen, "lopen", ex_copen,
|
||||
RANGE|COUNT|TRLBAR,
|
||||
ADDR_OTHER),
|
||||
EX(CMD_lprevious, "lprevious", ex_cnext,
|
||||
RANGE|COUNT|TRLBAR|BANG,
|
||||
ADDR_OTHER),
|
||||
ADDR_UNSIGNED),
|
||||
EX(CMD_lpfile, "lpfile", ex_cnext,
|
||||
RANGE|COUNT|TRLBAR|BANG,
|
||||
ADDR_OTHER),
|
||||
EX(CMD_lrewind, "lrewind", ex_cc,
|
||||
RANGE|COUNT|TRLBAR|BANG,
|
||||
ADDR_OTHER),
|
||||
ADDR_UNSIGNED),
|
||||
EX(CMD_ltag, "ltag", ex_tag,
|
||||
TRLBAR|BANG|WORD1,
|
||||
ADDR_NONE),
|
||||
|
Reference in New Issue
Block a user