summaryrefslogtreecommitdiff
path: root/src/parse/language.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/parse/language.c')
-rw-r--r--src/parse/language.c18
1 files changed, 18 insertions, 0 deletions
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;
}