0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

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)
This commit is contained in:
Bram Moolenaar
2017-03-09 15:58:30 +01:00
parent 056f700031
commit 69a92fb5ae
3 changed files with 14 additions and 1 deletions

View File

@@ -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)

View File

@@ -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())

View File

@@ -764,6 +764,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
439,
/**/
438,
/**/