diff src/ex_cmds2.c @ 11676:f87c43fca41d v8.0.0721

patch 8.0.0721: :argedit can only have one argument commit https://github.com/vim/vim/commit/90305c66a8637ea43a6509c7ab597734dd218365 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jul 16 15:31:17 2017 +0200 patch 8.0.0721: :argedit can only have one argument Problem: :argedit can only have one argument. Solution: Allow for multiple arguments. (Christian Brabandt)
author Christian Brabandt <cb@256bit.org>
date Sun, 16 Jul 2017 15:45:03 +0200
parents 50f2a4ad1cfa
children 976b480ced9a
line wrap: on
line diff
--- a/src/ex_cmds2.c
+++ b/src/ex_cmds2.c
@@ -2801,34 +2801,20 @@ ex_next(exarg_T *eap)
     void
 ex_argedit(exarg_T *eap)
 {
-    int		fnum;
-    int		i;
-    char_u	*s;
-
-    /* Add the argument to the buffer list and get the buffer number. */
-    fnum = buflist_add(eap->arg, BLN_LISTED);
-
-    /* Check if this argument is already in the argument list. */
-    for (i = 0; i < ARGCOUNT; ++i)
-	if (ARGLIST[i].ae_fnum == fnum)
-	    break;
-    if (i == ARGCOUNT)
-    {
-	/* Can't find it, add it to the argument list. */
-	s = vim_strsave(eap->arg);
-	if (s == NULL)
-	    return;
-	i = alist_add_list(1, &s,
-	       eap->addr_count > 0 ? (int)eap->line2 : curwin->w_arg_idx + 1);
-	if (i < 0)
-	    return;
-	curwin->w_arg_idx = i;
-    }
-
-    alist_check_arg_idx();
-
+    int i = eap->addr_count ? (int)eap->line2 : curwin->w_arg_idx + 1;
+
+    if (do_arglist(eap->arg, AL_ADD, i) == FAIL)
+	return;
+#ifdef FEAT_TITLE
+    maketitle();
+#endif
+
+    if (curwin->w_arg_idx == 0 && (curbuf->b_ml.ml_flags & ML_EMPTY)
+	    && curbuf->b_ffname == NULL)
+	i = 0;
     /* Edit the argument. */
-    do_argfile(eap, i);
+    if (i < ARGCOUNT)
+	do_argfile(eap, i);
 }
 
 /*