aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJurica Bradaric <jbradaric@gmail.com>2016-05-14 15:51:44 +0200
committerJurica Bradaric <jbradaric@gmail.com>2016-05-14 15:57:50 +0200
commit055c9e1be6d73fa4a4f84299dbdbcaf8e2db140a (patch)
tree348886503a9e7cdb2411d3a30ea0788b39ef47d3
parent02fb6ee45843ac0b759f5bb15bbb3f3f418f0e74 (diff)
downloadrneovim-055c9e1be6d73fa4a4f84299dbdbcaf8e2db140a.tar.gz
rneovim-055c9e1be6d73fa4a4f84299dbdbcaf8e2db140a.tar.bz2
rneovim-055c9e1be6d73fa4a4f84299dbdbcaf8e2db140a.zip
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) https://github.com/vim/vim/commit/2faa29f896252073b53f387406109e331fbbe5f8
-rw-r--r--src/nvim/ex_cmds.lua2
-rw-r--r--src/nvim/ex_cmds2.c12
-rw-r--r--src/nvim/version.c2
-rw-r--r--test/functional/legacy/arglist_spec.lua11
4 files changed, 22 insertions, 5 deletions
diff --git a/src/nvim/ex_cmds.lua b/src/nvim/ex_cmds.lua
index 04fd88cc8d..6c58879d58 100644
--- a/src/nvim/ex_cmds.lua
+++ b/src/nvim/ex_cmds.lua
@@ -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',
},
diff --git a/src/nvim/ex_cmds2.c b/src/nvim/ex_cmds2.c
index b6d0ef78cf..fd299eaa8a 100644
--- a/src/nvim/ex_cmds2.c
+++ b/src/nvim/ex_cmds2.c
@@ -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) {
diff --git a/src/nvim/version.c b/src/nvim/version.c
index 09f6ef6301..da90bc588f 100644
--- a/src/nvim/version.c
+++ b/src/nvim/version.c
@@ -521,7 +521,7 @@ static int included_patches[] = {
1164,
1163,
// 1162 NA
- // 1161,
+ 1161,
1160,
// 1159 NA
// 1158 NA
diff --git a/test/functional/legacy/arglist_spec.lua b/test/functional/legacy/arglist_spec.lua
index 60485e8902..d2e3e511d2 100644
--- a/test/functional/legacy/arglist_spec.lua
+++ b/test/functional/legacy/arglist_spec.lua
@@ -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()