diff options
author | Tobias Kortkamp <tobik@FreeBSD.org> | 2021-09-08 10:11:28 +0000 |
---|---|---|
committer | Tobias Kortkamp <tobik@FreeBSD.org> | 2021-09-08 19:05:18 +0000 |
commit | efeac961a76331d32a6a0bca7344a99f43d7af67 (patch) | |
tree | 16496af111067d1a3b634db3761714d7551f1673 /Mk | |
parent | 217c3e9d72809ea59cc041ee83bcc49080c9eef5 (diff) | |
download | ports-efeac961a76331d32a6a0bca7344a99f43d7af67.tar.gz ports-efeac961a76331d32a6a0bca7344a99f43d7af67.zip |
Scripts/split-url.awk: Add reverse function to stitch the URL back together
Diffstat (limited to 'Mk')
-rw-r--r-- | Mk/Scripts/split-url.awk | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/Mk/Scripts/split-url.awk b/Mk/Scripts/split-url.awk index f62af4219ad6..8efc1b9c002a 100644 --- a/Mk/Scripts/split-url.awk +++ b/Mk/Scripts/split-url.awk @@ -1,3 +1,35 @@ +function join_url( s, query_keys, i) { + s = url["scheme"] "://" + if (url["user"]) { + s = s url["user"] + if (url["password"]) { + s = s ":" url["password"] + } + s = s "@" + } + s = s url["host"] + if (url["port"]) { + s = s ":" url["port"] + } + if (url["path"]) { + s = s url["path"] + } + if (url["query"]) { + split(url["query"], query_keys) + s = s "?" + for (i = 1; i <= length(query_keys); i++) { + s = s query_keys[i] "=" url["query", query_keys[i]] + if (i != length(query_keys)) { + s = s ";" + } + } + } + if (url["fragment"]) { + s = s "#" url["fragment"] + } + return s +} + function split_url(s, url_scheme, url_fragment, url_query, url_query_parts, i, url_query_part, url_authority, url_auth, url_user, url_host) { delete url # scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment] |