From: Bram Moolenaar Date: Sat, 5 Jun 2021 16:49:38 +0000 (+0200) Subject: patch 8.2.2943: Vim9: check for argument count ignores default values X-Git-Tag: v8.2.2943 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c6d71532dda0b3a244907bb5d1826f9340f7571d;p=vim patch 8.2.2943: Vim9: check for argument count ignores default values Problem: Vim9: check for argument count ignores default values. Solution: Take default argument values into account. --- diff --git a/src/version.c b/src/version.c index ce8273f48..87bc2a09e 100644 --- a/src/version.c +++ b/src/version.c @@ -750,6 +750,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2943, /**/ 2942, /**/ diff --git a/src/vim9execute.c b/src/vim9execute.c index c2a7de50d..455a20507 100644 --- a/src/vim9execute.c +++ b/src/vim9execute.c @@ -4234,7 +4234,8 @@ call_def_function( semsg(_(e_nr_arguments_too_many), idx); goto failed_early; } - else if (idx < 0) + idx = argc - ufunc->uf_args.ga_len + ufunc->uf_def_args.ga_len; + if (idx < 0) { if (idx == -1) emsg(_(e_one_argument_too_few));