From df91dc76f867cc2c79bab1b086a5ed7e607b1d97 Mon Sep 17 00:00:00 2001 From: Thijs Schreijer Date: Sun, 22 Dec 2013 09:03:18 +0100 Subject: Normalizes paths displayed from `search` module, used for searching and listing installed rocks --- src/luarocks/dir.lua | 2 +- src/luarocks/search.lua | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/luarocks/dir.lua b/src/luarocks/dir.lua index 3c7465bb..5174fadc 100644 --- a/src/luarocks/dir.lua +++ b/src/luarocks/dir.lua @@ -65,5 +65,5 @@ function split_url(url) end function normalize(name) - return name:gsub("\\", "/"):gsub("(.)/*$", "%1") + return name:gsub("\\", "/"):gsub("(.)/*$", "%1"):gsub("//", "/") end diff --git a/src/luarocks/search.lua b/src/luarocks/search.lua index 356e06e8..76ea6815 100644 --- a/src/luarocks/search.lua +++ b/src/luarocks/search.lua @@ -305,6 +305,7 @@ function print_results(results, porcelain) end for version, repos in util.sortedpairs(versions, deps.compare_versions) do for _, repo in ipairs(repos) do + repo.repo = dir.normalize(repo.repo) if porcelain then util.printout(package, version, repo.arch, repo.repo) else -- cgit v1.2.3-55-g6feb From c0563374ba47b554db92dfab949281c55210c3aa Mon Sep 17 00:00:00 2001 From: Thijs Schreijer Date: Sun, 22 Dec 2013 09:29:08 +0100 Subject: take urls into account besides local paths --- src/luarocks/dir.lua | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/luarocks/dir.lua b/src/luarocks/dir.lua index 5174fadc..e8cd746e 100644 --- a/src/luarocks/dir.lua +++ b/src/luarocks/dir.lua @@ -64,6 +64,14 @@ function split_url(url) return protocol, pathname end +--- Normalize a url or local path. +-- URLs should be in the "protocol://path" format. System independent +-- forward slashes are used, removing trailing and double slashes +-- @param url string: an URL or a local pathname. +-- @return string: Normalized result. function normalize(name) - return name:gsub("\\", "/"):gsub("(.)/*$", "%1"):gsub("//", "/") + local protocol, pathname = split_url(name) + pathname = pathname:gsub("\\", "/"):gsub("(.)/*$", "%1"):gsub("//", "/") + if protocol ~= "file" then pathname = protocol .."://"..pathname end + return pathname end -- cgit v1.2.3-55-g6feb