Skip to content
Permalink
Browse files

patch 8.0.0439: ":%argdel" gives an error for an empty arglist

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 69a92fb5aecdf2f9d5f6947790b18991b22d0e4c
Showing with 14 additions and 1 deletion.
  1. +8 −1 src/ex_cmds2.c
  2. +4 −0 src/testdir/test_arglist.vim
  3. +2 −0 src/version.c
@@ -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)
@@ -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())
@@ -764,6 +764,8 @@ static char *(features[]) =

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

0 comments on commit 69a92fb

Please sign in to comment.
You can’t perform that action at this time.