summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZhiming Wang <zmwangx@gmail.com>2014-06-29 19:48:01 -0700
committerNicolas Williams <nico@cryptonector.com>2014-06-30 19:52:42 -0500
commita5e908667693f96ac9fc6b62f061d693ee63e089 (patch)
tree052a034e6aeffc6f1d5121901abbb9e54cdc2b24
parent1204e328dfebb46c6389a9b50a353ce0d5eb10a7 (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.c2
-rw-r--r--docs/content/3.manual/manual.yml4
-rw-r--r--tests/all.test4
3 files changed, 5 insertions, 5 deletions
diff --git a/builtin.c b/builtin.c
index 7b215e61..8a809f51 100644
--- a/builtin.c
+++ b/builtin.c
@@ -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,\"<>&'\"\"\""
"&lt;&gt;&amp;&apos;&quot;"
-"%3c%3e%26'%22"
+"%3C%3E%26'%22"
"'<>&'\\''\"'"
"PD4mJyI="
@uri
"\u03bc"
-"%ce%bc"
+"%CE%BC"
@html "<b>\(.)</b>"
"<script>hax</script>"