Mercurial > vim
diff src/eval.c @ 3108:8aca621c0091 v7.3.325
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)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Fri, 30 Sep 2011 16:39:48 +0200 |
parents | 2cbde6bcc623 |
children | ec901ddc84d5 |
line wrap: on
line diff
--- a/src/eval.c +++ b/src/eval.c @@ -20461,6 +20461,7 @@ ex_function(eap) exarg_T *eap; { char_u *theline; + int i; int j; int c; int saved_did_emsg; @@ -20707,6 +20708,15 @@ ex_function(eap) 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++;