forked from aniani/vim
updated for version 7.4.268
Problem: Using exists() on a funcref for a script-local function does not work. Solution: Translate <SNR> to the special byte sequence. Add a test.
This commit is contained in:
1
Filelist
1
Filelist
@@ -88,6 +88,7 @@ SRC_ALL = \
|
|||||||
src/testdir/test60.vim \
|
src/testdir/test60.vim \
|
||||||
src/testdir/test83-tags? \
|
src/testdir/test83-tags? \
|
||||||
src/testdir/test77a.com \
|
src/testdir/test77a.com \
|
||||||
|
src/testdir/test_*.vim \
|
||||||
src/testdir/python2/*.py \
|
src/testdir/python2/*.py \
|
||||||
src/testdir/python3/*.py \
|
src/testdir/python3/*.py \
|
||||||
src/testdir/pythonx/*.py \
|
src/testdir/pythonx/*.py \
|
||||||
|
@@ -22275,6 +22275,14 @@ trans_function_name(pp, skip, flags, fdp)
|
|||||||
{
|
{
|
||||||
name = vim_strsave(name);
|
name = vim_strsave(name);
|
||||||
*pp = end;
|
*pp = end;
|
||||||
|
if (STRNCMP(name, "<SNR>", 5) == 0)
|
||||||
|
{
|
||||||
|
/* Change "<SNR>" to the byte sequence. */
|
||||||
|
name[0] = K_SPECIAL;
|
||||||
|
name[1] = KS_EXTRA;
|
||||||
|
name[2] = (int)KE_SNR;
|
||||||
|
mch_memmove(name + 3, name + 5, STRLEN(name + 5) + 1);
|
||||||
|
}
|
||||||
goto theend;
|
goto theend;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -180,6 +180,9 @@ endfun
|
|||||||
:echo g:Foo(2)
|
:echo g:Foo(2)
|
||||||
:echo Foo(3)
|
:echo Foo(3)
|
||||||
:"
|
:"
|
||||||
|
:" script-local function used in Funcref must exist.
|
||||||
|
:so test_eval_func.vim
|
||||||
|
:"
|
||||||
:/^start:/+1,$wq! test.out
|
:/^start:/+1,$wq! test.out
|
||||||
:" vim: et ts=4 isk-=\: fmr=???,???
|
:" vim: et ts=4 isk-=\: fmr=???,???
|
||||||
:call getchar()
|
:call getchar()
|
||||||
|
Binary file not shown.
10
src/testdir/test_eval_func.vim
Normal file
10
src/testdir/test_eval_func.vim
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
" Vim script used in test_eval.in. Needed for script-local function.
|
||||||
|
|
||||||
|
func! s:Testje()
|
||||||
|
return "foo"
|
||||||
|
endfunc
|
||||||
|
let Bar = function('s:Testje')
|
||||||
|
$put ='s:Testje exists: ' . exists('s:Testje')
|
||||||
|
$put ='func s:Testje exists: ' . exists('*s:Testje')
|
||||||
|
$put ='Bar exists: ' . exists('Bar')
|
||||||
|
$put ='func Bar exists: ' . exists('*Bar')
|
@@ -734,6 +734,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
268,
|
||||||
/**/
|
/**/
|
||||||
267,
|
267,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user