37static size_t urldecode(
char *dest,
const char *url,
size_t url_len,
int decode_plus_sign)
45 if (
c ==
'%' &&
s + 1 < url_len) {
62 dest[d++] = 16 *
c2 + c3;
69 }
else if (
c ==
'+' && decode_plus_sign) {
88 url_len = strlen(url) + 1;
94 urldecode(dest, url, url_len, decode_plus_sign);
99int ff_urldecode_len(
char *dest,
size_t dest_len,
const char *url,
size_t url_max_len,
int decode_plus_sign)
101 size_t written_bytes;
102 size_t url_len = strlen(url);
104 url_len =
FFMIN(url_len, url_max_len);
106 if (dest_len <= url_len)
109 written_bytes =
urldecode(dest, url, url_len, decode_plus_sign);
110 dest[written_bytes] =
'\0';
112 return written_bytes;
static av_const int av_tolower(int c)
Locale-independent conversion of ASCII characters to lowercase.
static av_const int av_isxdigit(int c)
Locale-independent conversion of ASCII isxdigit.
Utility Preprocessor macros.
Memory handling functions.
int ff_urldecode_len(char *dest, size_t dest_len, const char *url, size_t url_max_len, int decode_plus_sign)
Decodes an URL from its percent-encoded form back into normal representation.
static size_t urldecode(char *dest, const char *url, size_t url_len, int decode_plus_sign)
char * ff_urldecode(const char *url, int decode_plus_sign)
Decodes an URL from its percent-encoded form back into normal representation.