diff options
-rw-r--r-- | config/CMakeLists.txt | 5 | ||||
-rw-r--r-- | config/config.h.in | 1 | ||||
-rw-r--r-- | runtime/doc/eval.txt | 1 | ||||
-rw-r--r-- | src/nvim/eval.c | 3 | ||||
-rw-r--r-- | test/functional/eval/has_spec.lua | 6 |
5 files changed, 16 insertions, 0 deletions
diff --git a/config/CMakeLists.txt b/config/CMakeLists.txt index c3643db205..63cb3cc0d6 100644 --- a/config/CMakeLists.txt +++ b/config/CMakeLists.txt @@ -12,6 +12,11 @@ check_type_size("size_t" SIZEOF_SIZE_T) check_type_size("long long" SIZEOF_LONG_LONG) check_type_size("void *" SIZEOF_VOID_PTR) +if (CMAKE_HOST_SYSTEM_VERSION MATCHES ".*-Microsoft") + # Windows Subsystem for Linux + set(HAVE_WSL 1) +endif() + check_symbol_exists(_NSGetEnviron crt_externs.h HAVE__NSGETENVIRON) # Headers diff --git a/config/config.h.in b/config/config.h.in index 410d9cc825..106013425d 100644 --- a/config/config.h.in +++ b/config/config.h.in @@ -48,6 +48,7 @@ #cmakedefine HAVE_UTIME_H #cmakedefine HAVE_UTIMES #cmakedefine HAVE_WORKING_LIBINTL +#cmakedefine HAVE_WSL #cmakedefine UNIX #cmakedefine USE_FNAME_CASE #cmakedefine HAVE_SYS_UIO_H diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 8771604c89..37a4962732 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -8445,6 +8445,7 @@ win32 Windows version of Vim (32 or 64 bit). winaltkeys Compiled with 'winaltkeys' option. windows Compiled with support for more than one window. writebackup Compiled with 'writebackup' default on. +wsl WSL (Windows Subsystem for Linux) version of Vim. *string-match* Matching a pattern in a String diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 07a9e9286d..67538c248e 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -10671,6 +10671,9 @@ static void f_has(typval_T *argvars, typval_T *rettv, FunPtr fptr) "windows", "winaltkeys", "writebackup", +#if defined(HAVE_WSL) + "wsl", +#endif "nvim", }; diff --git a/test/functional/eval/has_spec.lua b/test/functional/eval/has_spec.lua index 78c4e08fde..a3af2d1a20 100644 --- a/test/functional/eval/has_spec.lua +++ b/test/functional/eval/has_spec.lua @@ -57,4 +57,10 @@ describe('has()', function() eq(0, funcs.has("unnamedplus")) end end) + + it('"wsl"', function() + if 1 == funcs.has('win32') or 1 == funcs.has('mac') then + eq(0, funcs.has('wsl')) + end + end) end) |