changeset 25346:f874e7095878 v8.2.3210

patch 8.2.3210: Vim9: searchpair() sixth argument is compiled Commit: https://github.com/vim/vim/commit/dd0b287c1ec8314034a2dbb14c4267994c47520c Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jul 24 15:44:30 2021 +0200 patch 8.2.3210: Vim9: searchpair() sixth argument is compiled Problem: Vim9: searchpair() sixth argument is compiled. (Yegappan Lakshmanan) Solution: Only compile the fifth argument.
author Bram Moolenaar <Bram@vim.org>
date Sat, 24 Jul 2021 15:45:03 +0200
parents bfa962f1a16f
children 1052b30de969
files src/testdir/test_vim9_builtin.vim src/version.c src/vim9compile.c
diffstat 3 files changed, 13 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/testdir/test_vim9_builtin.vim
+++ b/src/testdir/test_vim9_builtin.vim
@@ -2569,9 +2569,17 @@ def Test_searchpair()
   unlet g:caught
 
   lines =<< trim END
-      echo searchpair("a", "b", "c", "d", "1", "f")
+      echo searchpair("a", "b", "c", "d", "f", 33)
   END
-  CheckDefAndScriptFailure2(lines, 'E1001:', 'E475:')
+  CheckDefAndScriptFailure2(lines, 'E1001: Variable not found: f', 'E475: Invalid argument: d')
+
+  lines =<< trim END
+      def TestPair()
+        echo searchpair("a", "b", "c", "d", "1", "f")
+      enddef
+      defcompile
+  END
+  CheckScriptSuccess(lines)
 
   bwipe!
 enddef
--- a/src/version.c
+++ b/src/version.c
@@ -756,6 +756,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3210,
+/**/
     3209,
 /**/
     3208,
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -3315,7 +3315,7 @@ compile_arguments(char_u **arg, cctx_T *
 	    return FAIL;
 	++*argcount;
 
-	if (is_searchpair && *argcount >= 5
+	if (is_searchpair && *argcount == 5
 		&& cctx->ctx_instr.ga_len == instr_count + 1)
 	{
 	    isn_T *isn = ((isn_T *)cctx->ctx_instr.ga_data) + instr_count;