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,17 +17580,16 @@ void ex_function(exarg_T *eap)
/* Check for defining a function inside this function. */ /* Check for defining a function inside this function. */
if (checkforcmd(&p, "function", 2)) { if (checkforcmd(&p, "function", 2)) {
if (*p == '!') if (*p == '!') {
p = skipwhite(p + 1); p = skipwhite(p + 1);
}
p += eval_fname_script(p); p += eval_fname_script(p);
if (ASCII_ISALPHA(*p)) {
free(trans_function_name(&p, TRUE, 0, NULL)); free(trans_function_name(&p, TRUE, 0, NULL));
if (*skipwhite(p) == '(') { if (*skipwhite(p) == '(') {
++nesting; nesting++;
indent += 2; indent += 2;
} }
} }
}
/* Check for ":append" or ":insert". */ /* Check for ":append" or ":insert". */
p = skip_range(p, NULL); p = skip_range(p, NULL);

View File

@@ -189,7 +189,7 @@ static int included_patches[] = {
//552, //552,
//551, //551,
//550, //550,
//549, 549,
//548 NA //548 NA
547, 547,
//546, //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)