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.
diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak
index 81e196c..69fd936 100644
--- a/src/testdir/Make_all.mak
+++ b/src/testdir/Make_all.mak
@@ -171,7 +171,8 @@
 
 # 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 \
diff --git a/src/testdir/test_arglist.vim b/src/testdir/test_arglist.vim
new file mode 100644
index 0000000..3f72f0f
--- /dev/null
+++ b/src/testdir/test_arglist.vim
@@ -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