mirror of
https://github.com/vim/vim.git
synced 2025-09-23 03:43:49 -04:00
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/test83-tags? \
|
||||
src/testdir/test77a.com \
|
||||
src/testdir/test_*.vim \
|
||||
src/testdir/python2/*.py \
|
||||
src/testdir/python3/*.py \
|
||||
src/testdir/pythonx/*.py \
|
||||
|
@@ -22275,6 +22275,14 @@ trans_function_name(pp, skip, flags, fdp)
|
||||
{
|
||||
name = vim_strsave(name);
|
||||
*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;
|
||||
}
|
||||
|
||||
|
@@ -180,6 +180,9 @@ endfun
|
||||
:echo g:Foo(2)
|
||||
:echo Foo(3)
|
||||
:"
|
||||
:" script-local function used in Funcref must exist.
|
||||
:so test_eval_func.vim
|
||||
:"
|
||||
:/^start:/+1,$wq! test.out
|
||||
:" vim: et ts=4 isk-=\: fmr=???,???
|
||||
: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[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
268,
|
||||
/**/
|
||||
267,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user