Mercurial > urweb
diff src/c/urweb.c @ 1059:03a81e26e5fe
Move to simpler HTML escaping
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Tue, 08 Dec 2009 08:48:29 -0500 |
parents | 118a5a08a881 |
children | e8a35d710ab9 |
line wrap: on
line diff
--- a/src/c/urweb.c Sat Dec 05 14:34:44 2009 -0500 +++ b/src/c/urweb.c Tue Dec 08 08:48:29 2009 -0500 @@ -1431,25 +1431,8 @@ strcpy(p, "&"); p += 5; } - else if (isprint(c)) + else *p++ = c; - else if (c / 32 == 6 && isCont(s[1])) { - memcpy(p, s, 2); - p += 2; - ++s; - } else if (c / 16 == 14 && isCont(s[1]) && isCont(s[2])) { - memcpy(p, s, 3); - p += 3; - s += 2; - } else if (c / 8 == 30 && isCont(s[1]) && isCont(s[2]) && isCont(s[3])) { - memcpy(p, s, 4); - p += 4; - s += 3; - } else { - int len2; - sprintf(p, "&#%d;%n", c, &len2); - p += len2; - } } *p++ = 0; @@ -1470,13 +1453,8 @@ strcpy(p, "&"); p += 5; } - else if (isprint(c)) + else *p++ = c; - else { - int len2; - sprintf(p, "&#%d;%n", c, &len2); - p += len2; - } *p++ = 0; ctx->heap.front = p; @@ -1521,28 +1499,8 @@ uw_write_unsafe(ctx, """); else if (c == '&') uw_write_unsafe(ctx, "&"); - else if (isprint(c)) + else uw_writec_unsafe(ctx, c); - else if (c / 32 == 6 && isCont(s[1])) { - uw_writec_unsafe(ctx, c); - uw_writec_unsafe(ctx, s[1]); - ++s; - } else if (c / 16 == 14 && isCont(s[1]) && isCont(s[2])) { - uw_writec_unsafe(ctx, c); - uw_writec_unsafe(ctx, s[1]); - uw_writec_unsafe(ctx, s[2]); - s += 2; - } else if (c / 8 == 30 && isCont(s[1]) && isCont(s[2]) && isCont(s[3])) { - uw_writec_unsafe(ctx, c); - uw_writec_unsafe(ctx, s[1]); - uw_writec_unsafe(ctx, s[2]); - uw_writec_unsafe(ctx, s[3]); - s += 3; - } else { - uw_write_unsafe(ctx, "&#"); - uw_Basis_attrifyInt_w_unsafe(ctx, c); - uw_writec_unsafe(ctx, ';'); - } } return uw_unit_v; @@ -1555,13 +1513,8 @@ uw_write_unsafe(ctx, """); else if (c == '&') uw_write_unsafe(ctx, "&"); - else if (isprint(c)) + else uw_writec_unsafe(ctx, c); - else { - uw_write_unsafe(ctx, "&#"); - uw_Basis_attrifyInt_w_unsafe(ctx, c); - uw_writec_unsafe(ctx, ';'); - } return uw_unit_v; } @@ -1890,25 +1843,7 @@ s2 += 5; break; default: - if (isprint(c) || isspace(c)) - *s2++ = c; - else if (c / 32 == 6 && isCont(s[1])) { - memcpy(s2, s, 2); - s2 += 2; - ++s; - } else if (c / 16 == 14 && isCont(s[1]) && isCont(s[2])) { - memcpy(s2, s, 3); - s2 += 3; - s += 2; - } else if (c / 8 == 30 && isCont(s[1]) && isCont(s[2]) && isCont(s[3])) { - memcpy(s2, s, 4); - s2 += 4; - s += 3; - } else { - int len2; - sprintf(s2, "&#%d;%n", c, &len2); - s2 += len2; - } + *s2++ = c; } } @@ -1931,28 +1866,7 @@ uw_write_unsafe(ctx, "&"); break; default: - if (isprint(c) || isspace(c)) - uw_writec_unsafe(ctx, c); - else if (c / 32 == 6 && isCont(s[1])) { - uw_writec_unsafe(ctx, c); - uw_writec_unsafe(ctx, s[1]); - ++s; - } else if (c / 16 == 14 && isCont(s[1]) && isCont(s[2])) { - uw_writec_unsafe(ctx, c); - uw_writec_unsafe(ctx, s[1]); - uw_writec_unsafe(ctx, s[2]); - s += 2; - } else if (c / 8 == 30 && isCont(s[1]) && isCont(s[2]) && isCont(s[3])) { - uw_writec_unsafe(ctx, c); - uw_writec_unsafe(ctx, s[1]); - uw_writec_unsafe(ctx, s[2]); - uw_writec_unsafe(ctx, s[3]); - s += 3; - } else { - uw_write_unsafe(ctx, "&#"); - uw_Basis_attrifyInt_w_unsafe(ctx, c); - uw_writec_unsafe(ctx, ';'); - } + uw_writec_unsafe(ctx, c); } }