From: Bram Moolenaar Date: Tue, 19 Jul 2016 20:43:11 +0000 (+0200) Subject: patch 7.4.2076 X-Git-Tag: v7.4.2076 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4f0383bc3fe5af0229fb66b53fe94329af783eff;p=vim 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 9e9979b0c..cbd4addce 100644 --- 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 diff --git a/src/userfunc.c b/src/userfunc.c index ea1542385..9ffafc371 100644 --- 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; diff --git a/src/version.c b/src/version.c index cb8fed64f..6f1d53a26 100644 --- a/src/version.c +++ b/src/version.c @@ -758,6 +758,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2076, /**/ 2075, /**/