Exemple #1
0
const char *mget_iri_escape_path(const char *src, mget_buffer_t *buf)
{
	const char *begin;

	for (begin = src; *src; src++) {
		if (!mget_iri_isunreserved_path(*src)) {
			if (begin != src)
				mget_buffer_memcat(buf, begin, src - begin);
			begin = src + 1;
			mget_buffer_printf_append2(buf, "%%%02X", (unsigned char)*src);
		}
	}

	if (begin != src)
		mget_buffer_memcat(buf, begin, src - begin);

	return buf->data;
}
Exemple #2
0
const char *mget_iri_escape_query(const char *src, mget_buffer_t *buf)
{
	const char *begin;

	for (begin = src; *src; src++) {
		if (!mget_iri_isunreserved_path(*src) && *src != '=') {
			if (begin != src)
				mget_buffer_memcat(buf, begin, src - begin);
			begin = src + 1;
			if (*src == ' ')
				mget_buffer_memcat(buf, "+", 1);
			else
				mget_buffer_printf_append2(buf, "%%%02x", (unsigned char)*src);
		}
	}

	if (begin != src)
		mget_buffer_memcat(buf, begin, src - begin);

	return buf->data;
}