vim-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 vim/vim#577)

2faa29f896
This commit is contained in:
Jurica Bradaric
2016-05-14 15:51:44 +02:00
parent 02fb6ee458
commit 055c9e1be6
4 changed files with 22 additions and 5 deletions

View File

@@ -88,7 +88,7 @@ return {
},
{
command='argadd',
flags=bit.bor(BANG, NEEDARG, RANGE, NOTADR, ZEROR, FILES, TRLBAR),
flags=bit.bor(BANG, RANGE, NOTADR, ZEROR, FILES, TRLBAR),
addr_type=ADDR_ARGUMENTS,
func='ex_argadd',
},

View File

@@ -1487,9 +1487,15 @@ do_arglist (
char_u *p;
int match;
/*
* Collect all file name arguments in "new_ga".
*/
// Set default argument for ":argadd" command.
if (what == AL_ADD && *str == NUL) {
if (curbuf->b_ffname == NULL) {
return FAIL;
}
str = curbuf->b_fname;
}
// Collect all file name arguments in "new_ga".
get_arglist(&new_ga, str);
if (what == AL_DEL) {

View File

@@ -521,7 +521,7 @@ static int included_patches[] = {
1164,
1163,
// 1162 NA
// 1161,
1161,
1160,
// 1159 NA
// 1158 NA

View File

@@ -84,6 +84,17 @@ describe('argument list commands', function()
execute('+2argadd y')
assert_argc({'a', 'b', 'c', 'x', 'y'})
eq(1, eval('argidx()'))
execute('%argd')
execute('edit d')
execute('arga')
eq(1, eval('len(argv())'))
eq('d', eval('get(argv(), 0, "")'))
execute('%argd')
execute('new')
execute('arga')
eq(0, eval('len(argv())'))
end)
it('test for [count]argument and [count]argdelete commands', function()