From mboxrd@z Thu Jan 1 00:00:00 1970 From: john at keeping.me.uk (John Keeping) Date: Tue, 1 Jul 2014 21:29:03 +0100 Subject: [PATCH 3/8] Skip forbidden characters. In-Reply-To: <1404200433-30081-3-git-send-email-zwinkau@kit.edu> References: <1404200433-30081-1-git-send-email-zwinkau@kit.edu> <1404200433-30081-3-git-send-email-zwinkau@kit.edu> Message-ID: <20140701202903.GC13153@serenity.lan> On Tue, Jul 01, 2014 at 09:40:28AM +0200, zwinkau at kit.edu wrote: > From: Sebastian Buchwald Why do we want to do this? Does it not break anything that uses whitespace="pre" (explicitly or implicitly)? > --- > html.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/html.c b/html.c > index 91047ad..6037eec 100644 > --- a/html.c > +++ b/html.c > @@ -129,7 +129,8 @@ void html_txt(const char *txt) > const char *t = txt; > while (t && *t) { > int c = *t; > - if (c == '<' || c == '>' || c == '&') { > + if ((c < 0x20 && c != '\t' && c != '\n' && c != '\r') > + || (c == '<' || c == '>' || c == '&')) { > html_raw(txt, t - txt); > if (c == '>') > html(">"); > @@ -150,7 +151,8 @@ void html_ntxt(int len, const char *txt) > const char *t = txt; > while (t && *t && len--) { > int c = *t; > - if (c == '<' || c == '>' || c == '&') { > + if ((c < 0x20 && c != '\t' && c != '\n' && c != '\r') > + || (c == '<' || c == '>' || c == '&')) { > html_raw(txt, t - txt); > if (c == '>') > html(">"); > @@ -186,7 +188,8 @@ void html_attr(const char *txt) > const char *t = txt; > while (t && *t) { > int c = *t; > - if (c == '<' || c == '>' || c == '\'' || c == '\"' || c == '&') { > + if (c == '<' || c == '>' || c == '\'' || c == '\"' || c == '&' > + || (c < 0x20 && c != '\t' && c != '\n' && c != '\r')) { > html_raw(txt, t - txt); > if (c == '>') > html(">");