url.lua:absolute_path(): ensure a separator between base_path and relative_path

master
E. Westbrook 2018-08-21 10:43:04 -06:00
parent 7ccea58776
commit 5b862e6a3c
2 changed files with 2 additions and 1 deletions

View File

@ -110,6 +110,7 @@ local function absolute_path(base_path, relative_path)
if string.sub(relative_path, 1, 1) == "/" then
return remove_dot_components(relative_path) end
base_path = base_path:gsub("[^/]*$", "")
if not base_path:find'/$' then base_path = base_path .. '/' end
local path = base_path .. relative_path
path = remove_dot_components(path)
return path

View File

@ -690,7 +690,7 @@ check_absolute_url("http://example.com/", "...badhost.com/", "http://example.com
check_absolute_url("http://example.com/a/b/c/d/", "../q", "http://example.com/a/b/c/q")
check_absolute_url("http://example.com/a/b/c/d/", "../../q", "http://example.com/a/b/q")
check_absolute_url("http://example.com/a/b/c/d/", "../../../q", "http://example.com/a/q")
check_absolute_url("http://example.com/a/b/c/d/", "../../../../q", "http://example.com/q")
check_absolute_url("http://example.com", ".badhost.com", "http://example.com/.badhost.com")
print("testing path parsing and composition")
check_parse_path("/eu/tu/ele", { "eu", "tu", "ele"; is_absolute = 1 })