1
0
forked from aniani/vim

patch 7.4.1119

Problem:    argidx() has a wrong value after ":%argdelete". (Yegappan
            Lakshmanan)
Solution:   Correct the value of w_arg_idx.  Add a test.
This commit is contained in:
Bram Moolenaar 2016-01-17 18:04:33 +01:00
parent a99b90437a
commit 72defda84e
4 changed files with 30 additions and 1 deletions

View File

@ -2562,6 +2562,10 @@ ex_argdelete(eap)
curwin->w_arg_idx -= n;
else if (curwin->w_arg_idx > eap->line1)
curwin->w_arg_idx = eap->line1;
if (ARGCOUNT == 0)
curwin->w_arg_idx = 0;
else if (curwin->w_arg_idx >= ARGCOUNT)
curwin->w_arg_idx = ARGCOUNT - 1;
}
}
else if (*eap->arg == NUL)

View File

@ -171,7 +171,8 @@ SCRIPTS_GUI = test16.out
# Tests using runtest.vim.vim.
# Keep test_alot.res as the last one, sort the others.
NEW_TESTS = test_assert.res \
NEW_TESTS = test_arglist.res \
test_assert.res \
test_cdo.res \
test_hardcopy.res \
test_increment.res \

View File

@ -0,0 +1,22 @@
" Test argument list commands
func Test_argidx()
args a b c
last
call assert_equal(2, argidx())
%argdelete
call assert_equal(0, argidx())
args a b c
call assert_equal(0, argidx())
next
call assert_equal(1, argidx())
next
call assert_equal(2, argidx())
1argdelete
call assert_equal(1, argidx())
1argdelete
call assert_equal(0, argidx())
1argdelete
call assert_equal(0, argidx())
endfunc

View File

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