mirror of
https://github.com/vim/vim.git
synced 2025-09-24 03:44:06 -04:00
patch 8.1.0627: Python cannot handle function name of script-local function
Problem: Python cannot handle function name of script-local function. Solution: Use <SNR> instead of the special byte code. (Ozaki Kiichi, closes #3681)
This commit is contained in:
@@ -36,3 +36,30 @@ func Test_set_cursor()
|
||||
normal j
|
||||
call assert_equal([2, 6], [line('.'), col('.')])
|
||||
endfunc
|
||||
|
||||
func Test_vim_function()
|
||||
" Check creating vim.Function object
|
||||
py import vim
|
||||
|
||||
func s:foo()
|
||||
return matchstr(expand('<sfile>'), '<SNR>\zs\d\+_foo$')
|
||||
endfunc
|
||||
let name = '<SNR>' . s:foo()
|
||||
|
||||
try
|
||||
py f = vim.bindeval('function("s:foo")')
|
||||
call assert_equal(name, pyeval('f.name'))
|
||||
catch
|
||||
call assert_false(v:exception)
|
||||
endtry
|
||||
|
||||
try
|
||||
py f = vim.Function('\x80\xfdR' + vim.eval('s:foo()'))
|
||||
call assert_equal(name, pyeval('f.name'))
|
||||
catch
|
||||
call assert_false(v:exception)
|
||||
endtry
|
||||
|
||||
py del f
|
||||
delfunc s:foo
|
||||
endfunc
|
||||
|
Reference in New Issue
Block a user