Skip to content

Commit

Permalink
Scripts/split-url.awk: Split query strings too
Browse files Browse the repository at this point in the history
Also reset state on function entry otherwise split_url() cannot
really be called multiple times since there would be garbage values
in the url array from previous calls.
  • Loading branch information
Tobias Kortkamp authored and Tobias Kortkamp committed Sep 8, 2021
1 parent 7e42f13 commit 217c3e9
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions Mk/Scripts/split-url.awk
@@ -1,4 +1,5 @@
function split_url(s, url_scheme, url_fragment, url_query, url_authority, url_auth, url_user, url_host) {
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]
split(s, url_scheme, "://")
url["scheme"] = url_scheme[1]
Expand All @@ -7,7 +8,15 @@ function split_url(s, url_scheme, url_fragment, url_query, url_authority, url_au
url["fragment"] = url_fragment[2]

split(url_fragment[1], url_query, "?")
url["query"] = url_query[2]

split(url_query[2], url_query_parts, "&")
# url["query"] list of query keys (space separated)
# url["query", key] value
for (i = 1; i <= length(url_query_parts); i++) {
split(url_query_parts[i], url_query_part, "=")
url["query"] = url["query"] " " url_query_part[1]
url["query", url_query_part[1]] = url_query_part[2]
}

split(url_query[1], url_authority, "/")
url["path"] = substr(url_query[1], length(url_authority[1]) + 1)
Expand Down

0 comments on commit 217c3e9

Please sign in to comment.