Merge pull request #1738 from fwalch/vim-7.4.549

vim-patch:7.4.549
This commit is contained in:
Justin M. Keyes
2014-12-30 00:03:44 -05:00
3 changed files with 57 additions and 8 deletions

View File

@@ -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;
}
}

View File

@@ -189,7 +189,7 @@ static int included_patches[] = {
//552,
//551,
//550,
//549,
549,
//548 NA
547,
//546,

View File

@@ -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)