From 46dd17bc8c6dcc1cddf3c8c07644c319ef1f8b03 Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Wed, 1 Jul 2009 15:52:20 +0000 Subject: Fixup parsing of empty inline styles -- previously, it would emit the START_STYLESHEET and START_RULESET events twice. svn path=/trunk/libcss/; revision=8242 --- src/parse/parse.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src/parse') diff --git a/src/parse/parse.c b/src/parse/parse.c index 1e419c9..361ba84 100644 --- a/src/parse/parse.c +++ b/src/parse/parse.c @@ -2385,7 +2385,7 @@ css_error parseMalformedAtRule(css_parser *parser) css_error parseInlineStyle(css_parser *parser) { - enum { Initial = 0, AfterISBody0 = 1 }; + enum { Initial = 0, WS = 1, AfterISBody0 = 2 }; parser_state *state = parserutils_stack_get_current(parser->states); css_error error; @@ -2393,10 +2393,6 @@ css_error parseInlineStyle(css_parser *parser) switch (state->substate) { case Initial: - { - parser_state to = { sISBody0, Initial }; - parser_state subsequent = { sInlineStyle, AfterISBody0 }; - /* Emit fake events such that the language parser knows * no different from a normal parse. */ @@ -2410,6 +2406,14 @@ css_error parseInlineStyle(css_parser *parser) parser->event_pw); } + /* Fall through */ + case WS: + { + parser_state to = { sISBody0, Initial }; + parser_state subsequent = { sInlineStyle, AfterISBody0 }; + + state->substate = WS; + /* Consume leading whitespace */ error = eatWS(parser); if (error != CSS_OK) -- cgit v1.2.3