From c6d71532dda0b3a244907bb5d1826f9340f7571d Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sat, 5 Jun 2021 18:49:38 +0200 Subject: [PATCH] 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. --- src/version.c | 2 ++ src/vim9execute.c | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) 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)); -- 2.50.1