diff options
author | Zhiming Wang <zmwangx@gmail.com> | 2014-06-29 19:48:01 -0700 |
---|---|---|
committer | Nicolas Williams <nico@cryptonector.com> | 2014-06-30 19:52:42 -0500 |
commit | a5e908667693f96ac9fc6b62f061d693ee63e089 (patch) | |
tree | 052a034e6aeffc6f1d5121901abbb9e54cdc2b24 | |
parent | 1204e328dfebb46c6389a9b50a353ce0d5eb10a7 (diff) |
Let @uri produce uppercase hexadecimal digits...
instead of lowercase ones.
According to RFC 3986,
The uppercase hexadecimal digits 'A' through 'F' are equivalent to
the lowercase digits 'a' through 'f', respectively. If two URIs
differ only in the case of hexadecimal digits used in percent-encoded
octets, they are equivalent. For consistency, URI producers and
normalizers should use uppercase hexadecimal digits for all percent-
encodings.
See https://github.com/stedolan/jq/issues/451 for details.
Test suite and manual are also updated to reflect this change.
Signed-off-by: Nicolas Williams <nico@cryptonector.com>
-rw-r--r-- | builtin.c | 2 | ||||
-rw-r--r-- | docs/content/3.manual/manual.yml | 4 | ||||
-rw-r--r-- | tests/all.test | 4 |
3 files changed, 5 insertions, 5 deletions
@@ -413,7 +413,7 @@ static jv f_format(jv input, jv fmt) { if (ch < 128 && unreserved[ch]) { line = jv_string_append_buf(line, s, 1); } else { - line = jv_string_concat(line, jv_string_fmt("%%%02x", ch)); + line = jv_string_concat(line, jv_string_fmt("%%%02X", ch)); } s++; } diff --git a/docs/content/3.manual/manual.yml b/docs/content/3.manual/manual.yml index 2e831299..b460e959 100644 --- a/docs/content/3.manual/manual.yml +++ b/docs/content/3.manual/manual.yml @@ -1350,7 +1350,7 @@ sections: * `@uri`: Applies percent-encoding, by mapping all reserved URI - characters to a `%xx` sequence. + characters to a `%XX` sequence. * `@csv`: @@ -1379,7 +1379,7 @@ sections: will produce the following output for the input `{"search":"what is jq?"}`: - "http://www.google.com/search?q=what%20is%20jq%3f" + "http://www.google.com/search?q=what%20is%20jq%3F" Note that the slashes, question mark, etc. in the URL are not escaped, as they were part of the string literal. diff --git a/tests/all.test b/tests/all.test index 0b5b9479..171c8087 100644 --- a/tests/all.test +++ b/tests/all.test @@ -67,13 +67,13 @@ null "\"<>&'\\\"\"" "1,\"<>&'\"\"\"" "<>&'"" -"%3c%3e%26'%22" +"%3C%3E%26'%22" "'<>&'\\''\"'" "PD4mJyI=" @uri "\u03bc" -"%ce%bc" +"%CE%BC" @html "<b>\(.)</b>" "<script>hax</script>" |