mirror of
https://github.com/neovim/neovim
synced 2025-07-16 09:11:51 +00:00
fix(fs.lua): normalize slash truncation (#23753)
Preserve last slash in windows' root drive directories
This commit is contained in:
@ -348,7 +348,11 @@ function M.normalize(path, opts)
|
|||||||
path = path:gsub('%$([%w_]+)', vim.uv.os_getenv)
|
path = path:gsub('%$([%w_]+)', vim.uv.os_getenv)
|
||||||
end
|
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
|
end
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
@ -301,5 +301,10 @@ describe('vim.fs', function()
|
|||||||
return vim.fs.normalize('$XDG_CONFIG_HOME/nvim')
|
return vim.fs.normalize('$XDG_CONFIG_HOME/nvim')
|
||||||
]], xdg_config_home))
|
]], xdg_config_home))
|
||||||
end)
|
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)
|
||||||
end)
|
end)
|
||||||
|
Reference in New Issue
Block a user