From 893fad2851bd4a10836f2666a512a3cbceaadc05 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Fri, 7 Feb 2025 06:23:25 +0800 Subject: [PATCH 1/3] test(old): reorder test_functions.vim to match upstream --- test/old/testdir/test_functions.vim | 60 ++++++++++++++--------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/test/old/testdir/test_functions.vim b/test/old/testdir/test_functions.vim index 738a417b86..89a274e5ac 100644 --- a/test/old/testdir/test_functions.vim +++ b/test/old/testdir/test_functions.vim @@ -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\+\)\@ Date: Fri, 7 Feb 2025 06:19:39 +0800 Subject: [PATCH 2/3] vim-patch:8.2.0849: BeOS code is not maintained and probably unused Problem: BeOS code is not maintained and probably unused. Solution: Remove the BeOS code. (Emir Sari, closes vim/vim#5817) https://github.com/vim/vim/commit/041c7107f23d3b49ab62c1d7e36af90421db8b63 Co-authored-by: Bram Moolenaar --- test/old/testdir/test_functions.vim | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/test/old/testdir/test_functions.vim b/test/old/testdir/test_functions.vim index 89a274e5ac..6a5d127fd7 100644 --- a/test/old/testdir/test_functions.vim +++ b/test/old/testdir/test_functions.vim @@ -2711,11 +2711,10 @@ 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'] + 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('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')) @@ -2727,7 +2726,6 @@ func Test_platform_name() 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\+\)\@ Date: Fri, 7 Feb 2025 06:24:17 +0800 Subject: [PATCH 3/3] vim-patch:9.1.1081: has('bsd') is true for GNU/Hurd Problem: has('bsd') is true for GNU/Hurd Solution: exclude GNU/Hurd from BSD feature flag (Zhaoming Luo) GNU/Hurd, like Mac OS X, is a BSD-based system. It should exclude has('bsd') feature just like what Mac OS X does. The __GNU__ pre-defined macro indicates it's compiled for GNU/Hurd. closes: vim/vim#16580 https://github.com/vim/vim/commit/a41dfcd55b1744b44a47d2fc3feb5d5f6207a556 Co-authored-by: Zhaoming Luo --- runtime/doc/builtin.txt | 1 + runtime/lua/vim/_meta/vimfn.lua | 1 + src/nvim/eval.lua | 1 + src/nvim/eval/funcs.c | 5 ++++- test/old/testdir/test_functions.vim | 2 ++ 5 files changed, 9 insertions(+), 1 deletion(-) diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt index 96574e2899..77d44c36a0 100644 --- a/runtime/doc/builtin.txt +++ b/runtime/doc/builtin.txt @@ -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. diff --git a/runtime/lua/vim/_meta/vimfn.lua b/runtime/lua/vim/_meta/vimfn.lua index 098c0e907a..c67f303d82 100644 --- a/runtime/lua/vim/_meta/vimfn.lua +++ b/runtime/lua/vim/_meta/vimfn.lua @@ -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. diff --git a/src/nvim/eval.lua b/src/nvim/eval.lua index 9d787c68ea..a7a564fa88 100644 --- a/src/nvim/eval.lua +++ b/src/nvim/eval.lua @@ -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. diff --git a/src/nvim/eval/funcs.c b/src/nvim/eval/funcs.c index c125bd8893..8e83b3d146 100644 --- a/src/nvim/eval/funcs.c +++ b/src/nvim/eval/funcs.c @@ -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 diff --git a/test/old/testdir/test_functions.vim b/test/old/testdir/test_functions.vim index 6a5d127fd7..6b216947a7 100644 --- a/test/old/testdir/test_functions.vim +++ b/test/old/testdir/test_functions.vim @@ -2717,6 +2717,7 @@ func Test_platform_name() " 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')) @@ -2734,6 +2735,7 @@ func Test_platform_name() 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