]> granicus.if.org Git - vim/commitdiff
patch 8.2.2943: Vim9: check for argument count ignores default values v8.2.2943
authorBram Moolenaar <Bram@vim.org>
Sat, 5 Jun 2021 16:49:38 +0000 (18:49 +0200)
committerBram Moolenaar <Bram@vim.org>
Sat, 5 Jun 2021 16:49:38 +0000 (18:49 +0200)
Problem:    Vim9: check for argument count ignores default values.
Solution:   Take default argument values into account.

src/version.c
src/vim9execute.c

index ce8273f483f10497cf700191f754c407dcf99496..87bc2a09ed87ca9e566c818001af9f22f3478e8b 100644 (file)
@@ -750,6 +750,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    2943,
 /**/
     2942,
 /**/
index c2a7de50d6efeed0e803c5134312c43c09720ae0..455a20507016cd606e7d2c34db828f8d585aa0ff 100644 (file)
@@ -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));