updated for version 7.3.325
Problem: A duplicated function argument gives an internal error.
Solution: Give a proper error message. (based on patch by Tyru)
diff --git a/src/eval.c b/src/eval.c
index 6e8c26f..780ed9e 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -20461,6 +20461,7 @@
exarg_T *eap;
{
char_u *theline;
+ int i;
int j;
int c;
int saved_did_emsg;
@@ -20707,6 +20708,15 @@
arg = vim_strsave(arg);
if (arg == NULL)
goto erret;
+
+ /* Check for duplicate argument name. */
+ for (i = 0; i < newargs.ga_len; ++i)
+ if (STRCMP(((char_u **)(newargs.ga_data))[i], arg) == 0)
+ {
+ EMSG2(_("E853: Duplicate argument name: %s"), arg);
+ goto erret;
+ }
+
((char_u **)(newargs.ga_data))[newargs.ga_len] = arg;
*p = c;
newargs.ga_len++;