fix(vim.fs): joinpath() does not normalize slashes on Windows #31782

This commit is contained in:
Gustav Eikaas
2024-12-31 16:40:05 +01:00
committed by GitHub
parent b3bdba5cb1
commit 0bef3b911c
3 changed files with 27 additions and 5 deletions

View File

@@ -323,6 +323,20 @@ describe('vim.fs', function()
eq('foo/bar/baz', vim.fs.joinpath('foo', 'bar', 'baz'))
eq('foo/bar/baz', vim.fs.joinpath('foo', '/bar/', '/baz'))
end)
it('rewrites backslashes on Windows', function()
if is_os('win') then
eq('foo/bar/baz/zub/', vim.fs.joinpath([[foo]], [[\\bar\\\\baz]], [[zub\]]))
else
eq([[foo/\\bar\\\\baz/zub\]], vim.fs.joinpath([[foo]], [[\\bar\\\\baz]], [[zub\]]))
end
end)
it('strips redundant slashes', function()
if is_os('win') then
eq('foo/bar/baz/zub/', vim.fs.joinpath([[foo//]], [[\\bar\\\\baz]], [[zub\]]))
else
eq('foo/bar/baz/zub/', vim.fs.joinpath([[foo]], [[//bar////baz]], [[zub/]]))
end
end)
end)
describe('normalize()', function()