diff options
author | Michael Ennen <mike.ennen@gmail.com> | 2016-10-26 21:44:57 -0700 |
---|---|---|
committer | James McCoy <jamessan@jamessan.com> | 2016-12-12 10:17:35 -0500 |
commit | 27b2fb944a4b9bce0f06e7c1f2267949c8edab06 (patch) | |
tree | 2f5bd7e282b7a2edcf077a7af27b401c9b1f0e34 /src | |
parent | e2258598cacebf3c90bbb8e13789194c417d8dad (diff) | |
download | rneovim-27b2fb944a4b9bce0f06e7c1f2267949c8edab06.tar.gz rneovim-27b2fb944a4b9bce0f06e7c1f2267949c8edab06.tar.bz2 rneovim-27b2fb944a4b9bce0f06e7c1f2267949c8edab06.zip |
vim-patch:7.4.1585
Problem: Partial is not recognized everywhere.
Solution: Check for partial in trans_function_name(). (Yasuhiro Matsumoto)
Add a test.
https://github.com/vim/vim/commit/d22a18928ebcb465393da1418bb88204b97badb1
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/eval.c | 4 | ||||
-rw-r--r-- | src/nvim/testdir/test_partial.vim | 12 | ||||
-rw-r--r-- | src/nvim/version.c | 2 |
3 files changed, 17 insertions, 1 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 157075eb81..51320ea2af 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -20321,6 +20321,10 @@ trans_function_name ( if (lv.ll_tv->v_type == VAR_FUNC && lv.ll_tv->vval.v_string != NULL) { name = vim_strsave(lv.ll_tv->vval.v_string); *pp = end; + } else if (lv.ll_tv->v_type == VAR_PARTIAL + && lv.ll_tv->vval.v_partial != NULL) { + name = vim_strsave(lv.ll_tv->vval.v_partial->pt_name); + *pp = end; } else { if (!skip && !(flags & TFN_QUIET) && (fdp == NULL || lv.ll_dict == NULL diff --git a/src/nvim/testdir/test_partial.vim b/src/nvim/testdir/test_partial.vim index 7941ec01c2..75cbfe2f25 100644 --- a/src/nvim/testdir/test_partial.vim +++ b/src/nvim/testdir/test_partial.vim @@ -105,3 +105,15 @@ func Test_script_function_in_dict() let B = s:obj2.clear call assert_equal('bar', B()) endfunc + +func Test_partial_exists() + let F = function('MyFunc') + call assert_true(exists('*F')) + let lF = [F] + call assert_true(exists('*lF[0]')) + + let F = function('MyFunc', ['arg']) + call assert_true(exists('*F')) + let lF = [F] + call assert_true(exists('*lF[0]')) +endfunc diff --git a/src/nvim/version.c b/src/nvim/version.c index 9f3bf74a99..e6be91e2fd 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -857,7 +857,7 @@ static int included_patches[] = { 1588, // 1587 NA // 1586, - // 1585, + 1585, // 1584 NA // 1583 NA 1582, |