mirror of
https://github.com/neovim/neovim.git
synced 2025-10-08 19:06:31 +00:00
Merge pull request #10290 from janlazo/vim-8.1.0086
vim-patch:8.1.{86,347}
This commit is contained in:
@@ -54,6 +54,7 @@ bool os_libcall(const char *libname,
|
|||||||
// open the dynamic loadable library
|
// open the dynamic loadable library
|
||||||
if (uv_dlopen(libname, &lib)) {
|
if (uv_dlopen(libname, &lib)) {
|
||||||
EMSG2(_("dlerror = \"%s\""), uv_dlerror(&lib));
|
EMSG2(_("dlerror = \"%s\""), uv_dlerror(&lib));
|
||||||
|
uv_dlclose(&lib);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
" Tests for various functions.
|
" Tests for various functions.
|
||||||
|
source shared.vim
|
||||||
|
|
||||||
" Must be done first, since the alternate buffer must be unset.
|
" Must be done first, since the alternate buffer must be unset.
|
||||||
func Test_00_bufexists()
|
func Test_00_bufexists()
|
||||||
@@ -1140,3 +1141,50 @@ func Test_reg_executing_and_recording()
|
|||||||
delfunc s:save_reg_stat
|
delfunc s:save_reg_stat
|
||||||
unlet s:reg_stat
|
unlet s:reg_stat
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_libcall_libcallnr()
|
||||||
|
if !has('libcall')
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
if has('win32')
|
||||||
|
let libc = 'msvcrt.dll'
|
||||||
|
elseif has('mac')
|
||||||
|
let libc = 'libSystem.B.dylib'
|
||||||
|
elseif system('uname -s') =~ 'SunOS'
|
||||||
|
" Set the path to libc.so according to the architecture.
|
||||||
|
let test_bits = system('file ' . GetVimProg())
|
||||||
|
let test_arch = system('uname -p')
|
||||||
|
if test_bits =~ '64-bit' && test_arch =~ 'sparc'
|
||||||
|
let libc = '/usr/lib/sparcv9/libc.so'
|
||||||
|
elseif test_bits =~ '64-bit' && test_arch =~ 'i386'
|
||||||
|
let libc = '/usr/lib/amd64/libc.so'
|
||||||
|
else
|
||||||
|
let libc = '/usr/lib/libc.so'
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
" On Unix, libc.so can be in various places.
|
||||||
|
" Interestingly, using an empty string for the 1st argument of libcall
|
||||||
|
" allows to call functions from libc which is not documented.
|
||||||
|
let libc = ''
|
||||||
|
endif
|
||||||
|
|
||||||
|
if has('win32')
|
||||||
|
call assert_equal($USERPROFILE, libcall(libc, 'getenv', 'USERPROFILE'))
|
||||||
|
else
|
||||||
|
call assert_equal($HOME, libcall(libc, 'getenv', 'HOME'))
|
||||||
|
endif
|
||||||
|
|
||||||
|
" If function returns NULL, libcall() should return an empty string.
|
||||||
|
call assert_equal('', libcall(libc, 'getenv', 'X_ENV_DOES_NOT_EXIT'))
|
||||||
|
|
||||||
|
" Test libcallnr() with string and integer argument.
|
||||||
|
call assert_equal(4, libcallnr(libc, 'strlen', 'abcd'))
|
||||||
|
call assert_equal(char2nr('A'), libcallnr(libc, 'toupper', char2nr('a')))
|
||||||
|
|
||||||
|
call assert_fails("call libcall(libc, 'Xdoesnotexist_', '')", 'E364:')
|
||||||
|
call assert_fails("call libcallnr(libc, 'Xdoesnotexist_', '')", 'E364:')
|
||||||
|
|
||||||
|
call assert_fails("call libcall('Xdoesnotexist_', 'getenv', 'HOME')", 'E364:')
|
||||||
|
call assert_fails("call libcallnr('Xdoesnotexist_', 'strlen', 'abcd')", 'E364:')
|
||||||
|
endfunc
|
||||||
|
@@ -33,7 +33,7 @@ func Test_writefile_fails_gently()
|
|||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func Test_writefile_fails_conversion()
|
func Test_writefile_fails_conversion()
|
||||||
if !has('multi_byte') || !has('iconv')
|
if !has('multi_byte') || !has('iconv') || system('uname -s') =~ 'SunOS'
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
" Without a backup file the write won't happen if there is a conversion
|
" Without a backup file the write won't happen if there is a conversion
|
||||||
|
Reference in New Issue
Block a user