diff src/eval.c @ 21425:a6c316ef161a v8.2.1263

patch 8.2.1263: Vim9: comperators use 'ignorecase' in Vim9 script Commit: https://github.com/vim/vim/commit/c71f36a889897aca4ac2ad3828926e3801728336 Author: Bram Moolenaar <Bram@vim.org> Date: Tue Jul 21 21:31:00 2020 +0200 patch 8.2.1263: Vim9: comperators use 'ignorecase' in Vim9 script Problem: Vim9: comperators use 'ignorecase' in Vim9 script. Solution: Ignore 'ignorecase'. Use true and false instead of 1 and 0. (closes #6497)
author Bram Moolenaar <Bram@vim.org>
date Tue, 21 Jul 2020 21:45:06 +0200
parents 54a304e4dc57
children 66386ca8a69f
line wrap: on
line diff
--- a/src/eval.c
+++ b/src/eval.c
@@ -2413,13 +2413,11 @@ eval3(char_u **arg, typval_T *rettv, eva
     static int
 eval4(char_u **arg, typval_T *rettv, evalarg_T *evalarg)
 {
-    typval_T	var2;
     char_u	*p;
     int		getnext;
     int		i;
     exptype_T	type = EXPR_UNKNOWN;
     int		len = 2;
-    int		ic;
 
     /*
      * Get the first variable.
@@ -2472,6 +2470,10 @@ eval4(char_u **arg, typval_T *rettv, eva
      */
     if (type != EXPR_UNKNOWN)
     {
+	typval_T    var2;
+	int	    ic;
+	int	    vim9script = in_vim9script();
+
 	if (getnext)
 	    *arg = eval_next_line(evalarg);
 
@@ -2487,9 +2489,9 @@ eval4(char_u **arg, typval_T *rettv, eva
 	    ic = FALSE;
 	    ++len;
 	}
-	// nothing appended: use 'ignorecase'
+	// nothing appended: use 'ignorecase' if not in Vim script
 	else
-	    ic = p_ic;
+	    ic = vim9script ? FALSE : p_ic;
 
 	/*
 	 * Get the second variable.
@@ -2504,8 +2506,7 @@ eval4(char_u **arg, typval_T *rettv, eva
 	{
 	    int ret;
 
-	    if (in_vim9script() && check_compare_types(
-						   type, rettv, &var2) == FAIL)
+	    if (vim9script && check_compare_types(type, rettv, &var2) == FAIL)
 	    {
 		ret = FAIL;
 		clear_tv(rettv);