aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/fs.lua
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2024-09-23 06:05:58 -0700
committerGitHub <noreply@github.com>2024-09-23 06:05:58 -0700
commit47e6b2233feffc6e9d94f6086fb904eb5688fa25 (patch)
treef3c3e062ecd7aafef95ac0c77d038eb143aab074 /runtime/lua/vim/fs.lua
parent5acdc4499e2036c90172b2b085f207ee4d5cfee4 (diff)
downloadrneovim-47e6b2233feffc6e9d94f6086fb904eb5688fa25.tar.gz
rneovim-47e6b2233feffc6e9d94f6086fb904eb5688fa25.tar.bz2
rneovim-47e6b2233feffc6e9d94f6086fb904eb5688fa25.zip
fix(vim.fs): dirname() returns "." on mingw/msys2 #30480
Problem: `vim.fs.dirname([[C:\User\XXX\AppData\Local]])` returns "." on mingw/msys2. Solution: - Check for "mingw" when deciding `iswin`. - Use `has("win32")` where possible, it works in "fast" contexts since b02eeb6a7281df0561a021d7ae595c84be9a01be.
Diffstat (limited to 'runtime/lua/vim/fs.lua')
-rw-r--r--runtime/lua/vim/fs.lua4
1 files changed, 3 insertions, 1 deletions
diff --git a/runtime/lua/vim/fs.lua b/runtime/lua/vim/fs.lua
index d145c5d531..0d2e2f907f 100644
--- a/runtime/lua/vim/fs.lua
+++ b/runtime/lua/vim/fs.lua
@@ -2,7 +2,9 @@ local uv = vim.uv
local M = {}
-local iswin = uv.os_uname().sysname == 'Windows_NT'
+-- Can't use `has('win32')` because the `nvim -ll` test runner doesn't support `vim.fn` yet.
+local sysname = uv.os_uname().sysname:lower()
+local iswin = not not (sysname:find('windows') or sysname:find('mingw'))
local os_sep = iswin and '\\' or '/'
--- Iterate over all the parents of the given path.