fix(fs.lua): normalize slash truncation (#23753)

Preserve last slash in windows' root drive directories
This commit is contained in:
Mike authored and GitHub committed 2023-07-18 14:36:04 +08:00
1 parent 80cf0f3d29
commit e4da418ba8
2 files changed
+10 -1

No files matched your search

+5 -1
View File
@@ -348,7 +348,11 @@ function M.normalize(path, opts)
path = path:gsub('%$([%w_]+)', vim.uv.os_getenv)
end
return (path:gsub('\\', '/'):gsub('/+', '/'):gsub('(.)/$', '%1'))
path = path:gsub('\\', '/'):gsub('/+', '/')
if iswin and path:match('^%w:/$') then
return path
end
return (path:gsub('(.)/$', '%1'))
end
return M
+5
View File
@@ -301,5 +301,10 @@ describe('vim.fs', function()
return vim.fs.normalize('$XDG_CONFIG_HOME/nvim')
]], xdg_config_home))
end)
if is_os('win') then
it('Last slash is not truncated from root drive', function()
eq('C:/', exec_lua [[ return vim.fs.normalize('C:/') ]])
end)
end
end)
end)