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:
parent
a99b90437a
commit
72defda84e
@ -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)
|
||||
|
@ -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 \
|
||||
|
22
src/testdir/test_arglist.vim
Normal file
22
src/testdir/test_arglist.vim
Normal 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
|
@ -741,6 +741,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1119,
|
||||
/**/
|
||||
1118,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user