Defines |
#define | APR_ESCAPE_STRING (-1) |
Functions |
apr_status_t | apr_escape_shell (char *escaped, const char *str, apr_ssize_t slen, apr_size_t *len) |
const char * | apr_pescape_shell (apr_pool_t *p, const char *str) |
apr_status_t | apr_unescape_url (char *escaped, const char *url, apr_ssize_t slen, const char *forbid, const char *reserved, int plus, apr_size_t *len) |
const char * | apr_punescape_url (apr_pool_t *p, const char *url, const char *forbid, const char *reserved, int plus) |
apr_status_t | apr_escape_path_segment (char *escaped, const char *str, apr_ssize_t slen, apr_size_t *len) |
const char * | apr_pescape_path_segment (apr_pool_t *p, const char *str) |
apr_status_t | apr_escape_path (char *escaped, const char *path, apr_ssize_t slen, int partial, apr_size_t *len) |
const char * | apr_pescape_path (apr_pool_t *p, const char *str, int partial) |
apr_status_t | apr_escape_urlencoded (char *escaped, const char *str, apr_ssize_t slen, apr_size_t *len) |
const char * | apr_pescape_urlencoded (apr_pool_t *p, const char *str) |
apr_status_t | apr_escape_entity (char *escaped, const char *str, apr_ssize_t slen, int toasc, apr_size_t *len) |
const char * | apr_pescape_entity (apr_pool_t *p, const char *str, int toasc) |
apr_status_t | apr_unescape_entity (char *unescaped, const char *str, apr_ssize_t slen, apr_size_t *len) |
const char * | apr_punescape_entity (apr_pool_t *p, const char *str) |
apr_status_t | apr_escape_echo (char *escaped, const char *str, apr_ssize_t slen, int quote, apr_size_t *len) |
const char * | apr_pescape_echo (apr_pool_t *p, const char *str, int quote) |
apr_status_t | apr_escape_hex (char *dest, const void *src, apr_size_t srclen, int colon, apr_size_t *len) |
const char * | apr_pescape_hex (apr_pool_t *p, const void *src, apr_size_t slen, int colon) |
apr_status_t | apr_unescape_hex (void *dest, const char *str, apr_ssize_t slen, int colon, apr_size_t *len) |
const void * | apr_punescape_hex (apr_pool_t *p, const char *str, int colon, apr_size_t *len) |
apr_status_t apr_escape_echo |
( |
char * |
escaped, |
|
|
const char * |
str, |
|
|
apr_ssize_t |
slen, |
|
|
int |
quote, |
|
|
apr_size_t * |
len | |
|
) |
| | |
Escape control characters in a string, as performed by the shell's 'echo' command. Characters are replaced as follows: \a alert (bell), \b backspace, \f form feed, \n new line, \r carriage return, \t horizontal tab, \v vertical tab, \ backslash.
Any non ascii character will be encoded as '\xHH', where HH is the hex code of the character.
If quote is not zero, the double quote character will also be escaped.
- Parameters:
-
| escaped | Optional buffer to write the encoded string, can be NULL |
| str | The original string |
| slen | The length of the original string, or APR_ESCAPE_STRING |
| quote | If non zero, encode double quotes |
| len | If present, returns the length of the string |
- Returns:
- APR_SUCCESS, or APR_NOTFOUND if no changes to the string were detected or the string was NULL
apr_status_t apr_escape_entity |
( |
char * |
escaped, |
|
|
const char * |
str, |
|
|
apr_ssize_t |
slen, |
|
|
int |
toasc, |
|
|
apr_size_t * |
len | |
|
) |
| | |
Apply entity encoding to a string. Characters are replaced as follows: '<' becomes '<', '>' becomes '>', '&' becomes '&', the double quote becomes '" and the single quote becomes '''.
If toasc is not zero, any non ascii character will be encoded as '%#ddd;', where ddd is the decimal code of the character.
- Parameters:
-
| escaped | Optional buffer to write the encoded string, can be NULL |
| str | The original string |
| slen | The length of the original string, or APR_ESCAPE_STRING |
| toasc | If non zero, encode non ascii characters |
| len | If present, returns the length of the string |
- Returns:
- APR_SUCCESS, or APR_NOTFOUND if no changes to the string were detected or the string was NULL
apr_status_t apr_escape_path |
( |
char * |
escaped, |
|
|
const char * |
path, |
|
|
apr_ssize_t |
slen, |
|
|
int |
partial, |
|
|
apr_size_t * |
len | |
|
) |
| | |
Converts an OS path to a URL, in an OS dependent way, as defined in RFC1808. In all cases if a ':' occurs before the first '/' in the URL, the URL should be prefixed with "./" (or the ':' escaped). In the case of Unix, this means leaving '/' alone, but otherwise doing what escape_path_segment() does. For efficiency reasons, we don't use escape_path_segment(), which is provided for reference. Again, RFC 1808 is where this stuff is defined.
If partial is set, os_escape_path() assumes that the path will be appended to something with a '/' in it (and thus does not prefix "./").
- Parameters:
-
| escaped | Optional buffer to write the encoded string, can be NULL |
| path | The original string |
| slen | The length of the original string, or APR_ESCAPE_STRING |
| partial | If non zero, suppresses the prepending of "./" |
| len | If present, returns the length of the string |
- Returns:
- APR_SUCCESS, or APR_NOTFOUND if no changes to the string were detected or if the string was NULL
const char* apr_pescape_echo |
( |
apr_pool_t * |
p, |
|
|
const char * |
str, |
|
|
int |
quote | |
|
) |
| | |
Escape control characters in a string, as performed by the shell's 'echo' command, and return the results from a pool. Characters are replaced as follows: \a alert (bell), \b backspace, \f form feed, \n new line, \r carriage return, \t horizontal tab, \v vertical tab, \ backslash.
Any non ascii character will be encoded as '\xHH', where HH is the hex code of the character.
If quote is not zero, the double quote character will also be escaped.
- Parameters:
-
| p | Pool to allocate from |
| str | The original string |
| quote | If non zero, encode double quotes |
- Returns:
- A string allocated from the pool on success, the original string if no characters are encoded or the string is NULL.
const char* apr_pescape_path |
( |
apr_pool_t * |
p, |
|
|
const char * |
str, |
|
|
int |
partial | |
|
) |
| | |
Converts an OS path to a URL, in an OS dependent way, as defined in RFC1808, returning the result from a pool.
In all cases if a ':' occurs before the first '/' in the URL, the URL should be prefixed with "./" (or the ':' escaped). In the case of Unix, this means leaving '/' alone, but otherwise doing what escape_path_segment() does. For efficiency reasons, we don't use escape_path_segment(), which is provided for reference. Again, RFC 1808 is where this stuff is defined.
If partial is set, os_escape_path() assumes that the path will be appended to something with a '/' in it (and thus does not prefix "./").
- Parameters:
-
| p | Pool to allocate from |
| str | The original string |
| partial | If non zero, suppresses the prepending of "./" |
- Returns:
- A string allocated from the pool on success, the original string if no characters are encoded or if the string was NULL.