/* Non-control meanings of control characters */
-#define NCC_SEMICOLON 1
-#define NCC_SLASH 2
-#define NCC_QUEST 3
-#define NCC_COLON 4
-#define NCC_AT 5
-#define NCC_EQUAL 6
-#define NCC_AND 7
-#define NCC_HASH 8
-#define NCC_MAX 9
+enum {
+ NCC_SEMICOLON = 1,
+ NCC_SLASH = 2,
+ NCC_QUEST = 3,
+ NCC_COLON = 4,
+ NCC_AT = 5,
+ NCC_EQUAL = 6,
+ NCC_AND = 7,
+ NCC_HASH = 8,
+#ifdef CONFIG_URL_ESCAPE_COMPAT
+ NCC_MAX = 9
+#else
+ // Avoid 9 (\t) and 10 (\n)
+ NCC_DOLLAR = 11,
+ NCC_PLUS = 12,
+ // Avoid 13 (\r)
+ NCC_COMMA = 14,
+ NCC_MAX = 15
+#endif
+};
+#ifdef CONFIG_URL_ESCAPE_COMPAT
#define NCC_CHARS " ;/?:@=&#"
+#else
+#define NCC_CHARS " ;/?:@=&#\t\n$+\r,"
+#endif
/* Remove/Introduce '%' escapes */
int url_deescape(const char *s, char *d);
int url_enescape(const char *s, char *d);
-int url_enescape_friendly(const char *src, char *dest); // for cards.c only
+int url_enescape_friendly(const char *src, char *dest);
/* URL splitting and normalization */
int url_pack(struct url *u, char *d);
int url_canon_split_rel(const char *url, char *buf1, char *buf2, struct url *u, struct url *base);
int url_auto_canonicalize_rel(const char *src, char *dst, struct url *base);
-uns identify_protocol(const char *p);
+uns url_identify_protocol(const char *p);
int url_has_repeated_component(const char *url);
static inline int url_canon_split(const char *url, char *buf1, char *buf2, struct url *u)