#ifndef _UCW_URL_H
#define _UCW_URL_H
+#ifdef CONFIG_UCW_CLEAN_ABI
+#define url_auto_canonicalize_rel ucw_url_auto_canonicalize_rel
+#define url_canon_split_rel ucw_url_canon_split_rel
+#define url_canonicalize ucw_url_canonicalize
+#define url_deescape ucw_url_deescape
+#define url_enescape ucw_url_enescape
+#define url_enescape_friendly ucw_url_enescape_friendly
+#define url_error ucw_url_error
+#define url_has_repeated_component ucw_url_has_repeated_component
+#define url_identify_protocol ucw_url_identify_protocol
+#define url_normalize ucw_url_normalize
+#define url_pack ucw_url_pack
+#define url_proto_names ucw_url_proto_names
+#define url_split ucw_url_split
+#endif
+
#define MAX_URL_SIZE 1024
/* Non-control meanings of control characters */
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 */
struct url {
char *protocol;
- uns protoid;
+ uint protoid;
char *user;
char *pass;
char *host;
- uns port; /* ~0 if unspec */
+ uint port; /* ~0 if unspec */
char *rest;
char *buf, *bufend;
};
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 url_identify_protocol(const char *p);
+uint 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)
/* Error codes */
-char *url_error(uns);
+char *url_error(uint);
#define URL_ERR_TOO_LONG 1
#define URL_ERR_INVALID_CHAR 2