mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:8.0.0721: :argedit can only have one argument
Problem: :argedit can only have one argument.
Solution: Allow for multiple arguments. (Christian Brabandt)
90305c66a8
This commit is contained in:
parent
6df80e8762
commit
bbdb074aec
@ -562,16 +562,16 @@ list of the current window.
|
||||
buffer.
|
||||
Also see |++opt| and |+cmd|.
|
||||
|
||||
:[count]arge[dit][!] [++opt] [+cmd] {name} *:arge* *:argedit*
|
||||
Add {name} to the argument list and edit it.
|
||||
:[count]arge[dit][!] [++opt] [+cmd] {name} .. *:arge* *:argedit*
|
||||
Add {name}s to the argument list and edit it.
|
||||
When {name} already exists in the argument list, this
|
||||
entry is edited.
|
||||
This is like using |:argadd| and then |:edit|.
|
||||
Note that only one file name is allowed, and spaces
|
||||
inside the file name are allowed, like with |:edit|.
|
||||
Spaces in filenames have to be escaped with "\".
|
||||
[count] is used like with |:argadd|.
|
||||
[!] is required if the current file cannot be
|
||||
|abandon|ed.
|
||||
If the current file cannot be |abandon|ed {name}s will
|
||||
still be added to the argument list, but won't be
|
||||
edited. No check for duplicates is done.
|
||||
Also see |++opt| and |+cmd|.
|
||||
|
||||
:[count]arga[dd] {name} .. *:arga* *:argadd* *E479*
|
||||
|
@ -108,7 +108,7 @@ return {
|
||||
},
|
||||
{
|
||||
command='argedit',
|
||||
flags=bit.bor(BANG, NEEDARG, RANGE, NOTADR, ZEROR, FILE1, EDITCMD, ARGOPT, TRLBAR),
|
||||
flags=bit.bor(BANG, NEEDARG, RANGE, NOTADR, ZEROR, FILES, EDITCMD, ARGOPT, TRLBAR),
|
||||
addr_type=ADDR_ARGUMENTS,
|
||||
func='ex_argedit',
|
||||
},
|
||||
|
@ -1915,32 +1915,22 @@ void ex_next(exarg_T *eap)
|
||||
/// ":argedit"
|
||||
void ex_argedit(exarg_T *eap)
|
||||
{
|
||||
int fnum;
|
||||
int i;
|
||||
char_u *s;
|
||||
int i = eap->addr_count ? (int)eap->line2 : curwin->w_arg_idx + 1;
|
||||
|
||||
// Add the argument to the buffer list and get the buffer number.
|
||||
fnum = buflist_add(eap->arg, BLN_LISTED);
|
||||
|
||||
// Check if this argument is already in the argument list.
|
||||
for (i = 0; i < ARGCOUNT; i++) {
|
||||
if (ARGLIST[i].ae_fnum == fnum) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (i == ARGCOUNT) {
|
||||
// Can't find it, add it to the argument list.
|
||||
s = vim_strsave(eap->arg);
|
||||
int after = eap->addr_count > 0 ? (int)eap->line2 : curwin->w_arg_idx + 1;
|
||||
i = alist_add_list(1, &s, after);
|
||||
curwin->w_arg_idx = i;
|
||||
if (do_arglist(eap->arg, AL_ADD, i) == FAIL) {
|
||||
return;
|
||||
}
|
||||
maketitle();
|
||||
|
||||
alist_check_arg_idx();
|
||||
|
||||
if (curwin->w_arg_idx == 0 && (curbuf->b_ml.ml_flags & ML_EMPTY)
|
||||
&& curbuf->b_ffname == NULL) {
|
||||
i = 0;
|
||||
}
|
||||
// Edit the argument.
|
||||
if (i < ARGCOUNT) {
|
||||
do_argfile(eap, i);
|
||||
}
|
||||
}
|
||||
|
||||
/// ":argadd"
|
||||
void ex_argadd(exarg_T *eap)
|
||||
|
Loading…
Reference in New Issue
Block a user