changeset 9597:3ca0fd9709b1 v7.4.2076

commit https://github.com/vim/vim/commit/4f0383bc3fe5af0229fb66b53fe94329af783eff Author: Bram Moolenaar <Bram@vim.org> Date: Tue Jul 19 22:43:11 2016 +0200 patch 7.4.2076 Problem: Syntax error when dict has '>' key. Solution: Check for endchar. (Ken Takata)
author Christian Brabandt <cb@256bit.org>
date Tue, 19 Jul 2016 22:45:06 +0200
parents a638edc96bb6
children dd6f3e98646b
files src/testdir/test_lambda.vim src/userfunc.c src/version.c
diffstat 3 files changed, 13 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/testdir/test_lambda.vim
+++ b/src/testdir/test_lambda.vim
@@ -46,3 +46,8 @@ function Test_lambda_fails()
   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
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -150,7 +150,9 @@ func_init()
     hash_init(&func_hashtab);
 }
 
-/* Get function arguments. */
+/*
+ * Get function arguments.
+ */
     static int
 get_function_args(
     char_u	**argp,
@@ -232,7 +234,9 @@ get_function_args(
 	    break;
 	}
     }
-    ++p;	/* skip the ')' */
+    if (*p != endchar)
+	goto err_ret;
+    ++p;	/* skip "endchar" */
 
     *argp = p;
     return OK;
--- a/src/version.c
+++ b/src/version.c
@@ -759,6 +759,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2076,
+/**/
     2075,
 /**/
     2074,