diff options
Diffstat (limited to 'src/parse/important.c')
-rw-r--r-- | src/parse/important.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/parse/important.c b/src/parse/important.c index e0e8620..950fc6a 100644 --- a/src/parse/important.c +++ b/src/parse/important.c @@ -25,10 +25,10 @@ * If the input is invalid, then \a *ctx remains unchanged. */ css_error css__parse_important(css_language *c, - const parserutils_vector *vector, int *ctx, + const parserutils_vector *vector, int32_t *ctx, uint8_t *result) { - int orig_ctx = *ctx; + int32_t orig_ctx = *ctx; bool match = false; const css_token *token; @@ -87,7 +87,10 @@ void css__make_style_important(css_style *style) offset++; /* Advance past any property-specific data */ - if (isInherit(opv) == false) { + if (hasFlagValue(opv) == false && value == VALUE_IS_CALC) { + /* All VALUE_IS_CALC have the form OPV UNIT STRIDX */ + offset += 2; + } else if (hasFlagValue(opv) == false) { switch (op) { case CSS_PROP_AZIMUTH: if ((value & ~AZIMUTH_BEHIND) == AZIMUTH_ANGLE) @@ -346,6 +349,16 @@ void css__make_style_important(css_style *style) offset++; /* value */ break; + case CSS_PROP_FILL_OPACITY: + if (value == FILL_OPACITY_SET) + offset++; /* value */ + break; + + case CSS_PROP_STROKE_OPACITY: + if (value == STROKE_OPACITY_SET) + offset++; /* value */ + break; + case CSS_PROP_ORDER: if (value == ORDER_SET) offset++; /* value */ |