aboutsummaryrefslogtreecommitdiff
path: root/url.h
diff options
context:
space:
mode:
Diffstat (limited to 'url.h')
-rw-r--r--url.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/url.h b/url.h
index 2a27c34277..cd9140e994 100644
--- a/url.h
+++ b/url.h
@@ -21,4 +21,18 @@ char *url_decode_parameter_value(const char **query);
void end_url_with_slash(struct strbuf *buf, const char *url);
void str_end_url_with_slash(const char *url, char **dest);
+/*
+ * The set of unreserved characters as per STD66 (RFC3986) is
+ * '[A-Za-z0-9-._~]'. These characters are safe to appear in URI
+ * components without percent-encoding.
+ */
+int is_rfc3986_unreserved(char ch);
+
+/*
+ * This is a variant of is_rfc3986_unreserved() that treats uppercase
+ * letters as "reserved". This forces them to be percent-encoded, allowing
+ * 'Foo' (%46oo) and 'foo' (foo) to be distinct on case-folding filesystems.
+ */
+int is_casefolding_rfc3986_unreserved(char c);
+
#endif /* URL_H */