From fa2c1752a10a86b52e4cead93843616fba44346a Mon Sep 17 00:00:00 2001 From: Johannes Hofmann Date: Fri, 6 Mar 2009 21:44:15 +0100 Subject: fix CSS string parsing bug --- src/cssparser.cc | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) (limited to 'src/cssparser.cc') diff --git a/src/cssparser.cc b/src/cssparser.cc index db0c2961..e4637099 100644 --- a/src/cssparser.cc +++ b/src/cssparser.cc @@ -396,7 +396,6 @@ static void Css_next_token(CssParser * parser) { int c, c1, d, j; char hexbuf[5]; - bool escaped; int i = 0; parser->ttype = CSS_TK_CHAR; /* init */ @@ -501,11 +500,9 @@ static void Css_next_token(CssParser * parser) i = 0; c = Css_getc(parser); - escaped = false; - while (c != EOF && (escaped || c != c1)) { + while (c != EOF && c != c1) { if (c == '\\') { - escaped = true; d = Css_getc(parser); if (isxdigit(d)) { /* Read hex Unicode char. (Actually, strings are yet only 8 @@ -521,11 +518,11 @@ static void Css_next_token(CssParser * parser) hexbuf[j] = 0; Css_ungetc(parser); c = strtol(hexbuf, NULL, 16); - } else - /* Take next character literally. */ - c = Css_getc(parser); - } else - escaped = false; + } else { + /* Take character literally. */ + c = d; + } + } if (i < MAX_STR_LEN - 1) { parser->tval[i] = c; -- cgit v1.2.3