Skip to content

Commit 2faa29f

Browse files
committed
patch 7.4.1161
Problem: ":argadd" without argument is supposed to add the current buffer name to the arglist. Solution: Make it work as documented. (Coot, closes #577)
1 parent bd4593f commit 2faa29f

4 files changed

Lines changed: 24 additions & 1 deletion

File tree

src/ex_cmds.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ EX(CMD_args, "args", ex_args,
128128
BANG|FILES|EDITCMD|ARGOPT|TRLBAR,
129129
ADDR_LINES),
130130
EX(CMD_argadd, "argadd", ex_argadd,
131-
BANG|NEEDARG|RANGE|NOTADR|ZEROR|FILES|TRLBAR,
131+
BANG|RANGE|NOTADR|ZEROR|FILES|TRLBAR,
132132
ADDR_ARGUMENTS),
133133
EX(CMD_argdelete, "argdelete", ex_argdelete,
134134
BANG|RANGE|NOTADR|FILES|TRLBAR,

src/ex_cmds2.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2089,6 +2089,16 @@ do_arglist(str, what, after)
20892089
int match;
20902090
#endif
20912091

2092+
/*
2093+
* Set default argument for ":argadd" command.
2094+
*/
2095+
if (what == AL_ADD && *str == NUL)
2096+
{
2097+
if (curbuf->b_ffname == NULL)
2098+
return FAIL;
2099+
str = curbuf->b_fname;
2100+
}
2101+
20922102
/*
20932103
* Collect all file name arguments in "new_ga".
20942104
*/

src/testdir/test_arglist.vim

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,17 @@ func Test_argadd()
5757
+2argadd y
5858
call Assert_argc(['a', 'b', 'c', 'x', 'y'])
5959
call assert_equal(1, argidx())
60+
61+
%argd
62+
edit d
63+
arga
64+
call assert_equal(len(argv()), 1)
65+
call assert_equal(get(argv(), 0, ''), 'd')
66+
67+
%argd
68+
new
69+
arga
70+
call assert_equal(len(argv()), 0)
6071
endfunc
6172

6273
func Init_abc()

src/version.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -741,6 +741,8 @@ static char *(features[]) =
741741

742742
static int included_patches[] =
743743
{ /* Add new patch number below this line */
744+
/**/
745+
1161,
744746
/**/
745747
1160,
746748
/**/

0 commit comments

Comments
 (0)