Mercurial > vim
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;