diff options
author | dundargoc <gocdundar@gmail.com> | 2025-01-01 13:13:40 +0100 |
---|---|---|
committer | dundargoc <33953936+dundargoc@users.noreply.github.com> | 2025-01-01 23:42:42 +0100 |
commit | 6dc0eb9f41e6453fe003dd3a28c58b701fd003c9 (patch) | |
tree | a7360ec58e9b908a197c95e63aef65caacccb13d | |
parent | dc692f553aae367a03f286e0d59561247941f96c (diff) | |
download | rneovim-6dc0eb9f41e6453fe003dd3a28c58b701fd003c9.tar.gz rneovim-6dc0eb9f41e6453fe003dd3a28c58b701fd003c9.tar.bz2 rneovim-6dc0eb9f41e6453fe003dd3a28c58b701fd003c9.zip |
fix(vim.fs.abspath): correctly handle UNC paths
-rw-r--r-- | runtime/lua/vim/fs.lua | 2 | ||||
-rw-r--r-- | test/functional/lua/fs_spec.lua | 5 |
2 files changed, 4 insertions, 3 deletions
diff --git a/runtime/lua/vim/fs.lua b/runtime/lua/vim/fs.lua index d042df96e5..ee713e4b58 100644 --- a/runtime/lua/vim/fs.lua +++ b/runtime/lua/vim/fs.lua @@ -725,7 +725,7 @@ function M.abspath(path) prefix, path = split_windows_path(path) end - if vim.startswith(path, '/') then + if prefix == '//' or vim.startswith(path, '/') then -- Path is already absolute, do nothing return prefix .. path end diff --git a/test/functional/lua/fs_spec.lua b/test/functional/lua/fs_spec.lua index 140fe66961..1c6ff5ac6d 100644 --- a/test/functional/lua/fs_spec.lua +++ b/test/functional/lua/fs_spec.lua @@ -361,8 +361,8 @@ describe('vim.fs', function() end) -- Opts required for testing posix paths and win paths - local posix_opts = is_os('win') and { win = false } or {} - local win_opts = is_os('win') and {} or { win = true } + local posix_opts = { win = false } + local win_opts = { win = true } it('preserves leading double slashes in POSIX paths', function() eq('//foo', vim.fs.normalize('//foo', posix_opts)) @@ -483,6 +483,7 @@ describe('vim.fs', function() if is_os('win') then eq([[C:/foo]], vim.fs.abspath([[C:\foo]])) eq([[C:/foo/../.]], vim.fs.abspath([[C:\foo\..\.]])) + eq('//foo/bar', vim.fs.abspath('\\\\foo\\bar')) else eq('/foo/../.', vim.fs.abspath('/foo/../.')) eq('/foo/bar', vim.fs.abspath('/foo/bar')) |