From 2a486519aa8cb98daf01f1e1eb579c1c1858f245 Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Sat, 27 Jun 2009 12:31:29 +0000 Subject: Fix padding shorthand parser in the face of inherit. Document same fix to margin shorthand parser. svn path=/trunk/libcss/; revision=8049 --- src/parse/properties/margin.c | 1 + src/parse/properties/padding.c | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/src/parse/properties/margin.c b/src/parse/properties/margin.c index 764177e..3479abf 100644 --- a/src/parse/properties/margin.c +++ b/src/parse/properties/margin.c @@ -87,6 +87,7 @@ css_error parse_margin(css_language *c, prev_ctx = *ctx; error = CSS_OK; + /* Ensure that we're not about to parse another inherit */ token = parserutils_vector_peek(vector, *ctx); if (token != NULL && token->type == CSS_TOKEN_IDENT && token->ilower == c->strings[INHERIT]) { diff --git a/src/parse/properties/padding.c b/src/parse/properties/padding.c index d018609..507159d 100644 --- a/src/parse/properties/padding.c +++ b/src/parse/properties/padding.c @@ -87,6 +87,14 @@ css_error parse_padding(css_language *c, prev_ctx = *ctx; error = CSS_OK; + /* Ensure that we're not about to parse another inherit */ + token = parserutils_vector_peek(vector, *ctx); + if (token != NULL && token->type == CSS_TOKEN_IDENT && + token->ilower == c->strings[INHERIT]) { + error = CSS_INVALID; + goto cleanup; + } + if (top == NULL && (error = parse_padding_side(c, vector, ctx, CSS_PROP_PADDING_TOP, &top)) == CSS_OK) { -- cgit v1.2.3