diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2014-12-30 00:03:44 -0500 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2014-12-30 00:03:44 -0500 |
commit | 13d950f6edf5c1d3cc28059bfe497df3c677d45a (patch) | |
tree | be369a4bd76f06f6e2bb22ca8d49fad7caa0186d | |
parent | a04691f4ba902a7724fc7a1b48837444c4034496 (diff) | |
parent | 183b4b60b68d147b5b392114d9ed582d0f490f9f (diff) | |
download | rneovim-13d950f6edf5c1d3cc28059bfe497df3c677d45a.tar.gz rneovim-13d950f6edf5c1d3cc28059bfe497df3c677d45a.tar.bz2 rneovim-13d950f6edf5c1d3cc28059bfe497df3c677d45a.zip |
Merge pull request #1738 from fwalch/vim-7.4.549
vim-patch:7.4.549
-rw-r--r-- | src/nvim/eval.c | 13 | ||||
-rw-r--r-- | src/nvim/version.c | 2 | ||||
-rw-r--r-- | test/functional/legacy/nested_function_spec.lua | 50 |
3 files changed, 57 insertions, 8 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 97d778327b..744fb13447 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -17580,15 +17580,14 @@ void ex_function(exarg_T *eap) /* Check for defining a function inside this function. */ if (checkforcmd(&p, "function", 2)) { - if (*p == '!') + if (*p == '!') { p = skipwhite(p + 1); + } p += eval_fname_script(p); - if (ASCII_ISALPHA(*p)) { - free(trans_function_name(&p, TRUE, 0, NULL)); - if (*skipwhite(p) == '(') { - ++nesting; - indent += 2; - } + free(trans_function_name(&p, TRUE, 0, NULL)); + if (*skipwhite(p) == '(') { + nesting++; + indent += 2; } } diff --git a/src/nvim/version.c b/src/nvim/version.c index f0f1db506d..513b03095b 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -189,7 +189,7 @@ static int included_patches[] = { //552, //551, //550, - //549, + 549, //548 NA 547, //546, diff --git a/test/functional/legacy/nested_function_spec.lua b/test/functional/legacy/nested_function_spec.lua new file mode 100644 index 0000000000..87371c8294 --- /dev/null +++ b/test/functional/legacy/nested_function_spec.lua @@ -0,0 +1,50 @@ +-- Tests for nested function. + +local helpers = require('test.functional.helpers') +local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert +local execute, expect, source = helpers.execute, helpers.expect, helpers.source + +describe('test_nested_function', function() + setup(clear) + + it('is working', function() + insert([[ + result:]]) + + source([[ + :fu! NestedFunc() + : fu! Func1() + : $put ='Func1' + : endfunction + : call Func1() + : fu! s:func2() + : $put ='s:func2' + : endfunction + : call s:func2() + : fu! s:_func3() + : $put ='s:_func3' + : endfunction + : call s:_func3() + : let fn = 'Func4' + : fu! {fn}() + : $put ='Func4' + : endfunction + : call {fn}() + : let fn = 'func5' + : fu! s:{fn}() + : $put ='s:func5' + : endfunction + : call s:{fn}() + :endfunction]]) + execute('call NestedFunc()') + + -- Assert buffer contents. + expect([[ + result: + Func1 + s:func2 + s:_func3 + Func4 + s:func5]]) + end) +end) |