Merge pull request #32358 from zeertzjq/vim-8.2.0849

vim-patch:8.2.{0849,0931},9.1.1081
This commit is contained in:
zeertzjq 2025-02-07 07:05:44 +08:00 committed by GitHub
commit 5371659524
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 37 additions and 31 deletions

View File

@ -4597,6 +4597,7 @@ has({feature}) *has()*
fname_case Case in file names matters (for Darwin and MS-Windows
this is not present).
gui_running Nvim has a GUI.
hurd GNU/Hurd system.
iconv Can use |iconv()| for conversion.
linux Linux system.
mac MacOS system.

View File

@ -4148,6 +4148,7 @@ function vim.fn.globpath(path, expr, nosuf, list, allinks) end
--- fname_case Case in file names matters (for Darwin and MS-Windows
--- this is not present).
--- gui_running Nvim has a GUI.
--- hurd GNU/Hurd system.
--- iconv Can use |iconv()| for conversion.
--- linux Linux system.
--- mac MacOS system.

View File

@ -5119,6 +5119,7 @@ M.funcs = {
fname_case Case in file names matters (for Darwin and MS-Windows
this is not present).
gui_running Nvim has a GUI.
hurd GNU/Hurd system.
iconv Can use |iconv()| for conversion.
linux Linux system.
mac MacOS system.

View File

@ -3075,9 +3075,12 @@ static void f_gettext(typval_T *argvars, typval_T *rettv, EvalFuncData fptr)
static void f_has(typval_T *argvars, typval_T *rettv, EvalFuncData fptr)
{
static const char *const has_list[] = {
#if defined(BSD) && !defined(__APPLE__)
#if defined(BSD) && !defined(__APPLE__) && !defined(__GNU__)
"bsd",
#endif
#ifdef __GNU__
"hurd",
#endif
#ifdef __linux__
"linux",
#endif

View File

@ -2655,36 +2655,6 @@ func Test_func_exists_on_reload()
delfunc ExistingFunction
endfunc
func Test_platform_name()
" The system matches at most only one name.
let names = ['amiga', 'beos', 'bsd', 'hpux', 'linux', 'mac', 'qnx', 'sun', 'vms', 'win32', 'win32unix']
call assert_inrange(0, 1, len(filter(copy(names), 'has(v:val)')))
" Is Unix?
call assert_equal(has('beos'), has('beos') && has('unix'))
call assert_equal(has('bsd'), has('bsd') && has('unix'))
call assert_equal(has('hpux'), has('hpux') && has('unix'))
call assert_equal(has('linux'), has('linux') && has('unix'))
call assert_equal(has('mac'), has('mac') && has('unix'))
call assert_equal(has('qnx'), has('qnx') && has('unix'))
call assert_equal(has('sun'), has('sun') && has('unix'))
call assert_equal(has('win32'), has('win32') && !has('unix'))
call assert_equal(has('win32unix'), has('win32unix') && has('unix'))
if has('unix') && executable('uname')
let uname = system('uname')
call assert_equal(uname =~? 'BeOS', has('beos'))
" GNU userland on BSD kernels (e.g., GNU/kFreeBSD) don't have BSD defined
call assert_equal(uname =~? '\%(GNU/k\w\+\)\@<!BSD\|DragonFly', has('bsd'))
call assert_equal(uname =~? 'HP-UX', has('hpux'))
call assert_equal(uname =~? 'Linux', has('linux'))
call assert_equal(uname =~? 'Darwin', has('mac'))
call assert_equal(uname =~? 'QNX', has('qnx'))
call assert_equal(uname =~? 'SunOS', has('sun'))
call assert_equal(uname =~? 'CYGWIN\|MSYS', has('win32unix'))
endif
endfunc
" Test confirm({msg} [, {choices} [, {default} [, {type}]]])
func Test_confirm()
CheckUnix
@ -2739,6 +2709,36 @@ func Test_confirm()
call assert_fails('call confirm("Are you sure?", "&Yes\n&No\n", 0, [])', 'E730:')
endfunc
func Test_platform_name()
" The system matches at most only one name.
let names = ['amiga', 'bsd', 'hpux', 'linux', 'mac', 'qnx', 'sun', 'vms', 'win32', 'win32unix']
call assert_inrange(0, 1, len(filter(copy(names), 'has(v:val)')))
" Is Unix?
call assert_equal(has('bsd'), has('bsd') && has('unix'))
call assert_equal(has('hpux'), has('hpux') && has('unix'))
call assert_equal(has('hurd'), has('hurd') && has('unix'))
call assert_equal(has('linux'), has('linux') && has('unix'))
call assert_equal(has('mac'), has('mac') && has('unix'))
call assert_equal(has('qnx'), has('qnx') && has('unix'))
call assert_equal(has('sun'), has('sun') && has('unix'))
call assert_equal(has('win32'), has('win32') && !has('unix'))
call assert_equal(has('win32unix'), has('win32unix') && has('unix'))
if has('unix') && executable('uname')
let uname = system('uname')
" GNU userland on BSD kernels (e.g., GNU/kFreeBSD) don't have BSD defined
call assert_equal(uname =~? '\%(GNU/k\w\+\)\@<!BSD\|DragonFly', has('bsd'))
call assert_equal(uname =~? 'HP-UX', has('hpux'))
call assert_equal(uname =~? 'Linux', has('linux'))
call assert_equal(uname =~? 'Darwin', has('mac'))
call assert_equal(uname =~? 'QNX', has('qnx'))
call assert_equal(uname =~? 'SunOS', has('sun'))
call assert_equal(uname =~? 'CYGWIN\|MSYS', has('win32unix'))
call assert_equal(uname =~? 'GNU', has('hurd'))
endif
endfunc
func Test_readdir()
call mkdir('Xdir')
call writefile([], 'Xdir/foo.txt')