summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/Bytecode13
-rw-r--r--include/libcss/computed.h50
-rw-r--r--include/libcss/properties.h18
-rw-r--r--src/bytecode/opcodes.h12
-rw-r--r--src/parse/properties/properties.c3
-rw-r--r--src/parse/properties/properties.h3
-rw-r--r--src/parse/properties/text.c96
-rw-r--r--src/parse/propstrings.c4
-rw-r--r--src/parse/propstrings.h6
-rw-r--r--src/select/dispatch.c8
-rw-r--r--src/select/properties.c65
-rw-r--r--src/select/properties.h8
-rw-r--r--src/select/propget.h39
-rw-r--r--src/select/propset.h40
-rw-r--r--test/data/parse/properties.dat60
-rw-r--r--test/data/parse2/illegal-values.dat69
-rw-r--r--test/data/select/tests1.dat3
-rw-r--r--test/dump.h16
-rw-r--r--test/dump_computed.h35
19 files changed, 126 insertions, 422 deletions
diff --git a/docs/Bytecode b/docs/Bytecode
index 8542744..23d97f6 100644
--- a/docs/Bytecode
+++ b/docs/Bytecode
@@ -940,6 +940,9 @@ Opcodes
1 => right,
2 => center,
3 => justify,
+ 4 => -libcss-left,
+ 5 => -libcss-center,
+ 6 => -libcss-right,
other => Reserved for future expansion.
55 - text-decoration
@@ -1097,13 +1100,5 @@ Opcodes
bits 0-6: 0000000 => auto,
other => rffe.
-63 - -libcss-align
- <value> (14bits) :
- 0 => left,
- 1 => right,
- 2 => center,
- 3 => justify,
- other => Reserved for future expansion.
-
-64-3ff - Reserved for future expansion.
+63-3ff - Reserved for future expansion.
diff --git a/include/libcss/computed.h b/include/libcss/computed.h
index cbda9a1..c7b9c34 100644
--- a/include/libcss/computed.h
+++ b/include/libcss/computed.h
@@ -167,15 +167,14 @@ struct css_computed_style {
* outline_style 4
* position 3
* table_layout 2
- * text_align 3
+ * text_align 4
* text_decoration 5
* text_transform 3
* unicode_bidi 2
* visibility 2
* white_space 3
- * -libcss_align 3
* ---
- * 86 bits
+ * 84 bits
*
* Colours are 32bits of RRGGBBAA
* Dimensions are encoded as a fixed point value + 4 bits of unit data
@@ -233,7 +232,7 @@ struct css_computed_style {
* 1 bit sizeof(ptr) bytes
*
* ___ ___
- * 271 bits 140 + 4sizeof(ptr) bytes
+ * 269 bits 140 + 4sizeof(ptr) bytes
*
* 34 bytes 140 + 4sizeof(ptr) bytes
* ===================
@@ -265,7 +264,7 @@ struct css_computed_style {
* 21 mmmmmccc min-width | clear
* 22 tttttooo padding-top | overflow
* 23 rrrrrppp padding-right | position
- * 24 bbbbbttt padding-bottom | text-align
+ * 24 bbbbb... padding-bottom | <unused>
* 25 lllllttt padding-left | text-transform
* 26 tttttwww text-indent | white-space
* 27 bbbbbbbb background-position
@@ -275,7 +274,7 @@ struct css_computed_style {
* 31 bbbbllll border-bottom-style | border-left-style
* 32 ffffllll font-weight | list-style-type
* 33 oooottuu outline-style | table-layout | unicode-bidi
- * 34 vvllaaa. visibility | list-style-position | -libcss-align | <unused>
+ * 34 vvlltttt visibility | list-style-position | text-align
*/
uint8_t bits[34];
@@ -1766,23 +1765,6 @@ static inline uint8_t css_computed_position(
#undef POSITION_SHIFT
#undef POSITION_INDEX
-#define TEXT_ALIGN_INDEX 23
-#define TEXT_ALIGN_SHIFT 0
-#define TEXT_ALIGN_MASK 0x7
-static inline uint8_t css_computed_text_align(
- const css_computed_style *style)
-{
- uint8_t bits = style->bits[TEXT_ALIGN_INDEX];
- bits &= TEXT_ALIGN_MASK;
- bits >>= TEXT_ALIGN_SHIFT;
-
- /* 3bits: type */
- return bits;
-}
-#undef TEXT_ALIGN_MASK
-#undef TEXT_ALIGN_SHIFT
-#undef TEXT_ALIGN_INDEX
-
#define TEXT_TRANSFORM_INDEX 24
#define TEXT_TRANSFORM_SHIFT 0
#define TEXT_TRANSFORM_MASK 0x7
@@ -2177,21 +2159,21 @@ static inline uint8_t css_computed_list_style_position(
#undef LIST_STYLE_POSITION_SHIFT
#undef LIST_STYLE_POSITION_INDEX
-#define LIBCSS_ALIGN_INDEX 33
-#define LIBCSS_ALIGN_SHIFT 1
-#define LIBCSS_ALIGN_MASK 0xe
-static inline uint8_t css_computed_libcss_align(
+#define TEXT_ALIGN_INDEX 33
+#define TEXT_ALIGN_SHIFT 0
+#define TEXT_ALIGN_MASK 0xf
+static inline uint8_t css_computed_text_align(
const css_computed_style *style)
{
- uint8_t bits = style->bits[LIBCSS_ALIGN_INDEX];
- bits &= LIBCSS_ALIGN_MASK;
- bits >>= LIBCSS_ALIGN_SHIFT;
+ uint8_t bits = style->bits[TEXT_ALIGN_INDEX];
+ bits &= TEXT_ALIGN_MASK;
+ bits >>= TEXT_ALIGN_SHIFT;
- /* 3bits: type */
+ /* 4bits: type */
return bits;
}
-#undef LIBCSS_ALIGN_MASK
-#undef LIBCSS_ALIGN_SHIFT
-#undef LIBCSS_ALIGN_INDEX
+#undef TEXT_ALIGN_MASK
+#undef TEXT_ALIGN_SHIFT
+#undef TEXT_ALIGN_INDEX
#endif
diff --git a/include/libcss/properties.h b/include/libcss/properties.h
index 38b264e..7ec277a 100644
--- a/include/libcss/properties.h
+++ b/include/libcss/properties.h
@@ -109,9 +109,7 @@ enum css_properties_e {
CSS_PROP_WORD_SPACING = 0x061,
CSS_PROP_Z_INDEX = 0x062,
- CSS_PROP_LIBCSS_ALIGN = 0x063,
-
- CSS_N_PROPERTIES = CSS_PROP_LIBCSS_ALIGN + 1
+ CSS_N_PROPERTIES = CSS_PROP_Z_INDEX + 1
};
@@ -512,7 +510,10 @@ enum css_text_align_e {
CSS_TEXT_ALIGN_RIGHT = 0x2,
CSS_TEXT_ALIGN_CENTER = 0x3,
CSS_TEXT_ALIGN_JUSTIFY = 0x4,
- CSS_TEXT_ALIGN_DEFAULT = 0x5
+ CSS_TEXT_ALIGN_DEFAULT = 0x5,
+ CSS_TEXT_ALIGN_LIBCSS_LEFT = 0x6,
+ CSS_TEXT_ALIGN_LIBCSS_CENTER = 0x7,
+ CSS_TEXT_ALIGN_LIBCSS_RIGHT = 0x8
};
enum css_text_decoration_e {
@@ -597,13 +598,4 @@ enum css_z_index_e {
CSS_Z_INDEX_AUTO = 0x2
};
-enum css_libcss_align_e {
- CSS_LIBCSS_ALIGN_INHERIT = 0x0,
- CSS_LIBCSS_ALIGN_LEFT = 0x1,
- CSS_LIBCSS_ALIGN_RIGHT = 0x2,
- CSS_LIBCSS_ALIGN_CENTER = 0x3,
- CSS_LIBCSS_ALIGN_JUSTIFY = 0x4,
- CSS_LIBCSS_ALIGN_DEFAULT = 0x5
-};
-
#endif
diff --git a/src/bytecode/opcodes.h b/src/bytecode/opcodes.h
index f583537..3fad172 100644
--- a/src/bytecode/opcodes.h
+++ b/src/bytecode/opcodes.h
@@ -522,7 +522,10 @@ enum op_text_align {
TEXT_ALIGN_LEFT = 0x0000,
TEXT_ALIGN_RIGHT = 0x0001,
TEXT_ALIGN_CENTER = 0x0002,
- TEXT_ALIGN_JUSTIFY = 0x0003
+ TEXT_ALIGN_JUSTIFY = 0x0003,
+ TEXT_ALIGN_LIBCSS_LEFT = 0x0004,
+ TEXT_ALIGN_LIBCSS_CENTER = 0x0005,
+ TEXT_ALIGN_LIBCSS_RIGHT = 0x0006
};
enum op_text_decoration {
@@ -628,12 +631,5 @@ enum op_z_index {
Z_INDEX_AUTO = 0x0000
};
-enum op_libcss_align {
- LIBCSS_ALIGN_LEFT = 0x0000,
- LIBCSS_ALIGN_RIGHT = 0x0001,
- LIBCSS_ALIGN_CENTER = 0x0002,
- LIBCSS_ALIGN_JUSTIFY = 0x0003
-};
-
#endif
diff --git a/src/parse/properties/properties.c b/src/parse/properties/properties.c
index 0cde6c6..79ad1a5 100644
--- a/src/parse/properties/properties.c
+++ b/src/parse/properties/properties.c
@@ -126,7 +126,6 @@ const css_prop_handler property_handlers[LAST_PROP + 1 - FIRST_PROP] =
parse_widows,
parse_width,
parse_word_spacing,
- parse_z_index,
- parse_libcss_align
+ parse_z_index
};
diff --git a/src/parse/properties/properties.h b/src/parse/properties/properties.h
index dd96ac3..0dc750a 100644
--- a/src/parse/properties/properties.h
+++ b/src/parse/properties/properties.h
@@ -367,9 +367,6 @@ css_error parse_word_spacing(css_language *c,
css_error parse_z_index(css_language *c,
const parserutils_vector *vector, int *ctx,
css_style **result);
-css_error parse_libcss_align(css_language *c,
- const parserutils_vector *vector, int *ctx,
- css_style **result);
#endif
diff --git a/src/parse/properties/text.c b/src/parse/properties/text.c
index d3c81b5..45b9b5a 100644
--- a/src/parse/properties/text.c
+++ b/src/parse/properties/text.c
@@ -273,7 +273,8 @@ css_error parse_text_align(css_language *c,
uint32_t opv;
bool match;
- /* IDENT (left, right, center, justify, inherit) */
+ /* IDENT (left, right, center, justify, -libcss-left, -libcss-center,
+ * -libcss-right, inherit) */
ident = parserutils_vector_iterate(vector, ctx);
if (ident == NULL || ident->type != CSS_TOKEN_IDENT) {
*ctx = orig_ctx;
@@ -305,6 +306,21 @@ css_error parse_text_align(css_language *c,
ident->idata, c->strings[JUSTIFY],
&match) == lwc_error_ok && match)) {
value = TEXT_ALIGN_JUSTIFY;
+ } else if ((lwc_context_string_caseless_isequal(
+ c->sheet->dictionary,
+ ident->idata, c->strings[LIBCSS_LEFT],
+ &match) == lwc_error_ok && match)) {
+ value = TEXT_ALIGN_LIBCSS_LEFT;
+ } else if ((lwc_context_string_caseless_isequal(
+ c->sheet->dictionary,
+ ident->idata, c->strings[LIBCSS_CENTER],
+ &match) == lwc_error_ok && match)) {
+ value = TEXT_ALIGN_LIBCSS_CENTER;
+ } else if ((lwc_context_string_caseless_isequal(
+ c->sheet->dictionary,
+ ident->idata, c->strings[LIBCSS_RIGHT],
+ &match) == lwc_error_ok && match)) {
+ value = TEXT_ALIGN_LIBCSS_RIGHT;
} else {
*ctx = orig_ctx;
return CSS_INVALID;
@@ -850,81 +866,3 @@ css_error parse_word_spacing(css_language *c,
return CSS_OK;
}
-/**
- * Parse -libcss-align
- *
- * \param c Parsing context
- * \param vector Vector of tokens to process
- * \param ctx Pointer to vector iteration context
- * \param result Pointer to location to receive resulting style
- * \return CSS_OK on success,
- * CSS_NOMEM on memory exhaustion,
- * CSS_INVALID if the input is not valid
- *
- * Post condition: \a *ctx is updated with the next token to process
- * If the input is invalid, then \a *ctx remains unchanged.
- */
-css_error parse_libcss_align(css_language *c,
- const parserutils_vector *vector, int *ctx,
- css_style **result)
-{
- int orig_ctx = *ctx;
- css_error error;
- const css_token *ident;
- uint8_t flags = 0;
- uint16_t value = 0;
- uint32_t opv;
- bool match;
-
- /* IDENT (left, right, center, justify, inherit) */
- ident = parserutils_vector_iterate(vector, ctx);
- if (ident == NULL || ident->type != CSS_TOKEN_IDENT) {
- *ctx = orig_ctx;
- return CSS_INVALID;
- }
-
- if ((lwc_context_string_caseless_isequal(
- c->sheet->dictionary,
- ident->idata, c->strings[INHERIT],
- &match) == lwc_error_ok && match)) {
- flags |= FLAG_INHERIT;
- } else if ((lwc_context_string_caseless_isequal(
- c->sheet->dictionary,
- ident->idata, c->strings[LEFT],
- &match) == lwc_error_ok && match)) {
- value = LIBCSS_ALIGN_LEFT;
- } else if ((lwc_context_string_caseless_isequal(
- c->sheet->dictionary,
- ident->idata, c->strings[RIGHT],
- &match) == lwc_error_ok && match)) {
- value = LIBCSS_ALIGN_RIGHT;
- } else if ((lwc_context_string_caseless_isequal(
- c->sheet->dictionary,
- ident->idata, c->strings[CENTER],
- &match) == lwc_error_ok && match)) {
- value = LIBCSS_ALIGN_CENTER;
- } else if ((lwc_context_string_caseless_isequal(
- c->sheet->dictionary,
- ident->idata, c->strings[JUSTIFY],
- &match) == lwc_error_ok && match)) {
- value = LIBCSS_ALIGN_JUSTIFY;
- } else {
- *ctx = orig_ctx;
- return CSS_INVALID;
- }
-
- opv = buildOPV(CSS_PROP_LIBCSS_ALIGN, flags, value);
-
- /* Allocate result */
- error = css_stylesheet_style_create(c->sheet, sizeof(opv), result);
- if (error != CSS_OK) {
- *ctx = orig_ctx;
- return error;
- }
-
- /* Copy the bytecode to it */
- memcpy((*result)->bytecode, &opv, sizeof(opv));
-
- return CSS_OK;
-}
-
diff --git a/src/parse/propstrings.c b/src/parse/propstrings.c
index 28a1189..699b750 100644
--- a/src/parse/propstrings.c
+++ b/src/parse/propstrings.c
@@ -157,7 +157,6 @@ const stringmap_entry stringmap[LAST_KNOWN] = {
{ "width", SLEN("width") },
{ "word-spacing", SLEN("word-spacing") },
{ "z-index", SLEN("z-index") },
- { "-libcss-align", SLEN("-libcss-align") },
{ "inherit", SLEN("inherit") },
{ "important", SLEN("important") },
@@ -331,6 +330,9 @@ const stringmap_entry stringmap[LAST_KNOWN] = {
{ "line-through", SLEN("line-through") },
{ "blink", SLEN("blink") },
{ "rgb", SLEN("rgb") },
+ { "-libcss-left", SLEN("-libcss-left") },
+ { "-libcss-center", SLEN("-libcss-center") },
+ { "-libcss-right", SLEN("-libcss-right") },
{ "aliceblue", SLEN("aliceblue") },
{ "antiquewhite", SLEN("antiquewhite") },
diff --git a/src/parse/propstrings.h b/src/parse/propstrings.h
index fe125cc..f33fe78 100644
--- a/src/parse/propstrings.h
+++ b/src/parse/propstrings.h
@@ -55,9 +55,9 @@ enum {
SPEAK_PUNCTUATION, SPEAK, SPEECH_RATE, STRESS, TABLE_LAYOUT,
TEXT_ALIGN, TEXT_DECORATION, TEXT_INDENT, TEXT_TRANSFORM, TOP,
UNICODE_BIDI, VERTICAL_ALIGN, VISIBILITY, VOICE_FAMILY, VOLUME,
- WHITE_SPACE, WIDOWS, WIDTH, WORD_SPACING, Z_INDEX, LIBCSS_ALIGN,
+ WHITE_SPACE, WIDOWS, WIDTH, WORD_SPACING, Z_INDEX,
- LAST_PROP = LIBCSS_ALIGN,
+ LAST_PROP = Z_INDEX,
/* Other keywords */
INHERIT, IMPORTANT, NONE, BOTH, FIXED, SCROLL, TRANSPARENT,
@@ -84,7 +84,7 @@ enum {
NE_RESIZE, NW_RESIZE, N_RESIZE, SE_RESIZE, SW_RESIZE, S_RESIZE,
W_RESIZE, TEXT, WAIT, HELP, PROGRESS, SERIF, SANS_SERIF, CURSIVE,
FANTASY, MONOSPACE, MALE, FEMALE, CHILD, MIX, UNDERLINE, OVERLINE,
- LINE_THROUGH, BLINK, RGB,
+ LINE_THROUGH, BLINK, RGB, LIBCSS_LEFT, LIBCSS_CENTER, LIBCSS_RIGHT,
/* Named colours */
FIRST_COLOUR,
diff --git a/src/select/dispatch.c b/src/select/dispatch.c
index 11345e2..c15465b 100644
--- a/src/select/dispatch.c
+++ b/src/select/dispatch.c
@@ -803,13 +803,5 @@ struct prop_table prop_dispatch[CSS_N_PROPERTIES] = {
compose_z_index,
0,
GROUP_NORMAL
- },
- {
- cascade_libcss_align,
- set_libcss_align_from_hint,
- initial_libcss_align,
- compose_libcss_align,
- 1,
- GROUP_NORMAL
}
};
diff --git a/src/select/properties.c b/src/select/properties.c
index b83a29d..9ca9d9f 100644
--- a/src/select/properties.c
+++ b/src/select/properties.c
@@ -4639,6 +4639,15 @@ css_error cascade_text_align(uint32_t opv, css_style *style,
case TEXT_ALIGN_JUSTIFY:
value = CSS_TEXT_ALIGN_JUSTIFY;
break;
+ case TEXT_ALIGN_LIBCSS_LEFT:
+ value = CSS_TEXT_ALIGN_LIBCSS_LEFT;
+ break;
+ case TEXT_ALIGN_LIBCSS_CENTER:
+ value = CSS_TEXT_ALIGN_LIBCSS_CENTER;
+ break;
+ case TEXT_ALIGN_LIBCSS_RIGHT:
+ value = CSS_TEXT_ALIGN_LIBCSS_RIGHT;
+ break;
}
}
@@ -5452,62 +5461,6 @@ css_error compose_z_index(const css_computed_style *parent,
return set_z_index(result, type, index);
}
-css_error cascade_libcss_align(uint32_t opv, css_style *style,
- css_select_state *state)
-{
- uint16_t value = CSS_LIBCSS_ALIGN_INHERIT;
-
- UNUSED(style);
-
- if (isInherit(opv) == false) {
- switch (getValue(opv)) {
- case LIBCSS_ALIGN_LEFT:
- value = CSS_LIBCSS_ALIGN_LEFT;
- break;
- case LIBCSS_ALIGN_RIGHT:
- value = CSS_LIBCSS_ALIGN_RIGHT;
- break;
- case LIBCSS_ALIGN_CENTER:
- value = CSS_LIBCSS_ALIGN_CENTER;
- break;
- case LIBCSS_ALIGN_JUSTIFY:
- value = CSS_LIBCSS_ALIGN_JUSTIFY;
- break;
- }
- }
-
- if (outranks_existing(getOpcode(opv), isImportant(opv), state,
- isInherit(opv))) {
- return set_libcss_align(state->result, value);
- }
-
- return CSS_OK;
-}
-
-css_error set_libcss_align_from_hint(const css_hint *hint,
- css_computed_style *style)
-{
- return set_libcss_align(style, hint->status);
-}
-
-css_error initial_libcss_align(css_select_state *state)
-{
- return set_libcss_align(state->result, CSS_LIBCSS_ALIGN_DEFAULT);
-}
-
-css_error compose_libcss_align(const css_computed_style *parent,
- const css_computed_style *child,
- css_computed_style *result)
-{
- uint8_t type = get_libcss_align(child);
-
- if (type == CSS_LIBCSS_ALIGN_INHERIT) {
- type = get_libcss_align(parent);
- }
-
- return set_libcss_align(result, type);
-}
-
/******************************************************************************
* Utilities below here *
******************************************************************************/
diff --git a/src/select/properties.h b/src/select/properties.h
index 75b6f8d..9c98e10 100644
--- a/src/select/properties.h
+++ b/src/select/properties.h
@@ -806,14 +806,6 @@ css_error initial_z_index(css_select_state *state);
css_error compose_z_index(const css_computed_style *parent,
const css_computed_style *child,
css_computed_style *result);
-css_error cascade_libcss_align(uint32_t opv, css_style *style,
- css_select_state *state);
-css_error set_libcss_align_from_hint(const css_hint *hint,
- css_computed_style *style);
-css_error initial_libcss_align(css_select_state *state);
-css_error compose_libcss_align(const css_computed_style *parent,
- const css_computed_style *child,
- css_computed_style *result);
#endif
diff --git a/src/select/propget.h b/src/select/propget.h
index 39f6300..bf59e87 100644
--- a/src/select/propget.h
+++ b/src/select/propget.h
@@ -1310,23 +1310,6 @@ static inline uint8_t get_position(
#undef POSITION_SHIFT
#undef POSITION_INDEX
-#define TEXT_ALIGN_INDEX 23
-#define TEXT_ALIGN_SHIFT 0
-#define TEXT_ALIGN_MASK 0x7
-static inline uint8_t get_text_align(
- const css_computed_style *style)
-{
- uint8_t bits = style->bits[TEXT_ALIGN_INDEX];
- bits &= TEXT_ALIGN_MASK;
- bits >>= TEXT_ALIGN_SHIFT;
-
- /* 3bits: type */
- return bits;
-}
-#undef TEXT_ALIGN_MASK
-#undef TEXT_ALIGN_SHIFT
-#undef TEXT_ALIGN_INDEX
-
#define TEXT_TRANSFORM_INDEX 24
#define TEXT_TRANSFORM_SHIFT 0
#define TEXT_TRANSFORM_MASK 0x7
@@ -1721,21 +1704,21 @@ static inline uint8_t get_list_style_position(
#undef LIST_STYLE_POSITION_SHIFT
#undef LIST_STYLE_POSITION_INDEX
-#define LIBCSS_ALIGN_INDEX 33
-#define LIBCSS_ALIGN_SHIFT 1
-#define LIBCSS_ALIGN_MASK 0xe
-static inline uint8_t get_libcss_align(
+#define TEXT_ALIGN_INDEX 33
+#define TEXT_ALIGN_SHIFT 0
+#define TEXT_ALIGN_MASK 0xf
+static inline uint8_t get_text_align(
const css_computed_style *style)
{
- uint8_t bits = style->bits[LIBCSS_ALIGN_INDEX];
- bits &= LIBCSS_ALIGN_MASK;
- bits >>= LIBCSS_ALIGN_SHIFT;
+ uint8_t bits = style->bits[TEXT_ALIGN_INDEX];
+ bits &= TEXT_ALIGN_MASK;
+ bits >>= TEXT_ALIGN_SHIFT;
- /* 3bits: type */
+ /* 4bits: type */
return bits;
}
-#undef LIBCSS_ALIGN_MASK
-#undef LIBCSS_ALIGN_SHIFT
-#undef LIBCSS_ALIGN_INDEX
+#undef TEXT_ALIGN_MASK
+#undef TEXT_ALIGN_SHIFT
+#undef TEXT_ALIGN_INDEX
#endif
diff --git a/src/select/propset.h b/src/select/propset.h
index cc4121a..69dba45 100644
--- a/src/select/propset.h
+++ b/src/select/propset.h
@@ -1290,24 +1290,6 @@ static inline css_error set_position(
#undef POSITION_SHIFT
#undef POSITION_INDEX
-#define TEXT_ALIGN_INDEX 23
-#define TEXT_ALIGN_SHIFT 0
-#define TEXT_ALIGN_MASK 0x7
-static inline css_error set_text_align(
- css_computed_style *style, uint8_t type)
-{
- uint8_t *bits = &style->bits[TEXT_ALIGN_INDEX];
-
- /* 3bits: type */
- *bits = (*bits & ~TEXT_ALIGN_MASK) |
- ((type & 0x7) << TEXT_ALIGN_SHIFT);
-
- return CSS_OK;
-}
-#undef TEXT_ALIGN_MASK
-#undef TEXT_ALIGN_SHIFT
-#undef TEXT_ALIGN_INDEX
-
#define TEXT_TRANSFORM_INDEX 24
#define TEXT_TRANSFORM_SHIFT 0
#define TEXT_TRANSFORM_MASK 0x7
@@ -1679,22 +1661,22 @@ static inline css_error set_list_style_position(
#undef LIST_STYLE_POSITION_SHIFT
#undef LIST_STYLE_POSITION_INDEX
-#define LIBCSS_ALIGN_INDEX 33
-#define LIBCSS_ALIGN_SHIFT 1
-#define LIBCSS_ALIGN_MASK 0xe
-static inline uint8_t set_libcss_align(
+#define TEXT_ALIGN_INDEX 33
+#define TEXT_ALIGN_SHIFT 0
+#define TEXT_ALIGN_MASK 0xf
+static inline uint8_t set_text_align(
css_computed_style *style, uint8_t type)
{
- uint8_t *bits = &style->bits[LIBCSS_ALIGN_INDEX];
+ uint8_t *bits = &style->bits[TEXT_ALIGN_INDEX];
- /* 3bits: type */
- *bits = (*bits & ~LIBCSS_ALIGN_MASK) |
- ((type & 0x7) << LIBCSS_ALIGN_SHIFT);
+ /* 4bits: type */
+ *bits = (*bits & ~TEXT_ALIGN_MASK) |
+ ((type & 0xf) << TEXT_ALIGN_SHIFT);
return CSS_OK;
}
-#undef LIBCSS_ALIGN_MASK
-#undef LIBCSS_ALIGN_SHIFT
-#undef LIBCSS_ALIGN_INDEX
+#undef TEXT_ALIGN_MASK
+#undef TEXT_ALIGN_SHIFT
+#undef TEXT_ALIGN_INDEX
#endif
diff --git a/test/data/parse/properties.dat b/test/data/parse/properties.dat
index 3e872d9..2240a38 100644
--- a/test/data/parse/properties.dat
+++ b/test/data/parse/properties.dat
@@ -3167,6 +3167,30 @@ p:before { content: open-quote url('http://picodrive.acornarcade.com/') " : " at
| 0x000c0054
#reset
+#data
+* { text-align: -libcss-left; }
+#errors
+#expected
+| 1 *
+| 0x00100054
+#reset
+
+#data
+* { text-align: -libcss-center; }
+#errors
+#expected
+| 1 *
+| 0x00140054
+#reset
+
+#data
+* { text-align: -libcss-right; }
+#errors
+#expected
+| 1 *
+| 0x00180054
+#reset
+
##
## 55 - text-decoration
##
@@ -3744,39 +3768,3 @@ p:before { content: open-quote url('http://picodrive.acornarcade.com/') " : " at
| 0x02000062 0xfffffc00
#reset
-##
-## 63 - -libcss-align
-##
-
-#data
-* { -libcss-align: left; }
-#errors
-#expected
-| 1 *
-| 0x00000063
-#reset
-
-#data
-* { -libcss-align: right; }
-#errors
-#expected
-| 1 *
-| 0x00040063
-#reset
-
-#data
-* { -libcss-align: center; }
-#errors
-#expected
-| 1 *
-| 0x00080063
-#reset
-
-#data
-* { -libcss-align: justify; }
-#errors
-#expected
-| 1 *
-| 0x000c0063
-#reset
-
diff --git a/test/data/parse2/illegal-values.dat b/test/data/parse2/illegal-values.dat
index 5518ca6..b882328 100644
--- a/test/data/parse2/illegal-values.dat
+++ b/test/data/parse2/illegal-values.dat
@@ -4524,73 +4524,4 @@ max-height: 30%; min-height: 2em; }
| *
#reset
-#data
-* { -libcss-align: none 0; }
-#errors
-#expected
-| *
-#reset
-
-#data
-* { -libcss-align: 0pt; }
-#errors
-#expected
-| *
-#reset
-
-#data
-* { -libcss-align: -0pt; }
-#errors
-#expected
-| *
-#reset
-
-#data
-* { -libcss-align: fixed inherit; }
-#errors
-#expected
-| *
-#reset
-
-#data
-* { -libcss-align: left right; }
-#errors
-#expected
-| *
-#reset
-
-#data
-* { -libcss-align: left, right; }
-#errors
-#expected
-| *
-#reset
-
-#data
-* { -libcss-align: left | right; }
-#errors
-#expected
-| *
-#reset
-
-#data
-* { -libcss-align: justified; }
-#errors
-#expected
-| *
-#reset
-
-#data
-* { -libcss-align: center 50%; }
-#errors
-#expected
-| *
-#reset
-
-#data
-* { -libcss-align: 50%; }
-#errors
-#expected
-| *
-#reset
diff --git a/test/data/select/tests1.dat b/test/data/select/tests1.dat
index 35b5e61..163e611 100644
--- a/test/data/select/tests1.dat
+++ b/test/data/select/tests1.dat
@@ -303,7 +303,6 @@ white-space: normal
width: auto
word-spacing: normal
z-index: auto
--libcss-align: default
#reset
#tree all
@@ -389,7 +388,6 @@ white-space: normal
width: auto
word-spacing: normal
z-index: auto
--libcss-align: default
#reset
#tree
@@ -539,6 +537,5 @@ white-space: normal
width: auto
word-spacing: normal
z-index: auto
--libcss-align: default
#reset
diff --git a/test/dump.h b/test/dump.h
index 5352ce3..0422b18 100644
--- a/test/dump.h
+++ b/test/dump.h
@@ -1952,13 +1952,6 @@ void dump_bytecode(css_style *style, char **ptr, uint32_t depth)
}
break;
case CSS_PROP_TEXT_ALIGN:
- case CSS_PROP_LIBCSS_ALIGN:
- assert(LIBCSS_ALIGN_LEFT == TEXT_ALIGN_LEFT);
- assert(LIBCSS_ALIGN_RIGHT == TEXT_ALIGN_RIGHT);
- assert(LIBCSS_ALIGN_CENTER ==
- TEXT_ALIGN_CENTER);
- assert(LIBCSS_ALIGN_JUSTIFY ==
- TEXT_ALIGN_JUSTIFY);
switch (value) {
case TEXT_ALIGN_LEFT:
*ptr += sprintf(*ptr, "left");
@@ -1972,6 +1965,15 @@ void dump_bytecode(css_style *style, char **ptr, uint32_t depth)
case TEXT_ALIGN_JUSTIFY:
*ptr += sprintf(*ptr, "justify");
break;
+ case TEXT_ALIGN_LIBCSS_LEFT:
+ *ptr += sprintf(*ptr, "-libcss-left");
+ break;
+ case TEXT_ALIGN_LIBCSS_CENTER:
+ *ptr += sprintf(*ptr, "-libcss-center");
+ break;
+ case TEXT_ALIGN_LIBCSS_RIGHT:
+ *ptr += sprintf(*ptr, "-libcss-right");
+ break;
}
break;
case CSS_PROP_TEXT_DECORATION:
diff --git a/test/dump_computed.h b/test/dump_computed.h
index 551830a..d6a45ba 100644
--- a/test/dump_computed.h
+++ b/test/dump_computed.h
@@ -1965,6 +1965,15 @@ static void dump_computed_style(const css_computed_style *style, char *buf,
case CSS_TEXT_ALIGN_DEFAULT:
wrote = snprintf(ptr, *len, "text-align: default\n");
break;
+ case CSS_TEXT_ALIGN_LIBCSS_LEFT:
+ wrote = snprintf(ptr, *len, "text-align: -libcss-left\n");
+ break;
+ case CSS_TEXT_ALIGN_LIBCSS_CENTER:
+ wrote = snprintf(ptr, *len, "text-align: -libcss-center\n");
+ break;
+ case CSS_TEXT_ALIGN_LIBCSS_RIGHT:
+ wrote = snprintf(ptr, *len, "text-align: -libcss-right\n");
+ break;
default:
wrote = 0;
break;
@@ -2247,31 +2256,5 @@ static void dump_computed_style(const css_computed_style *style, char *buf,
}
ptr += wrote;
*len -= wrote;
-
- /* -libcss-align */
- val = css_computed_libcss_align(style);
- switch (val) {
- case CSS_LIBCSS_ALIGN_LEFT:
- wrote = snprintf(ptr, *len, "-libcss-align: left\n");
- break;
- case CSS_LIBCSS_ALIGN_RIGHT:
- wrote = snprintf(ptr, *len, "-libcss-align: right\n");
- break;
- case CSS_LIBCSS_ALIGN_CENTER:
- wrote = snprintf(ptr, *len, "-libcss-align: center\n");
- break;
- case CSS_LIBCSS_ALIGN_JUSTIFY:
- wrote = snprintf(ptr, *len, "-libcss-align: justify\n");
- break;
- case CSS_LIBCSS_ALIGN_DEFAULT:
- wrote = snprintf(ptr, *len, "-libcss-align: default\n");
- break;
- default:
- wrote = 0;
- break;
- }
- ptr += wrote;
- *len -= wrote;
-
}