Skip to content

Commit

Permalink
patch 8.0.0439: ":%argdel" gives an error for an empty arglist
Browse files Browse the repository at this point in the history
Problem:    Using ":%argdel" while the argument list is already empty gives an
            error. (Pavol Juhas)
Solution:   Don't give an error. (closes #1546)
  • Loading branch information
brammool committed Mar 9, 2017
1 parent 056f700 commit 69a92fb
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 1 deletion.
9 changes: 8 additions & 1 deletion src/ex_cmds2.c
Expand Up @@ -2832,8 +2832,15 @@ ex_argdelete(exarg_T *eap)
if (eap->line2 > ARGCOUNT)
eap->line2 = ARGCOUNT;
n = eap->line2 - eap->line1 + 1;
if (*eap->arg != NUL || n <= 0)
if (*eap->arg != NUL)
/* Can't have both a range and an argument. */
EMSG(_(e_invarg));
else if (n <= 0)
{
/* Don't give an error for ":%argdel" if the list is empty. */
if (eap->line1 != 1 || eap->line2 != 0)
EMSG(_(e_invrange));
}
else
{
for (i = eap->line1; i <= eap->line2; ++i)
Expand Down
4 changes: 4 additions & 0 deletions src/testdir/test_arglist.vim
Expand Up @@ -6,6 +6,10 @@ func Test_argidx()
call assert_equal(2, argidx())
%argdelete
call assert_equal(0, argidx())
" doing it again doesn't result in an error
%argdelete
call assert_equal(0, argidx())
call assert_fails('2argdelete', 'E16:')

args a b c
call assert_equal(0, argidx())
Expand Down
2 changes: 2 additions & 0 deletions src/version.c
Expand Up @@ -764,6 +764,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
439,
/**/
438,
/**/
Expand Down

0 comments on commit 69a92fb

Please sign in to comment.