1
0
mirror of https://github.com/rkd77/elinks.git synced 2024-12-04 14:46:47 -05:00

add_html_to_string: Encode only known unsafe or non-ASCII characters.

In particular, do not encode '%' and '/', which are common in URIs.
This commit is contained in:
Kalle Olavi Niemitalo 2007-03-18 11:10:33 +02:00 committed by Kalle Olavi Niemitalo
parent 3ee04479d4
commit 36dd1fa267

View File

@ -274,22 +274,18 @@ add_string_replace(struct string *string, unsigned char *src, int len,
struct string *
add_html_to_string(struct string *string, const unsigned char *src, int len)
{
#define isalphanum(q) (isalnum(q) || (q) == '-' || (q) == '_')
for (; len; len--, src++) {
if (isalphanum(*src) || *src == ' '
|| *src == '.' || *src == ':' || *src == ';') {
add_bytes_to_string(string, src, 1);
} else {
if (*src < 0x20 || *src >= 0x7F
|| *src == '<' || *src == '>' || *src == '&'
|| *src == '\"' || *src == '\'') {
add_bytes_to_string(string, "&#", 2);
add_long_to_string(string, (long) *src);
add_char_to_string(string, ';');
} else {
add_char_to_string(string, *src);
}
}
#undef isalphanum
return string;
}