RFC 1738 URL-escaping
Public API is formed of a triplet of encode functions mapping to the rfc1738_do_encode() engine.
ASCII characters are split into four groups:
- SAFE Characters which are safe to occur in any URL. For example A,B,C
- CTRLS Binary control codes. Dangerous to include in URLs.
- UNSAFE Characters which are completely usafe to occur in any URL. For example; backspace, tab, space, newline.
- RESERVED Characters which are reserved for special meaning and may only occur in certain parts of a URL.
Returns a static buffer containing the RFC 1738 compliant, escaped version of the given url.
|flags||RFC1738_ESCAPE_CTRLS Encode the blatantly dangerous binary codes. |
|flags||RFC1738_ESCAPE_UNSAFE Encode printable unsafe characters (excluding CTRLs). |
|flags||RFC1738_ESCAPE_RESERVED Encode reserved characters. |
|flags||RFC1738_ESCAPE_ALL Encode all binary CTRL, unsafe and reserved characters. |
|flags||RFC1738_ESCAPE_NOSPACE Ignore the space whitespace character. |
|flags||RFC1738_ESCAPE_NOPERCENT Ignore the escaping delimiter ''. |
Definition at line 56 of file rfc1738.c.
References buf, NULL, RFC1738_ESCAPE_CTRLS, RFC1738_ESCAPE_NOPERCENT, RFC1738_ESCAPE_NOSPACE, RFC1738_ESCAPE_RESERVED, RFC1738_ESCAPE_UNSAFE, rfc1738_reserved_chars, rfc1738_unsafe_chars, xcalloc(), and xfree.
Referenced by AnyP::Uri::cleanup(), Ftp::Gateway::parseListing(), and testRFC1738::testUrlEncode().