diff options
author | Bram Moolenaar <Bram@vim.org> | 2011-09-30 16:39:48 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2011-09-30 16:39:48 +0200 |
commit | acd6a049f68d0a69a96240c2d928a7ddda9c4c69 (patch) | |
tree | c20e9c2145a5de909c0bf5ea50868b38e3fbda53 /src/eval.c | |
parent | a627c96182e4f442909c3450d359aa4f59946fde (diff) | |
download | vim-acd6a049f68d0a69a96240c2d928a7ddda9c4c69.zip |
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)
Diffstat (limited to 'src/eval.c')
-rw-r--r-- | src/eval.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/eval.c b/src/eval.c index 6e8c26f4a..780ed9eca 100644 --- 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++; |