summaryrefslogtreecommitdiff
path: root/src/parse/properties.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/parse/properties.c')
-rw-r--r--src/parse/properties.c122
1 files changed, 55 insertions, 67 deletions
diff --git a/src/parse/properties.c b/src/parse/properties.c
index 67479dc..c333a17 100644
--- a/src/parse/properties.c
+++ b/src/parse/properties.c
@@ -322,19 +322,19 @@ static inline css_error parse_unit_specifier(css_language *c,
static inline css_error parse_border_side_color(css_language *c,
const parserutils_vector *vector, int *ctx,
- uint16_t side, css_style **result);
+ uint16_t op, css_style **result);
static inline css_error parse_border_side_style(css_language *c,
const parserutils_vector *vector, int *ctx,
- uint16_t side, css_style **result);
+ uint16_t op, css_style **result);
static inline css_error parse_border_side_width(css_language *c,
const parserutils_vector *vector, int *ctx,
- uint16_t side, css_style **result);
+ uint16_t op, css_style **result);
static inline css_error parse_margin_side(css_language *c,
const parserutils_vector *vector, int *ctx,
- uint16_t side, css_style **result);
+ uint16_t op, css_style **result);
static inline css_error parse_padding_side(css_language *c,
const parserutils_vector *vector, int *ctx,
- uint16_t side, css_style **result);
+ uint16_t op, css_style **result);
static inline css_error parse_list_style_type_value(css_language *c,
const css_token *token, uint16_t *value);
static inline css_error parse_content_list(css_language *c,
@@ -973,21 +973,24 @@ css_error parse_border_bottom_color(css_language *c,
const parserutils_vector *vector, int *ctx,
css_style **result)
{
- return parse_border_side_color(c, vector, ctx, SIDE_BOTTOM, result);
+ return parse_border_side_color(c, vector, ctx,
+ OP_BORDER_BOTTOM_COLOR, result);
}
css_error parse_border_bottom_style(css_language *c,
const parserutils_vector *vector, int *ctx,
css_style **result)
{
- return parse_border_side_style(c, vector, ctx, SIDE_BOTTOM, result);
+ return parse_border_side_style(c, vector, ctx,
+ OP_BORDER_BOTTOM_STYLE, result);
}
css_error parse_border_bottom_width(css_language *c,
const parserutils_vector *vector, int *ctx,
css_style **result)
{
- return parse_border_side_width(c, vector, ctx, SIDE_BOTTOM, result);
+ return parse_border_side_width(c, vector, ctx,
+ OP_BORDER_BOTTOM_WIDTH, result);
}
css_error parse_border_collapse(css_language *c,
@@ -1035,42 +1038,48 @@ css_error parse_border_left_color(css_language *c,
const parserutils_vector *vector, int *ctx,
css_style **result)
{
- return parse_border_side_color(c, vector, ctx, SIDE_LEFT, result);
+ return parse_border_side_color(c, vector, ctx,
+ OP_BORDER_LEFT_COLOR, result);
}
css_error parse_border_left_style(css_language *c,
const parserutils_vector *vector, int *ctx,
css_style **result)
{
- return parse_border_side_style(c, vector, ctx, SIDE_LEFT, result);
+ return parse_border_side_style(c, vector, ctx,
+ OP_BORDER_LEFT_STYLE, result);
}
css_error parse_border_left_width(css_language *c,
const parserutils_vector *vector, int *ctx,
css_style **result)
{
- return parse_border_side_width(c, vector, ctx, SIDE_LEFT, result);
+ return parse_border_side_width(c, vector, ctx,
+ OP_BORDER_LEFT_WIDTH, result);
}
css_error parse_border_right_color(css_language *c,
const parserutils_vector *vector, int *ctx,
css_style **result)
{
- return parse_border_side_color(c, vector, ctx, SIDE_RIGHT, result);
+ return parse_border_side_color(c, vector, ctx,
+ OP_BORDER_RIGHT_COLOR, result);
}
css_error parse_border_right_style(css_language *c,
const parserutils_vector *vector, int *ctx,
css_style **result)
{
- return parse_border_side_style(c, vector, ctx, SIDE_RIGHT, result);
+ return parse_border_side_style(c, vector, ctx,
+ OP_BORDER_RIGHT_STYLE, result);
}
css_error parse_border_right_width(css_language *c,
const parserutils_vector *vector, int *ctx,
css_style **result)
{
- return parse_border_side_width(c, vector, ctx, SIDE_RIGHT, result);
+ return parse_border_side_width(c, vector, ctx,
+ OP_BORDER_RIGHT_WIDTH, result);
}
css_error parse_border_spacing(css_language *c,
@@ -1175,21 +1184,24 @@ css_error parse_border_top_color(css_language *c,
const parserutils_vector *vector, int *ctx,
css_style **result)
{
- return parse_border_side_color(c, vector, ctx, SIDE_TOP, result);
+ return parse_border_side_color(c, vector, ctx,
+ OP_BORDER_TOP_COLOR, result);
}
css_error parse_border_top_style(css_language *c,
const parserutils_vector *vector, int *ctx,
css_style **result)
{
- return parse_border_side_style(c, vector, ctx, SIDE_TOP, result);
+ return parse_border_side_style(c, vector, ctx,
+ OP_BORDER_TOP_STYLE, result);
}
css_error parse_border_top_width(css_language *c,
const parserutils_vector *vector, int *ctx,
css_style **result)
{
- return parse_border_side_width(c, vector, ctx, SIDE_TOP, result);
+ return parse_border_side_width(c, vector, ctx,
+ OP_BORDER_TOP_WIDTH, result);
}
css_error parse_bottom(css_language *c,
@@ -3644,28 +3656,28 @@ css_error parse_margin_bottom(css_language *c,
const parserutils_vector *vector, int *ctx,
css_style **result)
{
- return parse_margin_side(c, vector, ctx, SIDE_BOTTOM, result);
+ return parse_margin_side(c, vector, ctx, OP_MARGIN_BOTTOM, result);
}
css_error parse_margin_left(css_language *c,
const parserutils_vector *vector, int *ctx,
css_style **result)
{
- return parse_margin_side(c, vector, ctx, SIDE_LEFT, result);
+ return parse_margin_side(c, vector, ctx, OP_MARGIN_LEFT, result);
}
css_error parse_margin_right(css_language *c,
const parserutils_vector *vector, int *ctx,
css_style **result)
{
- return parse_margin_side(c, vector, ctx, SIDE_RIGHT, result);
+ return parse_margin_side(c, vector, ctx, OP_MARGIN_RIGHT, result);
}
css_error parse_margin_top(css_language *c,
const parserutils_vector *vector, int *ctx,
css_style **result)
{
- return parse_margin_side(c, vector, ctx, SIDE_TOP, result);
+ return parse_margin_side(c, vector, ctx, OP_MARGIN_TOP, result);
}
css_error parse_max_height(css_language *c,
@@ -4062,28 +4074,22 @@ css_error parse_outline_style(css_language *c,
{
css_error error;
uint32_t opv;
- uint8_t flags;
uint16_t value;
- /* Fake as border-left-style */
- error = parse_border_side_style(c, vector, ctx, SIDE_LEFT, result);
+ /* Parse as a border style */
+ error = parse_border_side_style(c, vector, ctx,
+ OP_OUTLINE_STYLE, result);
if (error != CSS_OK)
return error;
- /* Then change the opcode to outline-style, and clear the side bits */
opv = *((uint32_t *) (*result)->bytecode);
- flags = getFlags(opv);
- value = getValue(opv) & ~SIDE_LEFT;
+ value = getValue(opv);
/* Hidden is invalid */
if (value == BORDER_STYLE_HIDDEN)
return CSS_INVALID;
- opv = buildOPV(OP_OUTLINE_STYLE, flags, value);
-
- *((uint32_t *) (*result)->bytecode) = opv;
-
return CSS_OK;
}
@@ -4091,27 +4097,9 @@ css_error parse_outline_width(css_language *c,
const parserutils_vector *vector, int *ctx,
css_style **result)
{
- css_error error;
- uint32_t opv;
- uint8_t flags;
- uint16_t value;
-
- /* Fake as border-left-width */
- error = parse_border_side_width(c, vector, ctx, SIDE_LEFT, result);
- if (error != CSS_OK)
- return error;
-
- /* Then change the opcode to outline-width, and clear the side bits */
- opv = *((uint32_t *) (*result)->bytecode);
-
- flags = getFlags(opv);
- value = getValue(opv) & ~SIDE_LEFT;
-
- opv = buildOPV(OP_OUTLINE_WIDTH, flags, value);
-
- *((uint32_t *) (*result)->bytecode) = opv;
-
- return CSS_OK;
+ /* Parse as border width */
+ return parse_border_side_width(c, vector, ctx,
+ OP_OUTLINE_WIDTH, result);
}
css_error parse_overflow(css_language *c,
@@ -4163,28 +4151,28 @@ css_error parse_padding_bottom(css_language *c,
const parserutils_vector *vector, int *ctx,
css_style **result)
{
- return parse_padding_side(c, vector, ctx, SIDE_BOTTOM, result);
+ return parse_padding_side(c, vector, ctx, OP_PADDING_BOTTOM, result);
}
css_error parse_padding_left(css_language *c,
const parserutils_vector *vector, int *ctx,
css_style **result)
{
- return parse_padding_side(c, vector, ctx, SIDE_LEFT, result);
+ return parse_padding_side(c, vector, ctx, OP_PADDING_LEFT, result);
}
css_error parse_padding_right(css_language *c,
const parserutils_vector *vector, int *ctx,
css_style **result)
{
- return parse_padding_side(c, vector, ctx, SIDE_RIGHT, result);
+ return parse_padding_side(c, vector, ctx, OP_PADDING_RIGHT, result);
}
css_error parse_padding_top(css_language *c,
const parserutils_vector *vector, int *ctx,
css_style **result)
{
- return parse_padding_side(c, vector, ctx, SIDE_TOP, result);
+ return parse_padding_side(c, vector, ctx, OP_PADDING_TOP, result);
}
css_error parse_page_break_after(css_language *c,
@@ -6827,13 +6815,13 @@ css_error parse_unit_specifier(css_language *c,
css_error parse_border_side_color(css_language *c,
const parserutils_vector *vector, int *ctx,
- uint16_t side, css_style **result)
+ uint16_t op, css_style **result)
{
css_error error;
const css_token *token;
+ uint32_t opv;
uint8_t flags = 0;
uint16_t value = 0;
- uint32_t opv;
uint32_t colour = 0;
uint32_t required_size;
@@ -6862,7 +6850,7 @@ css_error parse_border_side_color(css_language *c,
if (error != CSS_OK)
return error;
- opv = buildOPV(OP_BORDER_TRBL_COLOR, flags, value | side);
+ opv = buildOPV(op, flags, value);
required_size = sizeof(opv);
if ((flags & FLAG_INHERIT) == false && value == BORDER_COLOR_SET)
@@ -6885,7 +6873,7 @@ css_error parse_border_side_color(css_language *c,
css_error parse_border_side_style(css_language *c,
const parserutils_vector *vector, int *ctx,
- uint16_t side, css_style **result)
+ uint16_t op, css_style **result)
{
css_error error;
const css_token *ident;
@@ -6928,7 +6916,7 @@ css_error parse_border_side_style(css_language *c,
} else
return CSS_INVALID;
- opv = buildOPV(OP_BORDER_TRBL_STYLE, flags, value | side);
+ opv = buildOPV(op, flags, value);
/* Allocate result */
error = css_stylesheet_style_create(c->sheet, sizeof(opv), result);
@@ -6943,7 +6931,7 @@ css_error parse_border_side_style(css_language *c,
css_error parse_border_side_width(css_language *c,
const parserutils_vector *vector, int *ctx,
- uint16_t side, css_style **result)
+ uint16_t op, css_style **result)
{
css_error error;
const css_token *token;
@@ -6996,7 +6984,7 @@ css_error parse_border_side_width(css_language *c,
if (error != CSS_OK)
return error;
- opv = buildOPV(OP_BORDER_TRBL_WIDTH, flags, value | side);
+ opv = buildOPV(op, flags, value);
required_size = sizeof(opv);
if ((flags & FLAG_INHERIT) == false && value == BORDER_WIDTH_SET)
@@ -7021,7 +7009,7 @@ css_error parse_border_side_width(css_language *c,
css_error parse_margin_side(css_language *c,
const parserutils_vector *vector, int *ctx,
- uint16_t side, css_style **result)
+ uint16_t op, css_style **result)
{
css_error error;
const css_token *token;
@@ -7061,7 +7049,7 @@ css_error parse_margin_side(css_language *c,
if (error != CSS_OK)
return error;
- opv = buildOPV(OP_MARGIN_TRBL, flags, value | side);
+ opv = buildOPV(op, flags, value);
required_size = sizeof(opv);
if ((flags & FLAG_INHERIT) == false && value == MARGIN_SET)
@@ -7086,7 +7074,7 @@ css_error parse_margin_side(css_language *c,
css_error parse_padding_side(css_language *c,
const parserutils_vector *vector, int *ctx,
- uint16_t side, css_style **result)
+ uint16_t op, css_style **result)
{
css_error error;
const css_token *token;
@@ -7126,7 +7114,7 @@ css_error parse_padding_side(css_language *c,
if (error != CSS_OK)
return error;
- opv = buildOPV(OP_PADDING_TRBL, flags, value | side);
+ opv = buildOPV(op, flags, value);
required_size = sizeof(opv);
if ((flags & FLAG_INHERIT) == false && value == PADDING_SET)