From 8819e781762e81d5c1664dc65636845db91982b5 Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Mon, 2 Dec 2013 16:31:29 +0000 Subject: Ensure that element/class/id names in selector details always get their caseless string. --- src/parse/language.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src') diff --git a/src/parse/language.c b/src/parse/language.c index 522c763..ed6d515 100644 --- a/src/parse/language.c +++ b/src/parse/language.c @@ -1000,6 +1000,10 @@ css_error parseClass(css_language *c, const parserutils_vector *vector, qname.ns = NULL; qname.name = token->idata; + /* Ensure lwc insensitive string is available for class names */ + if (lwc__intern_caseless_string(qname.name) != lwc_error_ok) + return CSS_NOMEM; + return css__stylesheet_selector_detail_init(c->sheet, CSS_SELECTOR_CLASS, &qname, detail_value, CSS_SELECTOR_DETAIL_VALUE_STRING, false, specific); @@ -1449,6 +1453,12 @@ css_error parsePseudo(css_language *c, const parserutils_vector *vector, type = CSS_SELECTOR_ELEMENT; + /* Ensure lwc insensitive string is available + * for element names */ + if (lwc__intern_caseless_string( + qname.name) != lwc_error_ok) + return CSS_NOMEM; + detail_value.string = NULL; value_type = CSS_SELECTOR_DETAIL_VALUE_STRING; } else { @@ -1503,6 +1513,10 @@ css_error parseSpecific(css_language *c, qname.ns = NULL; qname.name = token->idata; + /* Ensure lwc insensitive string is available for id names */ + if (lwc__intern_caseless_string(qname.name) != lwc_error_ok) + return CSS_NOMEM; + error = css__stylesheet_selector_detail_init(c->sheet, CSS_SELECTOR_ID, &qname, detail_value, CSS_SELECTOR_DETAIL_VALUE_STRING, false, @@ -1619,6 +1633,10 @@ css_error parseTypeSelector(css_language *c, const parserutils_vector *vector, qname->name = prefix; } + /* Ensure lwc insensitive string is available for element names */ + if (lwc__intern_caseless_string(qname->name) != lwc_error_ok) + return CSS_NOMEM; + return CSS_OK; } -- cgit v1.2.3