/* unpreserved tokens MUST be consumed via start_block() */
g_assert (gtk_css_token_is_preserved (&self->token, NULL));
- gtk_css_token_clear (&self->token);
+ /* Don't consume any tokens at the end of a block */
+ if (!gtk_css_token_is (gtk_css_parser_peek_token (self), GTK_CSS_TOKEN_EOF))
+ gtk_css_token_clear (&self->token);
}
void
else
{
g_array_set_size (self->blocks, self->blocks->len - 1);
- gtk_css_parser_skip (self);
+ if (gtk_css_token_is_preserved (&self->token, NULL))
+ {
+ gtk_css_token_clear (&self->token);
+ }
+ else
+ {
+ gtk_css_parser_start_block (self);
+ gtk_css_parser_end_block (self);
+ }
}
}