Merge branch 'master' into chore-undefined-field

This commit is contained in:
Alexander Courtis 2024-11-03 14:01:31 +11:00 committed by GitHub
commit 571c5e7c62
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -70,6 +70,23 @@ local function has_parentheses_and_brackets(path)
return false
end
--- Path normalizations for windows only
local function win_norm_path(path)
if path == nil then
return path
end
local norm_path = path
-- Normalize for issue #2862 and #2961
if has_parentheses_and_brackets(norm_path) then
norm_path = norm_path:gsub("/", "\\")
end
-- Normalize the drive letter
norm_path = norm_path:gsub("^%l:", function(drive)
return drive:upper()
end)
return norm_path
end
--- Get a path relative to another path.
---@param path string
---@param relative_to string|nil
@ -80,8 +97,8 @@ function M.path_relative(path, relative_to)
end
local norm_path = path
if M.is_windows and has_parentheses_and_brackets(path) then
norm_path = path:gsub("/", "\\")
if M.is_windows then
norm_path = win_norm_path(norm_path)
end
local _, r = norm_path:find(M.path_add_trailing(relative_to), 1, true)