aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/fs.lua
diff options
context:
space:
mode:
authorMike <4576770+mike325@users.noreply.github.com>2023-07-18 08:36:04 +0200
committerGitHub <noreply@github.com>2023-07-18 14:36:04 +0800
commite4da418ba8388e94bb186e3f9a2004ee1e96f1e5 (patch)
tree703fdc9f0f0d77beeaa64366076c992ae0071382 /runtime/lua/vim/fs.lua
parent80cf0f3d29fa337d43ec417759cb061bd2798ea8 (diff)
downloadrneovim-e4da418ba8388e94bb186e3f9a2004ee1e96f1e5.tar.gz
rneovim-e4da418ba8388e94bb186e3f9a2004ee1e96f1e5.tar.bz2
rneovim-e4da418ba8388e94bb186e3f9a2004ee1e96f1e5.zip
fix(fs.lua): normalize slash truncation (#23753)
Preserve last slash in windows' root drive directories
Diffstat (limited to 'runtime/lua/vim/fs.lua')
-rw-r--r--runtime/lua/vim/fs.lua6
1 files changed, 5 insertions, 1 deletions
diff --git a/runtime/lua/vim/fs.lua b/runtime/lua/vim/fs.lua
index 48d76e5d7e..d06dcb87cf 100644
--- a/runtime/lua/vim/fs.lua
+++ b/runtime/lua/vim/fs.lua
@@ -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