directory ops moved to directory.c

This commit is contained in:
Sergey Lyubka committed 2013-11-23 10:24:25 +00:00
1 parent 45347bd44c
commit 37751a2875
7 files changed
+520 -673

No files matched your search

+19
View File
@@ -266,3 +266,22 @@ static void remove_double_dots_and_double_slashes(char *s) {
*p = '\0';
}
void mg_url_encode(const char *src, char *dst, size_t dst_len) {
static const char *dont_escape = "._-$,;~()";
static const char *hex = "0123456789abcdef";
const char *end = dst + dst_len - 1;
for (; *src != '\0' && dst < end; src++, dst++) {
if (isalnum(*(const unsigned char *) src) ||
strchr(dont_escape, * (const unsigned char *) src) != NULL) {
*dst = *src;
} else if (dst + 2 < end) {
dst[0] = '%';
dst[1] = hex[(* (const unsigned char *) src) >> 4];
dst[2] = hex[(* (const unsigned char *) src) & 0xf];
dst += 2;
}
}
*dst = '\0';
}