patch 7.4.2076
Problem: Syntax error when dict has '>' key.
Solution: Check for endchar. (Ken Takata)
diff --git a/src/testdir/test_lambda.vim b/src/testdir/test_lambda.vim
index 9e9979b..cbd4add 100644
--- a/src/testdir/test_lambda.vim
+++ b/src/testdir/test_lambda.vim
@@ -46,3 +46,8 @@
call assert_fails('echo {a, a -> a + a}(1, 2)', 'E15:')
call assert_fails('echo {a, b -> a + b)}(1, 2)', 'E15:')
endfunc
+
+func Test_not_lamda()
+ let x = {'>' : 'foo'}
+ call assert_equal('foo', x['>'])
+endfunc
diff --git a/src/userfunc.c b/src/userfunc.c
index ea15423..9ffafc3 100644
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -150,7 +150,9 @@
hash_init(&func_hashtab);
}
-/* Get function arguments. */
+/*
+ * Get function arguments.
+ */
static int
get_function_args(
char_u **argp,
@@ -232,7 +234,9 @@
break;
}
}
- ++p; /* skip the ')' */
+ if (*p != endchar)
+ goto err_ret;
+ ++p; /* skip "endchar" */
*argp = p;
return OK;
diff --git a/src/version.c b/src/version.c
index cb8fed6..6f1d53a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -759,6 +759,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2076,
+/**/
2075,
/**/
2074,