diff options
-rw-r--r-- | src/parse/css21.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/parse/css21.c b/src/parse/css21.c index 5455eb6..a286bd2 100644 --- a/src/parse/css21.c +++ b/src/parse/css21.c @@ -789,7 +789,14 @@ css_error parseSelector(css_css21 *c, const parserutils_vector *vector, const css_token *token = NULL; css_selector *selector = NULL; - /* selector -> simple_selector [ combinator simple_selector ]* */ + /* selector -> simple_selector [ combinator simple_selector ]* ws + * + * Note, however, that, as combinator can be wholly whitespace, + * there's an ambiguity as to whether "ws" has been reached. We + * resolve this by attempting to extract a combinator, then + * recovering when we detect that we've reached the end of the + * selector. + */ error = parseSimpleSelector(c, vector, ctx, &selector); if (error != CSS_OK) |