summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/Bytecode40
-rw-r--r--include/libcss/computed.h25
-rw-r--r--include/libcss/properties.h39
-rw-r--r--src/bytecode/opcodes.h39
-rw-r--r--src/parse/properties/utils.c139
-rw-r--r--src/parse/propstrings.c1165
-rw-r--r--src/parse/propstrings.h7
-rw-r--r--src/select/Makefile2
-rw-r--r--src/select/autogenerated_computed.h82
-rw-r--r--src/select/autogenerated_propget.h484
-rw-r--r--src/select/autogenerated_propset.h484
-rw-r--r--src/select/format_list_style.c1229
-rw-r--r--src/select/helpers.h51
-rw-r--r--src/select/mq.h3
-rw-r--r--src/select/properties/helpers.c39
-rw-r--r--src/select/properties/helpers.h4
-rw-r--r--src/select/properties/list_style_type.c112
-rw-r--r--src/select/select_config.py2
18 files changed, 2723 insertions, 1223 deletions
diff --git a/docs/Bytecode b/docs/Bytecode
index 880ccbd..d691923 100644
--- a/docs/Bytecode
+++ b/docs/Bytecode
@@ -342,11 +342,9 @@ Opcodes
bits 0-6: 0000000 => string,
0000001 => uri,
0000010 => counter,
- bits 12-13: MBZ
- bits 8-11 : list-style-type
+ bits 8-13 : list-style-type
0000011 => counters,
- bits 12-13: MBZ
- bits 8-11 : list-style-type
+ bits 8-13 : list-style-type
0000100 => attr,
other => rffe.
bit 7 clear => keywords:
@@ -646,22 +644,24 @@ Opcodes
2f - list-style-type
<value> (14bits) :
- 0 => disc,
- 1 => circle,
- 2 => square,
- 3 => decimal,
- 4 => decimal-leading-zero,
- 5 => lower-roman,
- 6 => upper-roman,
- 7 => lower-greek,
- 8 => lower-latin,
- 9 => upper-latin,
- a => armenian,
- b => georgian,
- c => lower-alpha,
- d => upper-alpha,
- e => none,
- other => Reserved for future expansion.
+ bits 6-13: MBZ
+ bits 0-5 :
+ 0 => disc,
+ 1 => circle,
+ 2 => square,
+ 3 => decimal,
+ 4 => decimal-leading-zero,
+ 5 => lower-roman,
+ 6 => upper-roman,
+ 7 => lower-greek,
+ 8 => lower-latin,
+ 9 => upper-latin,
+ a => armenian,
+ b => georgian,
+ c => lower-alpha,
+ d => upper-alpha,
+ e => none,
+ other => Reserved for future expansion.
30 - margin-top
31 - margin-right
diff --git a/include/libcss/computed.h b/include/libcss/computed.h
index af40abf..f4b3e21 100644
--- a/include/libcss/computed.h
+++ b/include/libcss/computed.h
@@ -88,7 +88,30 @@ css_error css_computed_style_compose(
css_computed_style **restrict result);
/******************************************************************************
- * Property accessors below here *
+ * speciality formatters *
+ ******************************************************************************/
+
+/**
+ * Format a value into a text string controled by a list style
+ *
+ * \param[in] style The computed style to use for formatting
+ * \param[in] value The value to format
+ * \param[out] buffer The buffer to recive the formatted result
+ * \param[in] buffer_length The length of the buffer
+ * \param[out] format_length The complete length of the formatted result which
+ * may exceed buffer_length in which case the
+ * buffer data will not be complete.
+ * \return CSS_OK on success and the buffer and format_length updated
+ */
+css_error css_computed_format_list_style(
+ const css_computed_style *style,
+ int value,
+ char *buffer,
+ size_t buffer_length,
+ size_t *format_length);
+
+/******************************************************************************
+ * Property accessors *
******************************************************************************/
uint8_t css_computed_letter_spacing(
diff --git a/include/libcss/properties.h b/include/libcss/properties.h
index 577bed0..ae00551 100644
--- a/include/libcss/properties.h
+++ b/include/libcss/properties.h
@@ -606,7 +606,44 @@ enum css_list_style_type_e {
CSS_LIST_STYLE_TYPE_GEORGIAN = 0xc,
CSS_LIST_STYLE_TYPE_LOWER_ALPHA = 0xd,
CSS_LIST_STYLE_TYPE_UPPER_ALPHA = 0xe,
- CSS_LIST_STYLE_TYPE_NONE = 0xf
+ CSS_LIST_STYLE_TYPE_NONE = 0xf,
+ CSS_LIST_STYLE_TYPE_BINARY = 0x10,
+ CSS_LIST_STYLE_TYPE_OCTAL = 0x11,
+ CSS_LIST_STYLE_TYPE_LOWER_HEXADECIMAL = 0x12,
+ CSS_LIST_STYLE_TYPE_UPPER_HEXADECIMAL = 0x13,
+ CSS_LIST_STYLE_TYPE_ARABIC_INDIC = 0x14,
+ CSS_LIST_STYLE_TYPE_LOWER_ARMENIAN = 0x15,
+ CSS_LIST_STYLE_TYPE_UPPER_ARMENIAN = 0x16,
+ CSS_LIST_STYLE_TYPE_BENGALI = 0x17,
+ CSS_LIST_STYLE_TYPE_CAMBODIAN = 0x18,
+ CSS_LIST_STYLE_TYPE_KHMER = 0x19,
+ CSS_LIST_STYLE_TYPE_CJK_DECIMAL = 0x1a,
+ CSS_LIST_STYLE_TYPE_DEVANAGARI = 0x1b,
+ CSS_LIST_STYLE_TYPE_GUJARATI = 0x1c,
+ CSS_LIST_STYLE_TYPE_GURMUKHI = 0x1d,
+ CSS_LIST_STYLE_TYPE_HEBREW = 0x1e,
+ CSS_LIST_STYLE_TYPE_KANNADA = 0x1f,
+ CSS_LIST_STYLE_TYPE_LAO = 0x20,
+ CSS_LIST_STYLE_TYPE_MALAYALAM = 0x21,
+ CSS_LIST_STYLE_TYPE_MONGOLIAN = 0x22,
+ CSS_LIST_STYLE_TYPE_MYANMAR = 0x23,
+ CSS_LIST_STYLE_TYPE_ORIYA = 0x24,
+ CSS_LIST_STYLE_TYPE_PERSIAN = 0x25,
+ CSS_LIST_STYLE_TYPE_TAMIL = 0x26,
+ CSS_LIST_STYLE_TYPE_TELUGU = 0x27,
+ CSS_LIST_STYLE_TYPE_THAI = 0x28,
+ CSS_LIST_STYLE_TYPE_TIBETAN = 0x29,
+ CSS_LIST_STYLE_TYPE_CJK_EARTHLY_BRANCH = 0x2a,
+ CSS_LIST_STYLE_TYPE_CJK_HEAVENLY_STEM = 0x2b,
+ CSS_LIST_STYLE_TYPE_HIAGANA = 0x2c,
+ CSS_LIST_STYLE_TYPE_HIAGANA_IROHA = 0x2d,
+ CSS_LIST_STYLE_TYPE_KATAKANA = 0x2e,
+ CSS_LIST_STYLE_TYPE_KATAKANA_IROHA = 0x2f,
+ CSS_LIST_STYLE_TYPE_JAPANESE_INFORMAL = 0x30,
+ CSS_LIST_STYLE_TYPE_JAPANESE_FORMAL = 0x31,
+ CSS_LIST_STYLE_TYPE_KOREAN_HANGUL_FORMAL = 0x32,
+ CSS_LIST_STYLE_TYPE_KOREAN_HANJA_INFORMAL = 0x33,
+ CSS_LIST_STYLE_TYPE_KOREAN_HANJA_FORMAL = 0x34
};
enum css_margin_e {
diff --git a/src/bytecode/opcodes.h b/src/bytecode/opcodes.h
index 82bf75f..01ea25a 100644
--- a/src/bytecode/opcodes.h
+++ b/src/bytecode/opcodes.h
@@ -491,7 +491,44 @@ enum op_list_style_type {
LIST_STYLE_TYPE_GEORGIAN = 0x000b,
LIST_STYLE_TYPE_LOWER_ALPHA = 0x000c,
LIST_STYLE_TYPE_UPPER_ALPHA = 0x000d,
- LIST_STYLE_TYPE_NONE = 0x000e
+ LIST_STYLE_TYPE_NONE = 0x000e,
+ LIST_STYLE_TYPE_BINARY = 0x000f,
+ LIST_STYLE_TYPE_OCTAL = 0x0010,
+ LIST_STYLE_TYPE_LOWER_HEXADECIMAL = 0x0011,
+ LIST_STYLE_TYPE_UPPER_HEXADECIMAL = 0x0012,
+ LIST_STYLE_TYPE_ARABIC_INDIC = 0x0013,
+ LIST_STYLE_TYPE_LOWER_ARMENIAN = 0x0014,
+ LIST_STYLE_TYPE_UPPER_ARMENIAN = 0x0015,
+ LIST_STYLE_TYPE_BENGALI = 0x0016,
+ LIST_STYLE_TYPE_CAMBODIAN = 0x0017,
+ LIST_STYLE_TYPE_KHMER = 0x0018,
+ LIST_STYLE_TYPE_CJK_DECIMAL = 0x0019,
+ LIST_STYLE_TYPE_DEVANAGARI = 0x001a,
+ LIST_STYLE_TYPE_GUJARATI = 0x001b,
+ LIST_STYLE_TYPE_GURMUKHI = 0x001c,
+ LIST_STYLE_TYPE_HEBREW = 0x001d,
+ LIST_STYLE_TYPE_KANNADA = 0x001e,
+ LIST_STYLE_TYPE_LAO = 0x001f,
+ LIST_STYLE_TYPE_MALAYALAM = 0x0020,
+ LIST_STYLE_TYPE_MONGOLIAN = 0x0021,
+ LIST_STYLE_TYPE_MYANMAR = 0x0022,
+ LIST_STYLE_TYPE_ORIYA = 0x0023,
+ LIST_STYLE_TYPE_PERSIAN = 0x0024,
+ LIST_STYLE_TYPE_TAMIL = 0x0025,
+ LIST_STYLE_TYPE_TELUGU = 0x0026,
+ LIST_STYLE_TYPE_THAI = 0x0027,
+ LIST_STYLE_TYPE_TIBETAN = 0x0028,
+ LIST_STYLE_TYPE_CJK_EARTHLY_BRANCH = 0x0029,
+ LIST_STYLE_TYPE_CJK_HEAVENLY_STEM = 0x002a,
+ LIST_STYLE_TYPE_HIAGANA = 0x002b,
+ LIST_STYLE_TYPE_HIAGANA_IROHA = 0x002c,
+ LIST_STYLE_TYPE_KATAKANA = 0x002d,
+ LIST_STYLE_TYPE_KATAKANA_IROHA = 0x002e,
+ LIST_STYLE_TYPE_JAPANESE_INFORMAL = 0x002f,
+ LIST_STYLE_TYPE_JAPANESE_FORMAL = 0x0030,
+ LIST_STYLE_TYPE_KOREAN_HANGUL_FORMAL = 0x0031,
+ LIST_STYLE_TYPE_KOREAN_HANJA_INFORMAL = 0x0032,
+ LIST_STYLE_TYPE_KOREAN_HANJA_FORMAL = 0x0033
};
enum op_margin {
diff --git a/src/parse/properties/utils.c b/src/parse/properties/utils.c
index 0e49853..707a22b 100644
--- a/src/parse/properties/utils.c
+++ b/src/parse/properties/utils.c
@@ -29,77 +29,83 @@
css_error css__parse_list_style_type_value(css_language *c, const css_token *ident,
uint16_t *value)
{
- bool match;
-
/* IDENT (disc, circle, square, decimal, decimal-leading-zero,
* lower-roman, upper-roman, lower-greek, lower-latin,
* upper-latin, armenian, georgian, lower-alpha, upper-alpha,
* none)
*/
- if ((lwc_string_caseless_isequal(
- ident->idata, c->strings[DISC],
- &match) == lwc_error_ok && match)) {
- *value = LIST_STYLE_TYPE_DISC;
- } else if ((lwc_string_caseless_isequal(
- ident->idata, c->strings[CIRCLE],
- &match) == lwc_error_ok && match)) {
- *value = LIST_STYLE_TYPE_CIRCLE;
- } else if ((lwc_string_caseless_isequal(
- ident->idata, c->strings[SQUARE],
- &match) == lwc_error_ok && match)) {
- *value = LIST_STYLE_TYPE_SQUARE;
- } else if ((lwc_string_caseless_isequal(
- ident->idata, c->strings[DECIMAL],
- &match) == lwc_error_ok && match)) {
- *value = LIST_STYLE_TYPE_DECIMAL;
- } else if ((lwc_string_caseless_isequal(
- ident->idata, c->strings[DECIMAL_LEADING_ZERO],
- &match) == lwc_error_ok && match)) {
- *value = LIST_STYLE_TYPE_DECIMAL_LEADING_ZERO;
- } else if ((lwc_string_caseless_isequal(
- ident->idata, c->strings[LOWER_ROMAN],
- &match) == lwc_error_ok && match)) {
- *value = LIST_STYLE_TYPE_LOWER_ROMAN;
- } else if ((lwc_string_caseless_isequal(
- ident->idata, c->strings[UPPER_ROMAN],
- &match) == lwc_error_ok && match)) {
- *value = LIST_STYLE_TYPE_UPPER_ROMAN;
- } else if ((lwc_string_caseless_isequal(
- ident->idata, c->strings[LOWER_GREEK],
- &match) == lwc_error_ok && match)) {
- *value = LIST_STYLE_TYPE_LOWER_GREEK;
- } else if ((lwc_string_caseless_isequal(
- ident->idata, c->strings[LOWER_LATIN],
- &match) == lwc_error_ok && match)) {
- *value = LIST_STYLE_TYPE_LOWER_LATIN;
- } else if ((lwc_string_caseless_isequal(
- ident->idata, c->strings[UPPER_LATIN],
- &match) == lwc_error_ok && match)) {
- *value = LIST_STYLE_TYPE_UPPER_LATIN;
- } else if ((lwc_string_caseless_isequal(
- ident->idata, c->strings[ARMENIAN],
- &match) == lwc_error_ok && match)) {
- *value = LIST_STYLE_TYPE_ARMENIAN;
- } else if ((lwc_string_caseless_isequal(
- ident->idata, c->strings[GEORGIAN],
- &match) == lwc_error_ok && match)) {
- *value = LIST_STYLE_TYPE_GEORGIAN;
- } else if ((lwc_string_caseless_isequal(
- ident->idata, c->strings[LOWER_ALPHA],
- &match) == lwc_error_ok && match)) {
- *value = LIST_STYLE_TYPE_LOWER_ALPHA;
- } else if ((lwc_string_caseless_isequal(
- ident->idata, c->strings[UPPER_ALPHA],
- &match) == lwc_error_ok && match)) {
- *value = LIST_STYLE_TYPE_UPPER_ALPHA;
- } else if ((lwc_string_caseless_isequal(
- ident->idata, c->strings[NONE],
- &match) == lwc_error_ok && match)) {
- *value = LIST_STYLE_TYPE_NONE;
- } else
- return CSS_INVALID;
+ #define MAP_ENTRIES 52
+ bool match;
+ int midx;
+ const struct {
+ int stringid;
+ int value;
+ } mapping[MAP_ENTRIES] = {
+ { DISC, LIST_STYLE_TYPE_DISC },
+ { CIRCLE, LIST_STYLE_TYPE_CIRCLE },
+ { SQUARE, LIST_STYLE_TYPE_SQUARE },
+ { DECIMAL, LIST_STYLE_TYPE_DECIMAL },
+ { DECIMAL_LEADING_ZERO, LIST_STYLE_TYPE_DECIMAL_LEADING_ZERO },
+ { LOWER_ROMAN, LIST_STYLE_TYPE_LOWER_ROMAN },
+ { UPPER_ROMAN, LIST_STYLE_TYPE_UPPER_ROMAN },
+ { LOWER_GREEK, LIST_STYLE_TYPE_LOWER_GREEK },
+ { LOWER_LATIN, LIST_STYLE_TYPE_LOWER_LATIN },
+ { UPPER_LATIN, LIST_STYLE_TYPE_UPPER_LATIN },
+ { ARMENIAN, LIST_STYLE_TYPE_ARMENIAN },
+ { GEORGIAN, LIST_STYLE_TYPE_GEORGIAN },
+ { LOWER_ALPHA, LIST_STYLE_TYPE_LOWER_ALPHA },
+ { UPPER_ALPHA, LIST_STYLE_TYPE_UPPER_ALPHA },
+ { NONE, LIST_STYLE_TYPE_NONE },
+ { BINARY, LIST_STYLE_TYPE_BINARY },
+ { OCTAL, LIST_STYLE_TYPE_OCTAL},
+ { LOWER_HEXADECIMAL, LIST_STYLE_TYPE_LOWER_HEXADECIMAL },
+ { UPPER_HEXADECIMAL, LIST_STYLE_TYPE_UPPER_HEXADECIMAL },
+ { ARABIC_INDIC, LIST_STYLE_TYPE_ARABIC_INDIC },
+ { LOWER_ARMENIAN, LIST_STYLE_TYPE_LOWER_ARMENIAN },
+ { UPPER_ARMENIAN, LIST_STYLE_TYPE_UPPER_ARMENIAN },
+ { BENGALI, LIST_STYLE_TYPE_BENGALI },
+ { CAMBODIAN, LIST_STYLE_TYPE_CAMBODIAN },
+ { KHMER, LIST_STYLE_TYPE_KHMER },
+ { CJK_DECIMAL, LIST_STYLE_TYPE_CJK_DECIMAL },
+ { DEVANAGARI, LIST_STYLE_TYPE_DEVANAGARI },
+ { GUJARATI, LIST_STYLE_TYPE_GUJARATI },
+ { GURMUKHI, LIST_STYLE_TYPE_GURMUKHI },
+ { HEBREW, LIST_STYLE_TYPE_HEBREW },
+ { KANNADA, LIST_STYLE_TYPE_KANNADA },
+ { LAO, LIST_STYLE_TYPE_LAO },
+ { MALAYALAM, LIST_STYLE_TYPE_MALAYALAM },
+ { MONGOLIAN, LIST_STYLE_TYPE_MONGOLIAN },
+ { MYANMAR, LIST_STYLE_TYPE_MYANMAR },
+ { ORIYA, LIST_STYLE_TYPE_ORIYA },
+ { PERSIAN, LIST_STYLE_TYPE_PERSIAN },
+ { TAMIL, LIST_STYLE_TYPE_TAMIL },
+ { TELUGU, LIST_STYLE_TYPE_TELUGU },
+ { THAI, LIST_STYLE_TYPE_THAI },
+ { TIBETAN, LIST_STYLE_TYPE_TIBETAN },
+ { CJK_EARTHLY_BRANCH, LIST_STYLE_TYPE_CJK_EARTHLY_BRANCH },
+ { CJK_HEAVENLY_STEM, LIST_STYLE_TYPE_CJK_HEAVENLY_STEM },
+ { HIAGANA, LIST_STYLE_TYPE_HIAGANA },
+ { HIAGANA_IROHA, LIST_STYLE_TYPE_HIAGANA_IROHA },
+ { KATAKANA, LIST_STYLE_TYPE_KATAKANA },
+ { KATAKANA_IROHA, LIST_STYLE_TYPE_KATAKANA_IROHA },
+ { JAPANESE_INFORMAL, LIST_STYLE_TYPE_JAPANESE_INFORMAL },
+ { JAPANESE_FORMAL, LIST_STYLE_TYPE_JAPANESE_FORMAL },
+ { KOREAN_HANGUL_FORMAL, LIST_STYLE_TYPE_KOREAN_HANGUL_FORMAL },
+ { KOREAN_HANJA_INFORMAL, LIST_STYLE_TYPE_KOREAN_HANJA_INFORMAL },
+ { KOREAN_HANJA_FORMAL, LIST_STYLE_TYPE_KOREAN_HANJA_FORMAL }
+ };
- return CSS_OK;
+ for (midx = 0; midx < MAP_ENTRIES; midx++) {
+ if ((lwc_string_caseless_isequal(
+ ident->idata,
+ c->strings[mapping[midx].stringid],
+ &match) == lwc_error_ok && match)) {
+ *value = mapping[midx].value;
+ return CSS_OK;
+ }
+ }
+
+ return CSS_INVALID;
}
@@ -1117,7 +1123,7 @@ css_error css__ident_list_or_string_to_string(css_language *c,
token = parserutils_vector_iterate(vector, ctx);
*result = lwc_string_ref(token->idata);
return CSS_OK;
- } else if(token->type == CSS_TOKEN_IDENT) {
+ } else if(token->type == CSS_TOKEN_IDENT) {
return css__ident_list_to_string(c, vector, ctx, reserved,
result);
}
@@ -1333,4 +1339,3 @@ cleanup:
return error;
}
-
diff --git a/src/parse/propstrings.c b/src/parse/propstrings.c
index 3c9401b..7d723e1 100644
--- a/src/parse/propstrings.c
+++ b/src/parse/propstrings.c
@@ -10,6 +10,10 @@
#include <assert.h>
+/** build string map entry with a string constant */
+#define SMAP(s) { s, (sizeof((s)) - 1) /* -1 for '\0' */ }
+
+
typedef struct stringmap_entry {
const char *data;
size_t len;
@@ -24,576 +28,613 @@ static css__propstrings_ctx css__propstrings;
/* Must be synchronised with enum in propstrings.h */
const stringmap_entry stringmap[LAST_KNOWN] = {
- { "*", SLEN("*") },
+ SMAP("*"),
- { ":", SLEN(":") },
- { ",", SLEN(",") },
- { ";", SLEN(";") },
- { "{", SLEN("{") },
- { "}", SLEN("}") },
- { "0", SLEN("0") },
+ SMAP(":"),
+ SMAP(","),
+ SMAP(";"),
+ SMAP("{"),
+ SMAP("}"),
+ SMAP("0"),
- { "charset", SLEN("charset") },
- { "import", SLEN("import") },
- { "media", SLEN("media") },
- { "namespace", SLEN("namespace") },
- { "font-face", SLEN("font-face") },
- { "page", SLEN("page") },
+ SMAP("charset"),
+ SMAP("import"),
+ SMAP("media"),
+ SMAP("namespace"),
+ SMAP("font-face"),
+ SMAP("page"),
- { "aural", SLEN("aural") },
- { "braille", SLEN("braille") },
- { "embossed", SLEN("embossed") },
- { "handheld", SLEN("handheld") },
- { "print", SLEN("print") },
- { "projection", SLEN("projection") },
- { "screen", SLEN("screen") },
- { "speech", SLEN("speech") },
- { "tty", SLEN("tty") },
- { "tv", SLEN("tv") },
- { "all", SLEN("all") },
+ SMAP("aural"),
+ SMAP("braille"),
+ SMAP("embossed"),
+ SMAP("handheld"),
+ SMAP("print"),
+ SMAP("projection"),
+ SMAP("screen"),
+ SMAP("speech"),
+ SMAP("tty"),
+ SMAP("tv"),
+ SMAP("all"),
- { "first-child", SLEN("first-child") },
- { "link", SLEN("link") },
- { "visited", SLEN("visited") },
- { "hover", SLEN("hover") },
- { "active", SLEN("active") },
- { "focus", SLEN("focus") },
- { "lang", SLEN("lang") },
- { "first", SLEN("first") },
- { "root", SLEN("root") },
- { "nth-child", SLEN("nth-child") },
- { "nth-last-child", SLEN("nth-last-child") },
- { "nth-of-type", SLEN("nth-of-type") },
- { "nth-last-of-type", SLEN("nth-last-of-type") },
- { "last-child", SLEN("last-child") },
- { "first-of-type", SLEN("first-of-type") },
- { "last-of-type", SLEN("last-of-type") },
- { "only-child", SLEN("only-child") },
- { "only-of-type", SLEN("only-of-type") },
- { "empty", SLEN("empty") },
- { "target", SLEN("target") },
- { "enabled", SLEN("enabled") },
- { "disabled", SLEN("disabled") },
- { "checked", SLEN("checked") },
- { "not", SLEN("not") },
+ SMAP("first-child"),
+ SMAP("link"),
+ SMAP("visited"),
+ SMAP("hover"),
+ SMAP("active"),
+ SMAP("focus"),
+ SMAP("lang"),
+ SMAP("first"),
+ SMAP("root"),
+ SMAP("nth-child"),
+ SMAP("nth-last-child"),
+ SMAP("nth-of-type"),
+ SMAP("nth-last-of-type"),
+ SMAP("last-child"),
+ SMAP("first-of-type"),
+ SMAP("last-of-type"),
+ SMAP("only-child"),
+ SMAP("only-of-type"),
+ SMAP("empty"),
+ SMAP("target"),
+ SMAP("enabled"),
+ SMAP("disabled"),
+ SMAP("checked"),
+ SMAP("not"),
- { "first-line", SLEN("first-line") },
- { "first-letter", SLEN("first-letter") },
- { "before", SLEN("before") },
- { "after", SLEN("after") },
+ SMAP("first-line"),
+ SMAP("first-letter"),
+ SMAP("before"),
+ SMAP("after"),
- { "align-content", SLEN("align-content") },
- { "align-items", SLEN("align-items") },
- { "align-self", SLEN("align-self") },
- { "azimuth", SLEN("azimuth") },
- { "background", SLEN("background") },
- { "background-attachment", SLEN("background-attachment") },
- { "background-color", SLEN("background-color") },
- { "background-image", SLEN("background-image") },
- { "background-position", SLEN("background-position") },
- { "background-repeat", SLEN("background-repeat") },
- { "border", SLEN("border") },
- { "border-bottom", SLEN("border-bottom") },
- { "border-bottom-color", SLEN("border-bottom-color") },
- { "border-bottom-style", SLEN("border-bottom-style") },
- { "border-bottom-width", SLEN("border-bottom-width") },
- { "border-collapse", SLEN("border-collapse") },
- { "border-color", SLEN("border-color") },
- { "border-left", SLEN("border-left") },
- { "border-left-color", SLEN("border-left-color") },
- { "border-left-style", SLEN("border-left-style") },
- { "border-left-width", SLEN("border-left-width") },
- { "border-right", SLEN("border-right") },
- { "border-right-color", SLEN("border-right-color") },
- { "border-right-style", SLEN("border-right-style") },
- { "border-right-width", SLEN("border-right-width") },
- { "border-spacing", SLEN("border-spacing") },
- { "border-style", SLEN("border-style") },
- { "border-top", SLEN("border-top") },
- { "border-top-color", SLEN("border-top-color") },
- { "border-top-style", SLEN("border-top-style") },
- { "border-top-width", SLEN("border-top-width") },
- { "border-width", SLEN("border-width") },
- { "bottom", SLEN("bottom") },
- { "box-sizing", SLEN("box-sizing") },
- { "break-after", SLEN("break-after") },
- { "break-before", SLEN("break-before") },
- { "break-inside", SLEN("break-inside") },
- { "caption-side", SLEN("caption-side") },
- { "clear", SLEN("clear") },
- { "clip", SLEN("clip") },
- { "color", SLEN("color") },
- { "columns", SLEN("columns") },
- { "column-count", SLEN("column-count") },
- { "column-fill", SLEN("column-fill") },
- { "column-gap", SLEN("column-gap") },
- { "column-rule", SLEN("column-rule") },
- { "column-rule-color", SLEN("column-rule-color") },
- { "column-rule-style", SLEN("column-rule-style") },
- { "column-rule-width", SLEN("column-rule_width") },
- { "column-span", SLEN("column-span") },
- { "column-width", SLEN("column-width") },
- { "content", SLEN("content") },
- { "counter-increment", SLEN("counter-increment") },
- { "counter-reset", SLEN("counter-reset") },
- { "cue", SLEN("cue") },
- { "cue-after", SLEN("cue-after") },
- { "cue-before", SLEN("cue-before") },
- { "cursor", SLEN("cursor") },
- { "direction", SLEN("direction") },
- { "display", SLEN("display") },
- { "elevation", SLEN("elevation") },
- { "empty-cells", SLEN("empty-cells") },
- { "flex", SLEN("flex") },
- { "flex-basis", SLEN("flex-basis") },
- { "flex-direction", SLEN("flex-direction") },
- { "flex-flow", SLEN("flex-flow") },
- { "flex-grow", SLEN("flex-grow") },
- { "flex-shrink", SLEN("flex-shrink") },
- { "flex-wrap", SLEN("flex-wrap") },
- { "float", SLEN("float") },
- { "font", SLEN("font") },
- { "font-family", SLEN("font-family") },
- { "font-size", SLEN("font-size") },
- { "font-style", SLEN("font-style") },
- { "font-variant", SLEN("font-variant") },
- { "font-weight", SLEN("font-weight") },
- { "height", SLEN("height") },
- { "justify-content", SLEN("justify-content") },
- { "left", SLEN("left") },
- { "letter-spacing", SLEN("letter-spacing") },
- { "line-height", SLEN("line-height") },
- { "list-style", SLEN("list-style") },
- { "list-style-image", SLEN("list-style-image") },
- { "list-style-position", SLEN("list-style-position") },
- { "list-style-type", SLEN("list-style-type") },
- { "margin", SLEN("margin") },
- { "margin-bottom", SLEN("margin-bottom") },
- { "margin-left", SLEN("margin-left") },
- { "margin-right", SLEN("margin-right") },
- { "margin-top", SLEN("margin-top") },
- { "max-height", SLEN("max-height") },
- { "max-width", SLEN("max-width") },
- { "min-height", SLEN("min-height") },
- { "min-width", SLEN("min-width") },
- { "opacity", SLEN("opacity") },
- { "order", SLEN("order") },
- { "orphans", SLEN("orphans") },
- { "outline", SLEN("outline") },
- { "outline-color", SLEN("outline-color") },
- { "outline-style", SLEN("outline-style") },
- { "outline-width", SLEN("outline-width") },
- { "overflow", SLEN("overflow") },
- { "overflow-x", SLEN("overflow-x") },
- { "overflow-y", SLEN("overflow-y") },
- { "padding", SLEN("padding") },
- { "padding-bottom", SLEN("padding-bottom") },
- { "padding-left", SLEN("padding-left") },
- { "padding-right", SLEN("padding-right") },
- { "padding-top", SLEN("padding-top") },
- { "page-break-after", SLEN("page-break-after") },
- { "page-break-before", SLEN("page-break-before") },
- { "page-break-inside", SLEN("page-break-inside") },
- { "pause", SLEN("pause") },
- { "pause-after", SLEN("pause-after") },
- { "pause-before", SLEN("pause-before") },
- { "pitch-range", SLEN("pitch-range") },
- { "pitch", SLEN("pitch") },
- { "play-during", SLEN("play-during") },
- { "position", SLEN("position") },
- { "quotes", SLEN("quotes") },
- { "richness", SLEN("richness") },
- { "right", SLEN("right") },
- { "speak-header", SLEN("speak-header") },
- { "speak-numeral", SLEN("speak-numeral") },
- { "speak-punctuation", SLEN("speak-punctuation") },
- { "speak", SLEN("speak") },
- { "speech-rate", SLEN("speech-rate") },
- { "stress", SLEN("stress") },
- { "table-layout", SLEN("table-layout") },
- { "text-align", SLEN("text-align") },
- { "text-decoration", SLEN("text-decoration") },
- { "text-indent", SLEN("text-indent") },
- { "text-transform", SLEN("text-transform") },
- { "top", SLEN("top") },
- { "unicode-bidi", SLEN("unicode-bidi") },
- { "vertical-align", SLEN("vertical-align") },
- { "visibility", SLEN("visibility") },
- { "voice-family", SLEN("voice-family") },
- { "volume", SLEN("volume") },
- { "white-space", SLEN("white-space") },
- { "widows", SLEN("widows") },
- { "width", SLEN("width") },
- { "word-spacing", SLEN("word-spacing") },
- { "writing-mode", SLEN("writing-mode") },
- { "z-index", SLEN("z-index") },
+ SMAP("align-content"),
+ SMAP("align-items"),
+ SMAP("align-self"),
+ SMAP("azimuth"),
+ SMAP("background"),
+ SMAP("background-attachment"),
+ SMAP("background-color"),
+ SMAP("background-image"),
+ SMAP("background-position"),
+ SMAP("background-repeat"),
+ SMAP("border"),
+ SMAP("border-bottom"),
+ SMAP("border-bottom-color"),
+ SMAP("border-bottom-style"),
+ SMAP("border-bottom-width"),
+ SMAP("border-collapse"),
+ SMAP("border-color"),
+ SMAP("border-left"),
+ SMAP("border-left-color"),
+ SMAP("border-left-style"),
+ SMAP("border-left-width"),
+ SMAP("border-right"),
+ SMAP("border-right-color"),
+ SMAP("border-right-style"),
+ SMAP("border-right-width"),
+ SMAP("border-spacing"),
+ SMAP("border-style"),
+ SMAP("border-top"),
+ SMAP("border-top-color"),
+ SMAP("border-top-style"),
+ SMAP("border-top-width"),
+ SMAP("border-width"),
+ SMAP("bottom"),
+ SMAP("box-sizing"),
+ SMAP("break-after"),
+ SMAP("break-before"),
+ SMAP("break-inside"),
+ SMAP("caption-side"),
+ SMAP("clear"),
+ SMAP("clip"),
+ SMAP("color"),
+ SMAP("columns"),
+ SMAP("column-count"),
+ SMAP("column-fill"),
+ SMAP("column-gap"),
+ SMAP("column-rule"),
+ SMAP("column-rule-color"),
+ SMAP("column-rule-style"),
+ SMAP("column-rule-width"),
+ SMAP("column-span"),
+ SMAP("column-width"),
+ SMAP("content"),
+ SMAP("counter-increment"),
+ SMAP("counter-reset"),
+ SMAP("cue"),
+ SMAP("cue-after"),
+ SMAP("cue-before"),
+ SMAP("cursor"),
+ SMAP("direction"),
+ SMAP("display"),
+ SMAP("elevation"),
+ SMAP("empty-cells"),
+ SMAP("flex"),
+ SMAP("flex-basis"),
+ SMAP("flex-direction"),
+ SMAP("flex-flow"),
+ SMAP("flex-grow"),
+ SMAP("flex-shrink"),
+ SMAP("flex-wrap"),
+ SMAP("float"),
+ SMAP("font"),
+ SMAP("font-family"),
+ SMAP("font-size"),
+ SMAP("font-style"),
+ SMAP("font-variant"),
+ SMAP("font-weight"),
+ SMAP("height"),
+ SMAP("justify-content"),
+ SMAP("left"),
+ SMAP("letter-spacing"),
+ SMAP("line-height"),
+ SMAP("list-style"),
+ SMAP("list-style-image"),
+ SMAP("list-style-position"),
+ SMAP("list-style-type"),
+ SMAP("margin"),
+ SMAP("margin-bottom"),
+ SMAP("margin-left"),
+ SMAP("margin-right"),
+ SMAP("margin-top"),
+ SMAP("max-height"),
+ SMAP("max-width"),
+ SMAP("min-height"),
+ SMAP("min-width"),
+ SMAP("opacity"),
+ SMAP("order"),
+ SMAP("orphans"),
+ SMAP("outline"),
+ SMAP("outline-color"),
+ SMAP("outline-style"),
+ SMAP("outline-width"),
+ SMAP("overflow"),
+ SMAP("overflow-x"),
+ SMAP("overflow-y"),
+ SMAP("padding"),
+ SMAP("padding-bottom"),
+ SMAP("padding-left"),
+ SMAP("padding-right"),
+ SMAP("padding-top"),
+ SMAP("page-break-after"),
+ SMAP("page-break-before"),
+ SMAP("page-break-inside"),
+ SMAP("pause"),
+ SMAP("pause-after"),
+ SMAP("pause-before"),
+ SMAP("pitch-range"),
+ SMAP("pitch"),
+ SMAP("play-during"),
+ SMAP("position"),
+ SMAP("quotes"),
+ SMAP("richness"),
+ SMAP("right"),
+ SMAP("speak-header"),
+ SMAP("speak-numeral"),
+ SMAP("speak-punctuation"),
+ SMAP("speak"),
+ SMAP("speech-rate"),
+ SMAP("stress"),
+ SMAP("table-layout"),
+ SMAP("text-align"),
+ SMAP("text-decoration"),
+ SMAP("text-indent"),
+ SMAP("text-transform"),
+ SMAP("top"),
+ SMAP("unicode-bidi"),
+ SMAP("vertical-align"),
+ SMAP("visibility"),
+ SMAP("voice-family"),
+ SMAP("volume"),
+ SMAP("white-space"),
+ SMAP("widows"),
+ SMAP("width"),
+ SMAP("word-spacing"),
+ SMAP("writing-mode"),
+ SMAP("z-index"),
- { "inherit", SLEN("inherit") },
- { "important", SLEN("important") },
- { "none", SLEN("none") },
- { "both", SLEN("both") },
- { "fixed", SLEN("fixed") },
- { "scroll", SLEN("scroll") },
- { "transparent", SLEN("transparent") },
- { "no-repeat", SLEN("no-repeat") },
- { "repeat-x", SLEN("repeat-x") },
- { "repeat-y", SLEN("repeat-y") },
- { "repeat", SLEN("repeat") },
- { "hidden", SLEN("hidden") },
- { "dotted", SLEN("dotted") },
- { "dashed", SLEN("dashed") },
- { "solid", SLEN("solid") },
- { "double", SLEN("double") },
- { "groove", SLEN("groove") },
- { "ridge", SLEN("ridge") },
- { "inset", SLEN("inset") },
- { "outset", SLEN("outset") },
- { "thin", SLEN("thin") },
- { "medium", SLEN("medium") },
- { "thick", SLEN("thick") },
- { "collapse", SLEN("collapse") },
- { "separate", SLEN("separate") },
- { "auto", SLEN("auto") },
- { "ltr", SLEN("ltr") },
- { "rtl", SLEN("rtl") },
- { "inline", SLEN("inline") },
- { "block", SLEN("block") },
- { "list-item", SLEN("list-item") },
- { "run-in", SLEN("run-in") },
- { "inline-block", SLEN("inline-block") },
- { "table", SLEN("table") },
- { "inline-table", SLEN("inline-table") },
- { "table-row-group", SLEN("table-row-group") },
- { "table-header-group", SLEN("table-header-group") },
- { "table-footer-group", SLEN("table-footer-group") },
- { "table-row", SLEN("table-row") },
- { "table-column-group", SLEN("table-column-group") },
- { "table-column", SLEN("table-column") },
- { "table-cell", SLEN("table-cell") },
- { "table-caption", SLEN("table-caption") },
- { "below", SLEN("below") },
- { "level", SLEN("level") },
- { "above", SLEN("above") },
- { "higher", SLEN("higher") },
- { "lower", SLEN("lower") },
- { "show", SLEN("show") },
- { "hide", SLEN("hide") },
- { "xx-small", SLEN("xx-small") },
- { "x-small", SLEN("x-small") },
- { "small", SLEN("small") },
- { "large", SLEN("large") },
- { "x-large", SLEN("x-large") },
- { "xx-large", SLEN("xx-large") },
- { "larger", SLEN("larger") },
- { "smaller", SLEN("smaller") },
- { "normal", SLEN("normal") },
- { "italic", SLEN("italic") },
- { "oblique", SLEN("oblique") },
- { "small-caps", SLEN("small-caps") },
- { "bold", SLEN("bold") },
- { "bolder", SLEN("bolder") },
- { "lighter", SLEN("lighter") },
- { "inside", SLEN("inside") },
- { "outside", SLEN("outside") },
- { "disc", SLEN("disc") },
- { "circle", SLEN("circle") },
- { "square", SLEN("square") },
- { "decimal", SLEN("decimal") },
- { "decimal-leading-zero", SLEN("decimal-leading-zero") },
- { "lower-roman", SLEN("lower-roman") },
- { "upper-roman", SLEN("upper-roman") },
- { "lower-greek", SLEN("lower-greek") },
- { "lower-latin", SLEN("lower-latin") },
- { "upper-latin", SLEN("upper-latin") },
- { "armenian", SLEN("armenian") },
- { "georgian", SLEN("georgian") },
- { "lower-alpha", SLEN("lower-alpha") },
- { "upper-alpha", SLEN("upper-alpha") },
- { "invert", SLEN("invert") },
- { "visible", SLEN("visible") },
- { "always", SLEN("always") },
- { "avoid", SLEN("avoid") },
- { "x-low", SLEN("x-low") },
- { "low", SLEN("low") },
- { "high", SLEN("high") },
- { "x-high", SLEN("x-high") },
- { "static", SLEN("static") },
- { "relative", SLEN("relative") },
- { "absolute", SLEN("absolute") },
- { "once", SLEN("once") },
- { "digits", SLEN("digits") },
- { "continuous", SLEN("continuous") },
- { "code", SLEN("code") },
- { "spell-out", SLEN("spell-out") },
- { "x-slow", SLEN("x-slow") },
- { "slow", SLEN("slow") },
- { "fast", SLEN("fast") },
- { "x-fast", SLEN("x-fast") },
- { "faster", SLEN("faster") },
- { "slower", SLEN("slower") },
- { "center", SLEN("center") },
- { "justify", SLEN("justify") },
- { "capitalize", SLEN("capitalize") },
- { "uppercase", SLEN("uppercase") },
- { "lowercase", SLEN("lowercase") },
- { "embed", SLEN("embed") },
- { "bidi-override", SLEN("bidi-override") },
- { "baseline", SLEN("baseline") },
- { "sub", SLEN("sub") },
- { "super", SLEN("super") },
- { "text-top", SLEN("text-top") },
- { "middle", SLEN("middle") },
- { "text-bottom", SLEN("text-bottom") },
- { "silent", SLEN("silent") },
- { "x-soft", SLEN("x-soft") },
- { "soft", SLEN("soft") },
- { "loud", SLEN("loud") },
- { "x-loud", SLEN("x-loud") },
- { "pre", SLEN("pre") },
- { "nowrap", SLEN("nowrap") },
- { "pre-wrap", SLEN("pre-wrap") },
- { "pre-line", SLEN("pre-line") },
- { "leftwards", SLEN("leftwards") },
- { "rightwards", SLEN("rightwards") },
- { "left-side", SLEN("left-side") },
- { "far-left", SLEN("far-left") },
- { "center-left", SLEN("center-left") },
- { "center-right", SLEN("center-right") },
- { "far-right", SLEN("far-right") },
- { "right-side", SLEN("right-side") },
- { "behind", SLEN("behind") },
- { "rect", SLEN("rect") },
- { "open-quote", SLEN("open-quote") },
- { "close-quote", SLEN("close-quote") },
- { "no-open-quote", SLEN("no-open-quote") },
- { "no-close-quote", SLEN("no-close-quote") },
- { "attr", SLEN("attr") },
- { "counter", SLEN("counter") },
- { "counters", SLEN("counters") },
- { "crosshair", SLEN("crosshair") },
- { "default", SLEN("default") },
- { "pointer", SLEN("pointer") },
- { "move", SLEN("move") },
- { "e-resize", SLEN("e-resize") },
- { "ne-resize", SLEN("ne-resize") },
- { "nw-resize", SLEN("nw-resize") },
- { "n-resize", SLEN("n-resize") },
- { "se-resize", SLEN("se-resize") },
- { "sw-resize", SLEN("sw-resize") },
- { "s-resize", SLEN("s-resize") },
- { "w-resize", SLEN("w-resize") },
- { "text", SLEN("text") },
- { "wait", SLEN("wait") },
- { "help", SLEN("help") },
- { "progress", SLEN("progress") },
- { "serif", SLEN("serif") },
- { "sans-serif", SLEN("sans-serif") },
- { "cursive", SLEN("cursive") },
- { "fantasy", SLEN("fantasy") },
- { "monospace", SLEN("monospace") },
- { "male", SLEN("male") },
- { "female", SLEN("female") },
- { "child", SLEN("child") },
- { "mix", SLEN("mix") },
- { "underline", SLEN("underline") },
- { "overline", SLEN("overline") },
- { "line-through", SLEN("line-through") },
- { "blink", SLEN("blink") },
- { "rgb", SLEN("rgb") },
- { "rgba", SLEN("rgba") },
- { "hsl", SLEN("hsl") },
- { "hsla", SLEN("hsla") },
- { "-libcss-left", SLEN("-libcss-left") },
- { "-libcss-center", SLEN("-libcss-center") },
- { "-libcss-right", SLEN("-libcss-right") },
- { "currentColor", SLEN("currentColor") },
- { "odd", SLEN("odd") },
- { "even", SLEN("even") },
- { "src", SLEN("src") },
- { "local", SLEN("local") },
- { "initial", SLEN("initial") },
- { "format", SLEN("format") },
- { "woff", SLEN("woff") },
- { "truetype", SLEN("truetype") },
- { "opentype", SLEN("opentype") },
- { "embedded-opentype", SLEN("embedded-opentype") },
- { "svg", SLEN("svg") },
- { "column", SLEN("column") },
- { "avoid-page", SLEN("avoid_page") },
- { "avoid-column", SLEN("avoid-column") },
- { "balance", SLEN("balance") },
- { "horizontal-tb", SLEN("horizontal-tb") },
- { "vertical-rl", SLEN("vertical-rl") },
- { "vertical-lr", SLEN("vertical-lr") },
- { "content-box", SLEN("content-box") },
- { "border-box", SLEN("border-box") },
- { "stretch", SLEN("stretch") },
- { "inline-flex", SLEN("inline-flex") },
- { "flex-start", SLEN("flex-start") },
- { "flex-end", SLEN("flex-end") },
- { "space-between", SLEN("space-between") },
- { "space-around", SLEN("space-around") },
- { "space-evenly", SLEN("space-evenly") },
- { "row", SLEN("row") },
- { "row-reverse", SLEN("row-reverse") },
- { "column-reverse", SLEN("column-reverse") },
- { "wrap", SLEN("wrap") },
- { "wrap-reverse", SLEN("wrap-reverse") },
- { "and", SLEN("and") },
- { "or", SLEN("or") },
- { "only", SLEN("only") },
- { "infinite", SLEN("infinite") },
+ SMAP("inherit"),
+ SMAP("important"),
+ SMAP("none"),
+ SMAP("both"),
+ SMAP("fixed"),
+ SMAP("scroll"),
+ SMAP("transparent"),
+ SMAP("no-repeat"),
+ SMAP("repeat-x"),
+ SMAP("repeat-y"),
+ SMAP("repeat"),
+ SMAP("hidden"),
+ SMAP("dotted"),
+ SMAP("dashed"),
+ SMAP("solid"),
+ SMAP("double"),
+ SMAP("groove"),
+ SMAP("ridge"),
+ SMAP("inset"),
+ SMAP("outset"),
+ SMAP("thin"),
+ SMAP("medium"),
+ SMAP("thick"),
+ SMAP("collapse"),
+ SMAP("separate"),
+ SMAP("auto"),
+ SMAP("ltr"),
+ SMAP("rtl"),
+ SMAP("inline"),
+ SMAP("block"),
+ SMAP("list-item"),
+ SMAP("run-in"),
+ SMAP("inline-block"),
+ SMAP("table"),
+ SMAP("inline-table"),
+ SMAP("table-row-group"),
+ SMAP("table-header-group"),
+ SMAP("table-footer-group"),
+ SMAP("table-row"),
+ SMAP("table-column-group"),
+ SMAP("table-column"),
+ SMAP("table-cell"),
+ SMAP("table-caption"),
+ SMAP("below"),
+ SMAP("level"),
+ SMAP("above"),
+ SMAP("higher"),
+ SMAP("lower"),
+ SMAP("show"),
+ SMAP("hide"),
+ SMAP("xx-small"),
+ SMAP("x-small"),
+ SMAP("small"),
+ SMAP("large"),
+ SMAP("x-large"),
+ SMAP("xx-large"),
+ SMAP("larger"),
+ SMAP("smaller"),
+ SMAP("normal"),
+ SMAP("italic"),
+ SMAP("oblique"),
+ SMAP("small-caps"),
+ SMAP("bold"),
+ SMAP("bolder"),
+ SMAP("lighter"),
+ SMAP("inside"),
+ SMAP("outside"),
+ SMAP("disc"),
+ SMAP("circle"),
+ SMAP("square"),
+ SMAP("decimal"),
+ SMAP("decimal-leading-zero"),
+ SMAP("lower-roman"),
+ SMAP("upper-roman"),
+ SMAP("lower-greek"),
+ SMAP("lower-latin"),
+ SMAP("upper-latin"),
+ SMAP("armenian"),
+ SMAP("georgian"),
+ SMAP("lower-alpha"),
+ SMAP("upper-alpha"),
+ SMAP("binary"),
+ SMAP("octal"),
+ SMAP("lower-hexadecimal"),
+ SMAP("upper-hexadecimal"),
+ SMAP("arabic-indic"),
+ SMAP("lower-armenian"),
+ SMAP("upper-armenian"),
+ SMAP("bengali"),
+ SMAP("cambodian"),
+ SMAP("khmer"),
+ SMAP("cjk-decimal"),
+ SMAP("devanagari"),
+ SMAP("gujarati"),
+ SMAP("gurmukhi"),
+ SMAP("hebrew"),
+ SMAP("kannada"),
+ SMAP("lao"),
+ SMAP("malayalam"),
+ SMAP("mongolian"),
+ SMAP("myanmar"),
+ SMAP("oriya"),
+ SMAP("persian"),
+ SMAP("tamil"),
+ SMAP("telugu"),
+ SMAP("thai"),
+ SMAP("tibetan"),
+ SMAP("cjk-earthly-branch"),
+ SMAP("cjk-heavenly-stem"),
+ SMAP("hiragana"),
+ SMAP("hiragana-iroha"),
+ SMAP("katakana"),
+ SMAP("katakana-iroha"),
+ SMAP("japanese-informal"),
+ SMAP("japanese-formal"),
+ SMAP("korean-hangul-formal"),
+ SMAP("korean-hanja-informal"),
+ SMAP("korean-hanja-formal"),
+ SMAP("invert"),
+ SMAP("visible"),
+ SMAP("always"),
+ SMAP("avoid"),
+ SMAP("x-low"),
+ SMAP("low"),
+ SMAP("high"),
+ SMAP("x-high"),
+ SMAP("static"),
+ SMAP("relative"),
+ SMAP("absolute"),
+ SMAP("once"),
+ SMAP("digits"),
+ SMAP("continuous"),
+ SMAP("code"),
+ SMAP("spell-out"),
+ SMAP("x-slow"),
+ SMAP("slow"),
+ SMAP("fast"),
+ SMAP("x-fast"),
+ SMAP("faster"),
+ SMAP("slower"),
+ SMAP("center"),
+ SMAP("justify"),
+ SMAP("capitalize"),
+ SMAP("uppercase"),
+ SMAP("lowercase"),
+ SMAP("embed"),
+ SMAP("bidi-override"),
+ SMAP("baseline"),
+ SMAP("sub"),
+ SMAP("super"),
+ SMAP("text-top"),
+ SMAP("middle"),
+ SMAP("text-bottom"),
+ SMAP("silent"),
+ SMAP("x-soft"),
+ SMAP("soft"),
+ SMAP("loud"),
+ SMAP("x-loud"),
+ SMAP("pre"),
+ SMAP("nowrap"),
+ SMAP("pre-wrap"),
+ SMAP("pre-line"),
+ SMAP("leftwards"),
+ SMAP("rightwards"),
+ SMAP("left-side"),
+ SMAP("far-left"),
+ SMAP("center-left"),
+ SMAP("center-right"),
+ SMAP("far-right"),
+ SMAP("right-side"),
+ SMAP("behind"),
+ SMAP("rect"),
+ SMAP("open-quote"),
+ SMAP("close-quote"),
+ SMAP("no-open-quote"),
+ SMAP("no-close-quote"),
+ SMAP("attr"),
+ SMAP("counter"),
+ SMAP("counters"),
+ SMAP("crosshair"),
+ SMAP("default"),
+ SMAP("pointer"),
+ SMAP("move"),
+ SMAP("e-resize"),
+ SMAP("ne-resize"),
+ SMAP("nw-resize"),
+ SMAP("n-resize"),
+ SMAP("se-resize"),
+ SMAP("sw-resize"),
+ SMAP("s-resize"),
+ SMAP("w-resize"),
+ SMAP("text"),
+ SMAP("wait"),
+ SMAP("help"),
+ SMAP("progress"),
+ SMAP("serif"),
+ SMAP("sans-serif"),
+ SMAP("cursive"),
+ SMAP("fantasy"),
+ SMAP("monospace"),
+ SMAP("male"),
+ SMAP("female"),
+ SMAP("child"),
+ SMAP("mix"),
+ SMAP("underline"),
+ SMAP("overline"),
+ SMAP("line-through"),
+ SMAP("blink"),
+ SMAP("rgb"),
+ SMAP("rgba"),
+ SMAP("hsl"),
+ SMAP("hsla"),
+ SMAP("-libcss-left"),
+ SMAP("-libcss-center"),
+ SMAP("-libcss-right"),
+ SMAP("currentColor"),
+ SMAP("odd"),
+ SMAP("even"),
+ SMAP("src"),
+ SMAP("local"),
+ SMAP("initial"),
+ SMAP("format"),
+ SMAP("woff"),
+ SMAP("truetype"),
+ SMAP("opentype"),
+ SMAP("embedded-opentype"),
+ SMAP("svg"),
+ SMAP("column"),
+ SMAP("avoid-page"),
+ SMAP("avoid-column"),
+ SMAP("balance"),
+ SMAP("horizontal-tb"),
+ SMAP("vertical-rl"),
+ SMAP("vertical-lr"),
+ SMAP("content-box"),
+ SMAP("border-box"),
+ SMAP("stretch"),
+ SMAP("inline-flex"),
+ SMAP("flex-start"),
+ SMAP("flex-end"),
+ SMAP("space-between"),
+ SMAP("space-around"),
+ SMAP("space-evenly"),
+ SMAP("row"),
+ SMAP("row-reverse"),
+ SMAP("column-reverse"),
+ SMAP("wrap"),
+ SMAP("wrap-reverse"),
+ SMAP("and"),
+ SMAP("or"),
+ SMAP("only"),
+ SMAP("infinite"),
- { "aliceblue", SLEN("aliceblue") },
- { "antiquewhite", SLEN("antiquewhite") },
- { "aqua", SLEN("aqua") },
- { "aquamarine", SLEN("aquamarine") },
- { "azure", SLEN("azure") },
- { "beige", SLEN("beige") },
- { "bisque", SLEN("bisque") },
- { "black", SLEN("black") },
- { "blanchedalmond", SLEN("blanchedalmond") },
- { "blue", SLEN("blue") },
- { "blueviolet", SLEN("blueviolet") },
- { "brown", SLEN("brown") },
- { "burlywood", SLEN("burlywood") },
- { "cadetblue", SLEN("cadetblue") },
- { "chartreuse", SLEN("chartreuse") },
- { "chocolate", SLEN("chocolate") },
- { "coral", SLEN("coral") },
- { "cornflowerblue", SLEN("cornflowerblue") },
- { "cornsilk", SLEN("cornsilk") },
- { "crimson", SLEN("crimson") },
- { "cyan", SLEN("cyan") },
- { "darkblue", SLEN("darkblue") },
- { "darkcyan", SLEN("darkcyan") },
- { "darkgoldenrod", SLEN("darkgoldenrod") },
- { "darkgray", SLEN("darkgray") },
- { "darkgreen", SLEN("darkgreen") },
- { "darkgrey", SLEN("darkgrey") },
- { "darkkhaki", SLEN("darkkhaki") },
- { "darkmagenta", SLEN("darkmagenta") },
- { "darkolivegreen", SLEN("darkolivegreen") },
- { "darkorange", SLEN("darkorange") },
- { "darkorchid", SLEN("darkorchid") },
- { "darkred", SLEN("darkred") },
- { "darksalmon", SLEN("darksalmon") },
- { "darkseagreen", SLEN("darkseagreen") },
- { "darkslateblue", SLEN("darkslateblue") },
- { "darkslategray", SLEN("darkslategray") },
- { "darkslategrey", SLEN("darkslategrey") },
- { "darkturquoise", SLEN("darkturquoise") },
- { "darkviolet", SLEN("darkviolet") },
- { "deeppink", SLEN("deeppink") },
- { "deepskyblue", SLEN("deepskyblue") },
- { "dimgray", SLEN("dimgray") },
- { "dimgrey", SLEN("dimgrey") },
- { "dodgerblue", SLEN("dodgerblue") },
- { "feldspar", SLEN("feldspar") },
- { "firebrick", SLEN("firebrick") },
- { "floralwhite", SLEN("floralwhite") },
- { "forestgreen", SLEN("forestgreen") },
- { "fuchsia", SLEN("fuchsia") },
- { "gainsboro", SLEN("gainsboro") },
- { "ghostwhite", SLEN("ghostwhite") },
- { "gold", SLEN("gold") },
- { "goldenrod", SLEN("goldenrod") },
- { "gray", SLEN("gray") },
- { "green", SLEN("green") },
- { "greenyellow", SLEN("greenyellow") },
- { "grey", SLEN("grey") },
- { "honeydew", SLEN("honeydew") },
- { "hotpink", SLEN("hotpink") },
- { "indianred", SLEN("indianred") },
- { "indigo", SLEN("indigo") },
- { "ivory", SLEN("ivory") },
- { "khaki", SLEN("khaki") },
- { "lavender", SLEN("lavender") },
- { "lavenderblush", SLEN("lavenderblush") },
- { "lawngreen", SLEN("lawngreen") },
- { "lemonchiffon", SLEN("lemonchiffon") },
- { "lightblue", SLEN("lightblue") },
- { "lightcoral", SLEN("lightcoral") },
- { "lightcyan", SLEN("lightcyan") },
- { "lightgoldenrodyellow", SLEN("lightgoldenrodyellow") },
- { "lightgray", SLEN("lightgray") },
- { "lightgreen", SLEN("lightgreen") },
- { "lightgrey", SLEN("lightgrey") },
- { "lightpink", SLEN("lightpink") },
- { "lightsalmon", SLEN("lightsalmon") },
- { "lightseagreen", SLEN("lightseagreen") },
- { "lightskyblue", SLEN("lightskyblue") },
- { "lightslateblue", SLEN("lightslateblue") },
- { "lightslategray", SLEN("lightslategray") },
- { "lightslategrey", SLEN("lightslategrey") },
- { "lightsteelblue", SLEN("lightsteelblue") },
- { "lightyellow", SLEN("lightyellow") },
- { "lime", SLEN("lime") },
- { "limegreen", SLEN("limegreen") },
- { "linen", SLEN("linen") },
- { "magenta", SLEN("magenta") },
- { "maroon", SLEN("maroon") },
- { "mediumaquamarine", SLEN("mediumaquamarine") },
- { "mediumblue", SLEN("mediumblue") },
- { "mediumorchid", SLEN("mediumorchid") },
- { "mediumpurple", SLEN("mediumpurple") },
- { "mediumseagreen", SLEN("mediumseagreen") },
- { "mediumslateblue", SLEN("mediumslateblue") },
- { "mediumspringgreen", SLEN("mediumspringgreen") },
- { "mediumturquoise", SLEN("mediumturquoise") },
- { "mediumvioletred", SLEN("mediumvioletred") },
- { "midnightblue", SLEN("midnightblue") },
- { "mintcream", SLEN("mintcream") },
- { "mistyrose", SLEN("mistyrose") },
- { "moccasin", SLEN("moccasin") },
- { "navajowhite", SLEN("navajowhite") },
- { "navy", SLEN("navy") },
- { "oldlace", SLEN("oldlace") },
- { "olive", SLEN("olive") },
- { "olivedrab", SLEN("olivedrab") },
- { "orange", SLEN("orange") },
- { "orangered", SLEN("orangered") },
- { "orchid", SLEN("orchid") },
- { "palegoldenrod", SLEN("palegoldenrod") },
- { "palegreen", SLEN("palegreen") },
- { "paleturquoise", SLEN("paleturquoise") },
- { "palevioletred", SLEN("palevioletred") },
- { "papayawhip", SLEN("papayawhip") },
- { "peachpuff", SLEN("peachpuff") },
- { "peru", SLEN("peru") },
- { "pink", SLEN("pink") },
- { "plum", SLEN("plum") },
- { "powderblue", SLEN("powderblue") },
- { "purple", SLEN("purple") },
- { "red", SLEN("red") },
- { "rosybrown", SLEN("rosybrown") },
- { "royalblue", SLEN("royalblue") },
- { "saddlebrown", SLEN("saddlebrown") },
- { "salmon", SLEN("salmon") },
- { "sandybrown", SLEN("sandybrown") },
- { "seagreen", SLEN("seagreen") },
- { "seashell", SLEN("seashell") },
- { "sienna", SLEN("sienna") },
- { "silver", SLEN("silver") },
- { "skyblue", SLEN("skyblue") },
- { "slateblue", SLEN("slateblue") },
- { "slategray", SLEN("slategray") },
- { "slategrey", SLEN("slategrey") },
- { "snow", SLEN("snow") },
- { "springgreen", SLEN("springgreen") },
- { "steelblue", SLEN("steelblue") },
- { "tan", SLEN("tan") },
- { "teal", SLEN("teal") },
- { "thistle", SLEN("thistle") },
- { "tomato", SLEN("tomato") },
- { "turquoise", SLEN("turquoise") },
- { "violet", SLEN("violet") },
- { "violetred", SLEN("violetred") },
- { "wheat", SLEN("wheat") },
- { "white", SLEN("white") },
- { "whitesmoke", SLEN("whitesmoke") },
- { "yellow", SLEN("yellow") },
- { "yellowgreen", SLEN("yellowgreen") }
+ SMAP("aliceblue"),
+ SMAP("antiquewhite"),
+ SMAP("aqua"),
+ SMAP("aquamarine"),
+ SMAP("azure"),
+ SMAP("beige"),
+ SMAP("bisque"),
+ SMAP("black"),
+ SMAP("blanchedalmond"),
+ SMAP("blue"),
+ SMAP("blueviolet"),
+ SMAP("brown"),
+ SMAP("burlywood"),
+ SMAP("cadetblue"),
+ SMAP("chartreuse"),
+ SMAP("chocolate"),
+ SMAP("coral"),
+ SMAP("cornflowerblue"),
+ SMAP("cornsilk"),
+ SMAP("crimson"),
+ SMAP("cyan"),
+ SMAP("darkblue"),
+ SMAP("darkcyan"),
+ SMAP("darkgoldenrod"),
+ SMAP("darkgray"),
+ SMAP("darkgreen"),
+ SMAP("darkgrey"),
+ SMAP("darkkhaki"),
+ SMAP("darkmagenta"),
+ SMAP("darkolivegreen"),
+ SMAP("darkorange"),
+ SMAP("darkorchid"),
+ SMAP("darkred"),
+ SMAP("darksalmon"),
+ SMAP("darkseagreen"),
+ SMAP("darkslateblue"),
+ SMAP("darkslategray"),
+ SMAP("darkslategrey"),
+ SMAP("darkturquoise"),
+ SMAP("darkviolet"),
+ SMAP("deeppink"),
+ SMAP("deepskyblue"),
+ SMAP("dimgray"),
+ SMAP("dimgrey"),
+ SMAP("dodgerblue"),
+ SMAP("feldspar"),
+ SMAP("firebrick"),
+ SMAP("floralwhite"),
+ SMAP("forestgreen"),
+ SMAP("fuchsia"),
+ SMAP("gainsboro"),
+ SMAP("ghostwhite"),
+ SMAP("gold"),
+ SMAP("goldenrod"),
+ SMAP("gray"),
+ SMAP("green"),
+ SMAP("greenyellow"),
+ SMAP("grey"),
+ SMAP("honeydew"),
+ SMAP("hotpink"),
+ SMAP("indianred"),
+ SMAP("indigo"),
+ SMAP("ivory"),
+ SMAP("khaki"),
+ SMAP("lavender"),
+ SMAP("lavenderblush"),
+ SMAP("lawngreen"),
+ SMAP("lemonchiffon"),
+ SMAP("lightblue"),
+ SMAP("lightcoral"),
+ SMAP("lightcyan"),
+ SMAP("lightgoldenrodyellow"),
+ SMAP("lightgray"),
+ SMAP("lightgreen"),
+ SMAP("lightgrey"),
+ SMAP("lightpink"),
+ SMAP("lightsalmon"),
+ SMAP("lightseagreen"),
+ SMAP("lightskyblue"),
+ SMAP("lightslateblue"),
+ SMAP("lightslategray"),
+ SMAP("lightslategrey"),
+ SMAP("lightsteelblue"),
+ SMAP("lightyellow"),
+ SMAP("lime"),
+ SMAP("limegreen"),
+ SMAP("linen"),
+ SMAP("magenta"),
+ SMAP("maroon"),
+ SMAP("mediumaquamarine"),
+ SMAP("mediumblue"),
+ SMAP("mediumorchid"),
+ SMAP("mediumpurple"),
+ SMAP("mediumseagreen"),
+ SMAP("mediumslateblue"),
+ SMAP("mediumspringgreen"),
+ SMAP("mediumturquoise"),
+ SMAP("mediumvioletred"),
+ SMAP("midnightblue"),
+ SMAP("mintcream"),
+ SMAP("mistyrose"),
+ SMAP("moccasin"),
+ SMAP("navajowhite"),
+ SMAP("navy"),
+ SMAP("oldlace"),
+ SMAP("olive"),
+ SMAP("olivedrab"),
+ SMAP("orange"),
+ SMAP("orangered"),
+ SMAP("orchid"),
+ SMAP("palegoldenrod"),
+ SMAP("palegreen"),
+ SMAP("paleturquoise"),
+ SMAP("palevioletred"),
+ SMAP("papayawhip"),
+ SMAP("peachpuff"),
+ SMAP("peru"),
+ SMAP("pink"),
+ SMAP("plum"),
+ SMAP("powderblue"),
+ SMAP("purple"),
+ SMAP("red"),
+ SMAP("rosybrown"),
+ SMAP("royalblue"),
+ SMAP("saddlebrown"),
+ SMAP("salmon"),
+ SMAP("sandybrown"),
+ SMAP("seagreen"),
+ SMAP("seashell"),
+ SMAP("sienna"),
+ SMAP("silver"),
+ SMAP("skyblue"),
+ SMAP("slateblue"),
+ SMAP("slategray"),
+ SMAP("slategrey"),
+ SMAP("snow"),
+ SMAP("springgreen"),
+ SMAP("steelblue"),
+ SMAP("tan"),
+ SMAP("teal"),
+ SMAP("thistle"),
+ SMAP("tomato"),
+ SMAP("turquoise"),
+ SMAP("violet"),
+ SMAP("violetred"),
+ SMAP("wheat"),
+ SMAP("white"),
+ SMAP("whitesmoke"),
+ SMAP("yellow"),
+ SMAP("yellowgreen")
};
diff --git a/src/parse/propstrings.h b/src/parse/propstrings.h
index 24b681b..fd24a47 100644
--- a/src/parse/propstrings.h
+++ b/src/parse/propstrings.h
@@ -83,6 +83,13 @@ enum {
LIGHTER, INSIDE, OUTSIDE, DISC, CIRCLE, SQUARE, DECIMAL,
DECIMAL_LEADING_ZERO, LOWER_ROMAN, UPPER_ROMAN, LOWER_GREEK,
LOWER_LATIN, UPPER_LATIN, ARMENIAN, GEORGIAN, LOWER_ALPHA, UPPER_ALPHA,
+ BINARY, OCTAL, LOWER_HEXADECIMAL, UPPER_HEXADECIMAL, ARABIC_INDIC,
+ LOWER_ARMENIAN, UPPER_ARMENIAN, BENGALI, CAMBODIAN, KHMER, CJK_DECIMAL,
+ DEVANAGARI, GUJARATI, GURMUKHI, HEBREW, KANNADA, LAO, MALAYALAM,
+ MONGOLIAN, MYANMAR, ORIYA, PERSIAN, TAMIL, TELUGU, THAI, TIBETAN,
+ CJK_EARTHLY_BRANCH, CJK_HEAVENLY_STEM, HIAGANA, HIAGANA_IROHA,
+ KATAKANA, KATAKANA_IROHA, JAPANESE_INFORMAL, JAPANESE_FORMAL,
+ KOREAN_HANGUL_FORMAL, KOREAN_HANJA_INFORMAL, KOREAN_HANJA_FORMAL,
INVERT, VISIBLE, ALWAYS, AVOID, X_LOW, LOW, HIGH, X_HIGH, LIBCSS_STATIC,
RELATIVE, ABSOLUTE, ONCE, DIGITS, CONTINUOUS, CODE, SPELL_OUT, X_SLOW,
SLOW, FAST, X_FAST, FASTER, SLOWER, CENTER, JUSTIFY, CAPITALIZE,
diff --git a/src/select/Makefile b/src/select/Makefile
index 025ad39..8b47673 100644
--- a/src/select/Makefile
+++ b/src/select/Makefile
@@ -2,6 +2,6 @@
select_generator:
python3 src/select/select_generator.py
-DIR_SOURCES := arena.c computed.c dispatch.c hash.c select.c font_face.c
+DIR_SOURCES := arena.c computed.c dispatch.c hash.c select.c font_face.c format_list_style.c
include $(NSBUILD)/Makefile.subdir
diff --git a/src/select/autogenerated_computed.h b/src/select/autogenerated_computed.h
index 4d21fad..7765f35 100644
--- a/src/select/autogenerated_computed.h
+++ b/src/select/autogenerated_computed.h
@@ -69,7 +69,7 @@ struct css_computed_style_i {
* line_height 2 + 5 4
* list_style_image 1 sizeof(ptr)
* list_style_position 2
- * list_style_type 4
+ * list_style_type 6
* margin_bottom 2 + 5 4
* margin_left 2 + 5 4
* margin_right 2 + 5 4
@@ -140,66 +140,66 @@ struct css_computed_style_i {
* quotes 1 sizeof(ptr)
*
* --- --- ---
- * 460 bits 228 + 8sizeof(ptr) bytes
+ * 462 bits 228 + 8sizeof(ptr) bytes
* ===================
* 286 + 8sizeof(ptr) bytes
*
* Bit allocations:
*
- * 0 ccccccccoooooooobbbbbbbbrrrrrrrr
- * column_rule_width; outline_width; border_left_width; border_bottom_width
+ * 0 bbbbbbbboooooooorrrrrrrrdddddddd
+ * border_left_width; border_top_width; border_bottom_width; border_right_width
*
- * 1 vvvvvvvvvbbbbbbbboooooooolllllll
- * vertical_align; border_top_width; border_right_width; letter_spacing
+ * 1 vvvvvvvvvooooooooccccccccmmmmmmm
+ * vertical_align; outline_width; column_rule_width; margin_top
*
* 2 ccccccccccccccccccccccccccpppppp
- * clip; padding_top
+ * clip; padding_left
*
- * 3 mmmmmmmaaaaaaarrrrrrrttttttddddd
- * max_width; margin_bottom; margin_left; text_indent; display
+ * 3 mmmmmmmrrrrrrrwwwwwwwttttttddddd
+ * max_height; right; width; text_indent; display
*
- * 4 wwwwwwwfffffffcccccccllllllloooo
- * word_spacing; flex_basis; column_gap; left; font_weight
+ * 4 fffffffmmmmmmmcccccccllllllltttt
+ * flex_basis; min_height; column_gap; left; text_align
*
- * 5 wwwwwwwhhhhhhhlllllllcccccccoooo
- * width; height; line_height; column_width; outline_style
+ * 5 cccccccmmmmmmmlllllllwwwwwwwbbbb
+ * column_width; margin_bottom; line_height; word_spacing; break_inside
*
- * 6 tttttttmmmmmmmiiiiiiiaaaaaaabbbb
- * top; max_height; min_width; margin_right; border_top_style
+ * 6 hhhhhhhlllllllmmmmmmmaaaaaaabbbb
+ * height; letter_spacing; min_width; margin_right; border_bottom_style
*
- * 7 rrrrrrrbbbbbbbmmmmmmmaaaaaaacccc
- * right; bottom; min_height; margin_top; column_rule_style
+ * 7 tttttttmmmmmmmbbbbbbbaaaaaaaoooo
+ * top; margin_left; bottom; max_width; border_top_style
*
- * 8 ppppppaaaaaaddddddtttttcccccbbbb
- * padding_left; padding_right; padding_bottom; text_decoration; cursor;
- * border_right_style
+ * 8 llllllppppppaaaaaaddddddtttttggg
+ * list_style_type; padding_top; padding_right; padding_bottom;
+ * text_decoration; page_break_after
*
- * 9 aaafffpppllliiiooovvvttteeeggguu
- * align_items; font_family; page_break_before; align_self; align_content;
- * overflow_x; overflow_y; text_transform; flex_direction; page_break_after;
- * unicode_bidi
+ * 9 cccccbbbbooooffffrrrruuuullllnnn
+ * cursor; break_before; border_left_style; font_weight; break_after;
+ * outline_style; column_rule_style; font_family
*
- * 10 jjjpppcccwwwbbddeeffooaallggkkrr
- * justify_content; position; clear; white_space; box_sizing; direction;
- * empty_cells; flex_wrap; column_rule_color; background_attachment;
- * column_span; page_break_inside; background_color; border_left_color
+ * 10 aaallliiipppbbccttoouuzzffeerrmm
+ * align_content; align_items; align_self; position; border_bottom_color;
+ * column_rule_color; table_layout; box_sizing; column_span; z_index;
+ * flex_wrap; empty_cells; border_left_color; column_count
*
- * 11 ffbbooccnnllwwrrvvuummddaattzzee
- * font_style; border_bottom_color; border_top_color; caption_side;
- * font_variant; column_count; writing_mode; border_collapse; visibility;
- * outline_color; column_fill; border_right_color; float; table_layout;
- * z_index; content
+ * 11 ffoobbppaannccrrddeeuulliittUUvv
+ * float; font_variant; background_attachment; page_break_inside;
+ * background_color; font_style; content; border_top_color; border_collapse;
+ * border_right_color; outline_color; column_fill; list_style_position;
+ * caption_side; unicode_bidi; visibility
*
- * 12 bbbbbbbbbbbaaaaaaaaaaafffffffffc
- * border_spacing; background_position; font_size; color
+ * 12 bbbbbbbbbbbaaaaaaaaaaafffffffffl
+ * border_spacing; background_position; font_size; flex_grow
*
- * 13 bbbbrrrrllllttttooooddddeeeeaaai
- * break_after; break_before; list_style_type; text_align; border_left_style;
- * border_bottom_style; break_inside; background_repeat; list_style_image
+ * 13 bbbboooaaawwwvvvtttcccpppjjjfffr
+ * border_right_style; overflow_y; background_repeat; white_space; overflow_x;
+ * text_transform; clear; page_break_before; justify_content; flex_direction;
+ * order
*
- * 14 llcbqopwfrue....................
- * list_style_position; counter_increment; background_image; quotes; order;
- * opacity; widows; flex_grow; orphans; counter_reset; flex_shrink
+ * 14 wwddlicobfqupr..................
+ * writing_mode; direction; list_style_image; widows; counter_reset; orphans;
+ * background_image; flex_shrink; quotes; counter_increment; opacity; color
*/
uint32_t bits[15];
diff --git a/src/select/autogenerated_propget.h b/src/select/autogenerated_propget.h
index f1b6092..39ce62a 100644
--- a/src/select/autogenerated_propget.h
+++ b/src/select/autogenerated_propget.h
@@ -6,9 +6,9 @@
*/
-#define ALIGN_CONTENT_INDEX 9
-#define ALIGN_CONTENT_SHIFT 17
-#define ALIGN_CONTENT_MASK 0xe0000
+#define ALIGN_CONTENT_INDEX 10
+#define ALIGN_CONTENT_SHIFT 29
+#define ALIGN_CONTENT_MASK 0xe0000000
static inline uint8_t get_align_content(const css_computed_style *style)
{
uint32_t bits = style->i.bits[ALIGN_CONTENT_INDEX];
@@ -23,9 +23,9 @@ static inline uint8_t get_align_content(const css_computed_style *style)
#undef ALIGN_CONTENT_SHIFT
#undef ALIGN_CONTENT_MASK
-#define ALIGN_ITEMS_INDEX 9
-#define ALIGN_ITEMS_SHIFT 29
-#define ALIGN_ITEMS_MASK 0xe0000000
+#define ALIGN_ITEMS_INDEX 10
+#define ALIGN_ITEMS_SHIFT 26
+#define ALIGN_ITEMS_MASK 0x1c000000
static inline uint8_t get_align_items(const css_computed_style *style)
{
uint32_t bits = style->i.bits[ALIGN_ITEMS_INDEX];
@@ -40,9 +40,9 @@ static inline uint8_t get_align_items(const css_computed_style *style)
#undef ALIGN_ITEMS_SHIFT
#undef ALIGN_ITEMS_MASK
-#define ALIGN_SELF_INDEX 9
-#define ALIGN_SELF_SHIFT 20
-#define ALIGN_SELF_MASK 0x700000
+#define ALIGN_SELF_INDEX 10
+#define ALIGN_SELF_SHIFT 23
+#define ALIGN_SELF_MASK 0x3800000
static inline uint8_t get_align_self(const css_computed_style *style)
{
uint32_t bits = style->i.bits[ALIGN_SELF_INDEX];
@@ -57,9 +57,9 @@ static inline uint8_t get_align_self(const css_computed_style *style)
#undef ALIGN_SELF_SHIFT
#undef ALIGN_SELF_MASK
-#define BACKGROUND_ATTACHMENT_INDEX 10
-#define BACKGROUND_ATTACHMENT_SHIFT 8
-#define BACKGROUND_ATTACHMENT_MASK 0x300
+#define BACKGROUND_ATTACHMENT_INDEX 11
+#define BACKGROUND_ATTACHMENT_SHIFT 26
+#define BACKGROUND_ATTACHMENT_MASK 0xc000000
static inline uint8_t get_background_attachment(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BACKGROUND_ATTACHMENT_INDEX];
@@ -74,9 +74,9 @@ static inline uint8_t get_background_attachment(const css_computed_style *style)
#undef BACKGROUND_ATTACHMENT_SHIFT
#undef BACKGROUND_ATTACHMENT_MASK
-#define BACKGROUND_COLOR_INDEX 10
-#define BACKGROUND_COLOR_SHIFT 2
-#define BACKGROUND_COLOR_MASK 0xc
+#define BACKGROUND_COLOR_INDEX 11
+#define BACKGROUND_COLOR_SHIFT 22
+#define BACKGROUND_COLOR_MASK 0xc00000
static inline uint8_t get_background_color(const css_computed_style *style,
css_color *color)
{
@@ -94,8 +94,8 @@ static inline uint8_t get_background_color(const css_computed_style *style,
#undef BACKGROUND_COLOR_MASK
#define BACKGROUND_IMAGE_INDEX 14
-#define BACKGROUND_IMAGE_SHIFT 28
-#define BACKGROUND_IMAGE_MASK 0x10000000
+#define BACKGROUND_IMAGE_SHIFT 23
+#define BACKGROUND_IMAGE_MASK 0x800000
static inline uint8_t get_background_image(const css_computed_style *style,
lwc_string **string)
{
@@ -138,8 +138,8 @@ static inline uint8_t get_background_position(const css_computed_style *style,
#undef BACKGROUND_POSITION_MASK
#define BACKGROUND_REPEAT_INDEX 13
-#define BACKGROUND_REPEAT_SHIFT 1
-#define BACKGROUND_REPEAT_MASK 0xe
+#define BACKGROUND_REPEAT_SHIFT 22
+#define BACKGROUND_REPEAT_MASK 0x1c00000
static inline uint8_t get_background_repeat(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BACKGROUND_REPEAT_INDEX];
@@ -154,9 +154,9 @@ static inline uint8_t get_background_repeat(const css_computed_style *style)
#undef BACKGROUND_REPEAT_SHIFT
#undef BACKGROUND_REPEAT_MASK
-#define BORDER_BOTTOM_COLOR_INDEX 11
-#define BORDER_BOTTOM_COLOR_SHIFT 28
-#define BORDER_BOTTOM_COLOR_MASK 0x30000000
+#define BORDER_BOTTOM_COLOR_INDEX 10
+#define BORDER_BOTTOM_COLOR_SHIFT 18
+#define BORDER_BOTTOM_COLOR_MASK 0xc0000
static inline uint8_t get_border_bottom_color(const css_computed_style *style,
css_color *color)
{
@@ -173,9 +173,9 @@ static inline uint8_t get_border_bottom_color(const css_computed_style *style,
#undef BORDER_BOTTOM_COLOR_SHIFT
#undef BORDER_BOTTOM_COLOR_MASK
-#define BORDER_BOTTOM_STYLE_INDEX 13
-#define BORDER_BOTTOM_STYLE_SHIFT 8
-#define BORDER_BOTTOM_STYLE_MASK 0xf00
+#define BORDER_BOTTOM_STYLE_INDEX 6
+#define BORDER_BOTTOM_STYLE_SHIFT 0
+#define BORDER_BOTTOM_STYLE_MASK 0xf
static inline uint8_t get_border_bottom_style(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BORDER_BOTTOM_STYLE_INDEX];
@@ -191,8 +191,8 @@ static inline uint8_t get_border_bottom_style(const css_computed_style *style)
#undef BORDER_BOTTOM_STYLE_MASK
#define BORDER_BOTTOM_WIDTH_INDEX 0
-#define BORDER_BOTTOM_WIDTH_SHIFT 0
-#define BORDER_BOTTOM_WIDTH_MASK 0xff
+#define BORDER_BOTTOM_WIDTH_SHIFT 8
+#define BORDER_BOTTOM_WIDTH_MASK 0xff00
static inline uint8_t get_border_bottom_width(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -213,8 +213,8 @@ static inline uint8_t get_border_bottom_width(const css_computed_style *style,
#undef BORDER_BOTTOM_WIDTH_MASK
#define BORDER_COLLAPSE_INDEX 11
-#define BORDER_COLLAPSE_SHIFT 16
-#define BORDER_COLLAPSE_MASK 0x30000
+#define BORDER_COLLAPSE_SHIFT 14
+#define BORDER_COLLAPSE_MASK 0xc000
static inline uint8_t get_border_collapse(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BORDER_COLLAPSE_INDEX];
@@ -230,8 +230,8 @@ static inline uint8_t get_border_collapse(const css_computed_style *style)
#undef BORDER_COLLAPSE_MASK
#define BORDER_LEFT_COLOR_INDEX 10
-#define BORDER_LEFT_COLOR_SHIFT 0
-#define BORDER_LEFT_COLOR_MASK 0x3
+#define BORDER_LEFT_COLOR_SHIFT 2
+#define BORDER_LEFT_COLOR_MASK 0xc
static inline uint8_t get_border_left_color(const css_computed_style *style,
css_color *color)
{
@@ -248,9 +248,9 @@ static inline uint8_t get_border_left_color(const css_computed_style *style,
#undef BORDER_LEFT_COLOR_SHIFT
#undef BORDER_LEFT_COLOR_MASK
-#define BORDER_LEFT_STYLE_INDEX 13
-#define BORDER_LEFT_STYLE_SHIFT 12
-#define BORDER_LEFT_STYLE_MASK 0xf000
+#define BORDER_LEFT_STYLE_INDEX 9
+#define BORDER_LEFT_STYLE_SHIFT 19
+#define BORDER_LEFT_STYLE_MASK 0x780000
static inline uint8_t get_border_left_style(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BORDER_LEFT_STYLE_INDEX];
@@ -266,8 +266,8 @@ static inline uint8_t get_border_left_style(const css_computed_style *style)
#undef BORDER_LEFT_STYLE_MASK
#define BORDER_LEFT_WIDTH_INDEX 0
-#define BORDER_LEFT_WIDTH_SHIFT 8
-#define BORDER_LEFT_WIDTH_MASK 0xff00
+#define BORDER_LEFT_WIDTH_SHIFT 24
+#define BORDER_LEFT_WIDTH_MASK 0xff000000
static inline uint8_t get_border_left_width(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -288,8 +288,8 @@ static inline uint8_t get_border_left_width(const css_computed_style *style,
#undef BORDER_LEFT_WIDTH_MASK
#define BORDER_RIGHT_COLOR_INDEX 11
-#define BORDER_RIGHT_COLOR_SHIFT 8
-#define BORDER_RIGHT_COLOR_MASK 0x300
+#define BORDER_RIGHT_COLOR_SHIFT 12
+#define BORDER_RIGHT_COLOR_MASK 0x3000
static inline uint8_t get_border_right_color(const css_computed_style *style,
css_color *color)
{
@@ -306,9 +306,9 @@ static inline uint8_t get_border_right_color(const css_computed_style *style,
#undef BORDER_RIGHT_COLOR_SHIFT
#undef BORDER_RIGHT_COLOR_MASK
-#define BORDER_RIGHT_STYLE_INDEX 8
-#define BORDER_RIGHT_STYLE_SHIFT 0
-#define BORDER_RIGHT_STYLE_MASK 0xf
+#define BORDER_RIGHT_STYLE_INDEX 13
+#define BORDER_RIGHT_STYLE_SHIFT 28
+#define BORDER_RIGHT_STYLE_MASK 0xf0000000
static inline uint8_t get_border_right_style(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BORDER_RIGHT_STYLE_INDEX];
@@ -323,9 +323,9 @@ static inline uint8_t get_border_right_style(const css_computed_style *style)
#undef BORDER_RIGHT_STYLE_SHIFT
#undef BORDER_RIGHT_STYLE_MASK
-#define BORDER_RIGHT_WIDTH_INDEX 1
-#define BORDER_RIGHT_WIDTH_SHIFT 7
-#define BORDER_RIGHT_WIDTH_MASK 0x7f80
+#define BORDER_RIGHT_WIDTH_INDEX 0
+#define BORDER_RIGHT_WIDTH_SHIFT 0
+#define BORDER_RIGHT_WIDTH_MASK 0xff
static inline uint8_t get_border_right_width(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -371,8 +371,8 @@ static inline uint8_t get_border_spacing(const css_computed_style *style,
#undef BORDER_SPACING_MASK
#define BORDER_TOP_COLOR_INDEX 11
-#define BORDER_TOP_COLOR_SHIFT 26
-#define BORDER_TOP_COLOR_MASK 0xc000000
+#define BORDER_TOP_COLOR_SHIFT 16
+#define BORDER_TOP_COLOR_MASK 0x30000
static inline uint8_t get_border_top_color(const css_computed_style *style,
css_color *color)
{
@@ -389,7 +389,7 @@ static inline uint8_t get_border_top_color(const css_computed_style *style,
#undef BORDER_TOP_COLOR_SHIFT
#undef BORDER_TOP_COLOR_MASK
-#define BORDER_TOP_STYLE_INDEX 6
+#define BORDER_TOP_STYLE_INDEX 7
#define BORDER_TOP_STYLE_SHIFT 0
#define BORDER_TOP_STYLE_MASK 0xf
static inline uint8_t get_border_top_style(const css_computed_style *style)
@@ -406,9 +406,9 @@ static inline uint8_t get_border_top_style(const css_computed_style *style)
#undef BORDER_TOP_STYLE_SHIFT
#undef BORDER_TOP_STYLE_MASK
-#define BORDER_TOP_WIDTH_INDEX 1
-#define BORDER_TOP_WIDTH_SHIFT 15
-#define BORDER_TOP_WIDTH_MASK 0x7f8000
+#define BORDER_TOP_WIDTH_INDEX 0
+#define BORDER_TOP_WIDTH_SHIFT 16
+#define BORDER_TOP_WIDTH_MASK 0xff0000
static inline uint8_t get_border_top_width(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -429,8 +429,8 @@ static inline uint8_t get_border_top_width(const css_computed_style *style,
#undef BORDER_TOP_WIDTH_MASK
#define BOTTOM_INDEX 7
-#define BOTTOM_SHIFT 18
-#define BOTTOM_MASK 0x1fc0000
+#define BOTTOM_SHIFT 11
+#define BOTTOM_MASK 0x3f800
static inline uint8_t get_bottom(
const css_computed_style *style,
css_fixed *length, css_unit *unit)
@@ -462,8 +462,8 @@ static inline uint8_t get_bottom_bits(
#undef BOTTOM_MASK
#define BOX_SIZING_INDEX 10
-#define BOX_SIZING_SHIFT 18
-#define BOX_SIZING_MASK 0xc0000
+#define BOX_SIZING_SHIFT 12
+#define BOX_SIZING_MASK 0x3000
static inline uint8_t get_box_sizing(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BOX_SIZING_INDEX];
@@ -478,9 +478,9 @@ static inline uint8_t get_box_sizing(const css_computed_style *style)
#undef BOX_SIZING_SHIFT
#undef BOX_SIZING_MASK
-#define BREAK_AFTER_INDEX 13
-#define BREAK_AFTER_SHIFT 28
-#define BREAK_AFTER_MASK 0xf0000000
+#define BREAK_AFTER_INDEX 9
+#define BREAK_AFTER_SHIFT 11
+#define BREAK_AFTER_MASK 0x7800
static inline uint8_t get_break_after(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BREAK_AFTER_INDEX];
@@ -495,9 +495,9 @@ static inline uint8_t get_break_after(const css_computed_style *style)
#undef BREAK_AFTER_SHIFT
#undef BREAK_AFTER_MASK
-#define BREAK_BEFORE_INDEX 13
-#define BREAK_BEFORE_SHIFT 24
-#define BREAK_BEFORE_MASK 0xf000000
+#define BREAK_BEFORE_INDEX 9
+#define BREAK_BEFORE_SHIFT 23
+#define BREAK_BEFORE_MASK 0x7800000
static inline uint8_t get_break_before(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BREAK_BEFORE_INDEX];
@@ -512,9 +512,9 @@ static inline uint8_t get_break_before(const css_computed_style *style)
#undef BREAK_BEFORE_SHIFT
#undef BREAK_BEFORE_MASK
-#define BREAK_INSIDE_INDEX 13
-#define BREAK_INSIDE_SHIFT 4
-#define BREAK_INSIDE_MASK 0xf0
+#define BREAK_INSIDE_INDEX 5
+#define BREAK_INSIDE_SHIFT 0
+#define BREAK_INSIDE_MASK 0xf
static inline uint8_t get_break_inside(const css_computed_style *style)
{
uint32_t bits = style->i.bits[BREAK_INSIDE_INDEX];
@@ -530,8 +530,8 @@ static inline uint8_t get_break_inside(const css_computed_style *style)
#undef BREAK_INSIDE_MASK
#define CAPTION_SIDE_INDEX 11
-#define CAPTION_SIDE_SHIFT 24
-#define CAPTION_SIDE_MASK 0x3000000
+#define CAPTION_SIDE_SHIFT 4
+#define CAPTION_SIDE_MASK 0x30
static inline uint8_t get_caption_side(const css_computed_style *style)
{
uint32_t bits = style->i.bits[CAPTION_SIDE_INDEX];
@@ -546,9 +546,9 @@ static inline uint8_t get_caption_side(const css_computed_style *style)
#undef CAPTION_SIDE_SHIFT
#undef CAPTION_SIDE_MASK
-#define CLEAR_INDEX 10
-#define CLEAR_SHIFT 23
-#define CLEAR_MASK 0x3800000
+#define CLEAR_INDEX 13
+#define CLEAR_SHIFT 10
+#define CLEAR_MASK 0x1c00
static inline uint8_t get_clear(const css_computed_style *style)
{
uint32_t bits = style->i.bits[CLEAR_INDEX];
@@ -605,9 +605,9 @@ static inline uint8_t get_clip(
#undef CLIP_SHIFT
#undef CLIP_MASK
-#define COLOR_INDEX 12
-#define COLOR_SHIFT 0
-#define COLOR_MASK 0x1
+#define COLOR_INDEX 14
+#define COLOR_SHIFT 18
+#define COLOR_MASK 0x40000
static inline uint8_t get_color(const css_computed_style *style, css_color
*color)
{
@@ -624,9 +624,9 @@ static inline uint8_t get_color(const css_computed_style *style, css_color
#undef COLOR_SHIFT
#undef COLOR_MASK
-#define COLUMN_COUNT_INDEX 11
-#define COLUMN_COUNT_SHIFT 20
-#define COLUMN_COUNT_MASK 0x300000
+#define COLUMN_COUNT_INDEX 10
+#define COLUMN_COUNT_SHIFT 0
+#define COLUMN_COUNT_MASK 0x3
static inline uint8_t get_column_count(const css_computed_style *style, int32_t
*integer)
{
@@ -644,8 +644,8 @@ static inline uint8_t get_column_count(const css_computed_style *style, int32_t
#undef COLUMN_COUNT_MASK
#define COLUMN_FILL_INDEX 11
-#define COLUMN_FILL_SHIFT 10
-#define COLUMN_FILL_MASK 0xc00
+#define COLUMN_FILL_SHIFT 8
+#define COLUMN_FILL_MASK 0x300
static inline uint8_t get_column_fill(const css_computed_style *style)
{
uint32_t bits = style->i.bits[COLUMN_FILL_INDEX];
@@ -683,8 +683,8 @@ static inline uint8_t get_column_gap(const css_computed_style *style, css_fixed
#undef COLUMN_GAP_MASK
#define COLUMN_RULE_COLOR_INDEX 10
-#define COLUMN_RULE_COLOR_SHIFT 10
-#define COLUMN_RULE_COLOR_MASK 0xc00
+#define COLUMN_RULE_COLOR_SHIFT 16
+#define COLUMN_RULE_COLOR_MASK 0x30000
static inline uint8_t get_column_rule_color(const css_computed_style *style,
css_color *color)
{
@@ -701,9 +701,9 @@ static inline uint8_t get_column_rule_color(const css_computed_style *style,
#undef COLUMN_RULE_COLOR_SHIFT
#undef COLUMN_RULE_COLOR_MASK
-#define COLUMN_RULE_STYLE_INDEX 7
-#define COLUMN_RULE_STYLE_SHIFT 0
-#define COLUMN_RULE_STYLE_MASK 0xf
+#define COLUMN_RULE_STYLE_INDEX 9
+#define COLUMN_RULE_STYLE_SHIFT 3
+#define COLUMN_RULE_STYLE_MASK 0x78
static inline uint8_t get_column_rule_style(const css_computed_style *style)
{
uint32_t bits = style->i.bits[COLUMN_RULE_STYLE_INDEX];
@@ -718,9 +718,9 @@ static inline uint8_t get_column_rule_style(const css_computed_style *style)
#undef COLUMN_RULE_STYLE_SHIFT
#undef COLUMN_RULE_STYLE_MASK
-#define COLUMN_RULE_WIDTH_INDEX 0
-#define COLUMN_RULE_WIDTH_SHIFT 24
-#define COLUMN_RULE_WIDTH_MASK 0xff000000
+#define COLUMN_RULE_WIDTH_INDEX 1
+#define COLUMN_RULE_WIDTH_SHIFT 7
+#define COLUMN_RULE_WIDTH_MASK 0x7f80
static inline uint8_t get_column_rule_width(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -741,8 +741,8 @@ static inline uint8_t get_column_rule_width(const css_computed_style *style,
#undef COLUMN_RULE_WIDTH_MASK
#define COLUMN_SPAN_INDEX 10
-#define COLUMN_SPAN_SHIFT 6
-#define COLUMN_SPAN_MASK 0xc0
+#define COLUMN_SPAN_SHIFT 10
+#define COLUMN_SPAN_MASK 0xc00
static inline uint8_t get_column_span(const css_computed_style *style)
{
uint32_t bits = style->i.bits[COLUMN_SPAN_INDEX];
@@ -758,8 +758,8 @@ static inline uint8_t get_column_span(const css_computed_style *style)
#undef COLUMN_SPAN_MASK
#define COLUMN_WIDTH_INDEX 5
-#define COLUMN_WIDTH_SHIFT 4
-#define COLUMN_WIDTH_MASK 0x7f0
+#define COLUMN_WIDTH_SHIFT 25
+#define COLUMN_WIDTH_MASK 0xfe000000
static inline uint8_t get_column_width(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -780,8 +780,8 @@ static inline uint8_t get_column_width(const css_computed_style *style,
#undef COLUMN_WIDTH_MASK
#define CONTENT_INDEX 11
-#define CONTENT_SHIFT 0
-#define CONTENT_MASK 0x3
+#define CONTENT_SHIFT 18
+#define CONTENT_MASK 0xc0000
static inline uint8_t get_content(const css_computed_style *style, const
css_computed_content_item **content_item)
{
@@ -801,8 +801,8 @@ static inline uint8_t get_content(const css_computed_style *style, const
#undef CONTENT_MASK
#define COUNTER_INCREMENT_INDEX 14
-#define COUNTER_INCREMENT_SHIFT 29
-#define COUNTER_INCREMENT_MASK 0x20000000
+#define COUNTER_INCREMENT_SHIFT 20
+#define COUNTER_INCREMENT_MASK 0x100000
static inline uint8_t get_counter_increment(const css_computed_style *style,
const css_computed_counter **counter_arr)
{
@@ -820,8 +820,8 @@ static inline uint8_t get_counter_increment(const css_computed_style *style,
#undef COUNTER_INCREMENT_MASK
#define COUNTER_RESET_INDEX 14
-#define COUNTER_RESET_SHIFT 21
-#define COUNTER_RESET_MASK 0x200000
+#define COUNTER_RESET_SHIFT 25
+#define COUNTER_RESET_MASK 0x2000000
static inline uint8_t get_counter_reset(const css_computed_style *style, const
css_computed_counter **counter_arr)
{
@@ -838,9 +838,9 @@ static inline uint8_t get_counter_reset(const css_computed_style *style, const
#undef COUNTER_RESET_SHIFT
#undef COUNTER_RESET_MASK
-#define CURSOR_INDEX 8
-#define CURSOR_SHIFT 4
-#define CURSOR_MASK 0x1f0
+#define CURSOR_INDEX 9
+#define CURSOR_SHIFT 27
+#define CURSOR_MASK 0xf8000000
static inline uint8_t get_cursor(const css_computed_style *style, lwc_string
***string_arr)
{
@@ -857,9 +857,9 @@ static inline uint8_t get_cursor(const css_computed_style *style, lwc_string
#undef CURSOR_SHIFT
#undef CURSOR_MASK
-#define DIRECTION_INDEX 10
-#define DIRECTION_SHIFT 16
-#define DIRECTION_MASK 0x30000
+#define DIRECTION_INDEX 14
+#define DIRECTION_SHIFT 28
+#define DIRECTION_MASK 0x30000000
static inline uint8_t get_direction(const css_computed_style *style)
{
uint32_t bits = style->i.bits[DIRECTION_INDEX];
@@ -892,8 +892,8 @@ static inline uint8_t get_display(const css_computed_style *style)
#undef DISPLAY_MASK
#define EMPTY_CELLS_INDEX 10
-#define EMPTY_CELLS_SHIFT 14
-#define EMPTY_CELLS_MASK 0xc000
+#define EMPTY_CELLS_SHIFT 4
+#define EMPTY_CELLS_MASK 0x30
static inline uint8_t get_empty_cells(const css_computed_style *style)
{
uint32_t bits = style->i.bits[EMPTY_CELLS_INDEX];
@@ -909,8 +909,8 @@ static inline uint8_t get_empty_cells(const css_computed_style *style)
#undef EMPTY_CELLS_MASK
#define FLEX_BASIS_INDEX 4
-#define FLEX_BASIS_SHIFT 18
-#define FLEX_BASIS_MASK 0x1fc0000
+#define FLEX_BASIS_SHIFT 25
+#define FLEX_BASIS_MASK 0xfe000000
static inline uint8_t get_flex_basis(const css_computed_style *style, css_fixed
*length, css_unit *unit)
{
@@ -930,9 +930,9 @@ static inline uint8_t get_flex_basis(const css_computed_style *style, css_fixed
#undef FLEX_BASIS_SHIFT
#undef FLEX_BASIS_MASK
-#define FLEX_DIRECTION_INDEX 9
-#define FLEX_DIRECTION_SHIFT 5
-#define FLEX_DIRECTION_MASK 0xe0
+#define FLEX_DIRECTION_INDEX 13
+#define FLEX_DIRECTION_SHIFT 1
+#define FLEX_DIRECTION_MASK 0xe
static inline uint8_t get_flex_direction(const css_computed_style *style)
{
uint32_t bits = style->i.bits[FLEX_DIRECTION_INDEX];
@@ -947,9 +947,9 @@ static inline uint8_t get_flex_direction(const css_computed_style *style)
#undef FLEX_DIRECTION_SHIFT
#undef FLEX_DIRECTION_MASK
-#define FLEX_GROW_INDEX 14
-#define FLEX_GROW_SHIFT 23
-#define FLEX_GROW_MASK 0x800000
+#define FLEX_GROW_INDEX 12
+#define FLEX_GROW_SHIFT 0
+#define FLEX_GROW_MASK 0x1
static inline uint8_t get_flex_grow(const css_computed_style *style, css_fixed
*fixed)
{
@@ -969,8 +969,8 @@ static inline uint8_t get_flex_grow(const css_computed_style *style, css_fixed
#undef FLEX_GROW_MASK
#define FLEX_SHRINK_INDEX 14
-#define FLEX_SHRINK_SHIFT 20
-#define FLEX_SHRINK_MASK 0x100000
+#define FLEX_SHRINK_SHIFT 22
+#define FLEX_SHRINK_MASK 0x400000
static inline uint8_t get_flex_shrink(const css_computed_style *style,
css_fixed *fixed)
{
@@ -990,8 +990,8 @@ static inline uint8_t get_flex_shrink(const css_computed_style *style,
#undef FLEX_SHRINK_MASK
#define FLEX_WRAP_INDEX 10
-#define FLEX_WRAP_SHIFT 12
-#define FLEX_WRAP_MASK 0x3000
+#define FLEX_WRAP_SHIFT 6
+#define FLEX_WRAP_MASK 0xc0
static inline uint8_t get_flex_wrap(const css_computed_style *style)
{
uint32_t bits = style->i.bits[FLEX_WRAP_INDEX];
@@ -1007,8 +1007,8 @@ static inline uint8_t get_flex_wrap(const css_computed_style *style)
#undef FLEX_WRAP_MASK
#define FLOAT_INDEX 11
-#define FLOAT_SHIFT 6
-#define FLOAT_MASK 0xc0
+#define FLOAT_SHIFT 30
+#define FLOAT_MASK 0xc0000000
static inline uint8_t get_float(const css_computed_style *style)
{
uint32_t bits = style->i.bits[FLOAT_INDEX];
@@ -1024,8 +1024,8 @@ static inline uint8_t get_float(const css_computed_style *style)
#undef FLOAT_MASK
#define FONT_FAMILY_INDEX 9
-#define FONT_FAMILY_SHIFT 26
-#define FONT_FAMILY_MASK 0x1c000000
+#define FONT_FAMILY_SHIFT 0
+#define FONT_FAMILY_MASK 0x7
static inline uint8_t get_font_family(const css_computed_style *style,
lwc_string ***string_arr)
{
@@ -1065,8 +1065,8 @@ static inline uint8_t get_font_size(const css_computed_style *style, css_fixed
#undef FONT_SIZE_MASK
#define FONT_STYLE_INDEX 11
-#define FONT_STYLE_SHIFT 30
-#define FONT_STYLE_MASK 0xc0000000
+#define FONT_STYLE_SHIFT 20
+#define FONT_STYLE_MASK 0x300000
static inline uint8_t get_font_style(const css_computed_style *style)
{
uint32_t bits = style->i.bits[FONT_STYLE_INDEX];
@@ -1082,8 +1082,8 @@ static inline uint8_t get_font_style(const css_computed_style *style)
#undef FONT_STYLE_MASK
#define FONT_VARIANT_INDEX 11
-#define FONT_VARIANT_SHIFT 22
-#define FONT_VARIANT_MASK 0xc00000
+#define FONT_VARIANT_SHIFT 28
+#define FONT_VARIANT_MASK 0x30000000
static inline uint8_t get_font_variant(const css_computed_style *style)
{
uint32_t bits = style->i.bits[FONT_VARIANT_INDEX];
@@ -1098,9 +1098,9 @@ static inline uint8_t get_font_variant(const css_computed_style *style)
#undef FONT_VARIANT_SHIFT
#undef FONT_VARIANT_MASK
-#define FONT_WEIGHT_INDEX 4
-#define FONT_WEIGHT_SHIFT 0
-#define FONT_WEIGHT_MASK 0xf
+#define FONT_WEIGHT_INDEX 9
+#define FONT_WEIGHT_SHIFT 15
+#define FONT_WEIGHT_MASK 0x78000
static inline uint8_t get_font_weight(const css_computed_style *style)
{
uint32_t bits = style->i.bits[FONT_WEIGHT_INDEX];
@@ -1115,9 +1115,9 @@ static inline uint8_t get_font_weight(const css_computed_style *style)
#undef FONT_WEIGHT_SHIFT
#undef FONT_WEIGHT_MASK
-#define HEIGHT_INDEX 5
-#define HEIGHT_SHIFT 18
-#define HEIGHT_MASK 0x1fc0000
+#define HEIGHT_INDEX 6
+#define HEIGHT_SHIFT 25
+#define HEIGHT_MASK 0xfe000000
static inline uint8_t get_height(const css_computed_style *style, css_fixed
*length, css_unit *unit)
{
@@ -1137,9 +1137,9 @@ static inline uint8_t get_height(const css_computed_style *style, css_fixed
#undef HEIGHT_SHIFT
#undef HEIGHT_MASK
-#define JUSTIFY_CONTENT_INDEX 10
-#define JUSTIFY_CONTENT_SHIFT 29
-#define JUSTIFY_CONTENT_MASK 0xe0000000
+#define JUSTIFY_CONTENT_INDEX 13
+#define JUSTIFY_CONTENT_SHIFT 4
+#define JUSTIFY_CONTENT_MASK 0x70
static inline uint8_t get_justify_content(const css_computed_style *style)
{
uint32_t bits = style->i.bits[JUSTIFY_CONTENT_INDEX];
@@ -1187,9 +1187,9 @@ static inline uint8_t get_left_bits(
#undef LEFT_SHIFT
#undef LEFT_MASK
-#define LETTER_SPACING_INDEX 1
-#define LETTER_SPACING_SHIFT 0
-#define LETTER_SPACING_MASK 0x7f
+#define LETTER_SPACING_INDEX 6
+#define LETTER_SPACING_SHIFT 18
+#define LETTER_SPACING_MASK 0x1fc0000
static inline uint8_t get_letter_spacing(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -1236,9 +1236,9 @@ static inline uint8_t get_line_height(
#undef LINE_HEIGHT_SHIFT
#undef LINE_HEIGHT_MASK
-#define LIST_STYLE_IMAGE_INDEX 13
-#define LIST_STYLE_IMAGE_SHIFT 0
-#define LIST_STYLE_IMAGE_MASK 0x1
+#define LIST_STYLE_IMAGE_INDEX 14
+#define LIST_STYLE_IMAGE_SHIFT 27
+#define LIST_STYLE_IMAGE_MASK 0x8000000
static inline uint8_t get_list_style_image(const css_computed_style *style,
lwc_string **string)
{
@@ -1255,9 +1255,9 @@ static inline uint8_t get_list_style_image(const css_computed_style *style,
#undef LIST_STYLE_IMAGE_SHIFT
#undef LIST_STYLE_IMAGE_MASK
-#define LIST_STYLE_POSITION_INDEX 14
-#define LIST_STYLE_POSITION_SHIFT 30
-#define LIST_STYLE_POSITION_MASK 0xc0000000
+#define LIST_STYLE_POSITION_INDEX 11
+#define LIST_STYLE_POSITION_SHIFT 6
+#define LIST_STYLE_POSITION_MASK 0xc0
static inline uint8_t get_list_style_position(const css_computed_style *style)
{
uint32_t bits = style->i.bits[LIST_STYLE_POSITION_INDEX];
@@ -1272,24 +1272,24 @@ static inline uint8_t get_list_style_position(const css_computed_style *style)
#undef LIST_STYLE_POSITION_SHIFT
#undef LIST_STYLE_POSITION_MASK
-#define LIST_STYLE_TYPE_INDEX 13
-#define LIST_STYLE_TYPE_SHIFT 20
-#define LIST_STYLE_TYPE_MASK 0xf00000
+#define LIST_STYLE_TYPE_INDEX 8
+#define LIST_STYLE_TYPE_SHIFT 26
+#define LIST_STYLE_TYPE_MASK 0xfc000000
static inline uint8_t get_list_style_type(const css_computed_style *style)
{
uint32_t bits = style->i.bits[LIST_STYLE_TYPE_INDEX];
bits &= LIST_STYLE_TYPE_MASK;
bits >>= LIST_STYLE_TYPE_SHIFT;
- /* 4bits: tttt : type */
+ /* 6bits: tttttt : type */
- return (bits & 0xf);
+ return (bits & 0x3f);
}
#undef LIST_STYLE_TYPE_INDEX
#undef LIST_STYLE_TYPE_SHIFT
#undef LIST_STYLE_TYPE_MASK
-#define MARGIN_BOTTOM_INDEX 3
+#define MARGIN_BOTTOM_INDEX 5
#define MARGIN_BOTTOM_SHIFT 18
#define MARGIN_BOTTOM_MASK 0x1fc0000
static inline uint8_t get_margin_bottom(const css_computed_style *style,
@@ -1311,9 +1311,9 @@ static inline uint8_t get_margin_bottom(const css_computed_style *style,
#undef MARGIN_BOTTOM_SHIFT
#undef MARGIN_BOTTOM_MASK
-#define MARGIN_LEFT_INDEX 3
-#define MARGIN_LEFT_SHIFT 11
-#define MARGIN_LEFT_MASK 0x3f800
+#define MARGIN_LEFT_INDEX 7
+#define MARGIN_LEFT_SHIFT 18
+#define MARGIN_LEFT_MASK 0x1fc0000
static inline uint8_t get_margin_left(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -1355,9 +1355,9 @@ static inline uint8_t get_margin_right(const css_computed_style *style,
#undef MARGIN_RIGHT_SHIFT
#undef MARGIN_RIGHT_MASK
-#define MARGIN_TOP_INDEX 7
-#define MARGIN_TOP_SHIFT 4
-#define MARGIN_TOP_MASK 0x7f0
+#define MARGIN_TOP_INDEX 1
+#define MARGIN_TOP_SHIFT 0
+#define MARGIN_TOP_MASK 0x7f
static inline uint8_t get_margin_top(const css_computed_style *style, css_fixed
*length, css_unit *unit)
{
@@ -1377,9 +1377,9 @@ static inline uint8_t get_margin_top(const css_computed_style *style, css_fixed
#undef MARGIN_TOP_SHIFT
#undef MARGIN_TOP_MASK
-#define MAX_HEIGHT_INDEX 6
-#define MAX_HEIGHT_SHIFT 18
-#define MAX_HEIGHT_MASK 0x1fc0000
+#define MAX_HEIGHT_INDEX 3
+#define MAX_HEIGHT_SHIFT 25
+#define MAX_HEIGHT_MASK 0xfe000000
static inline uint8_t get_max_height(const css_computed_style *style, css_fixed
*length, css_unit *unit)
{
@@ -1399,9 +1399,9 @@ static inline uint8_t get_max_height(const css_computed_style *style, css_fixed
#undef MAX_HEIGHT_SHIFT
#undef MAX_HEIGHT_MASK
-#define MAX_WIDTH_INDEX 3
-#define MAX_WIDTH_SHIFT 25
-#define MAX_WIDTH_MASK 0xfe000000
+#define MAX_WIDTH_INDEX 7
+#define MAX_WIDTH_SHIFT 4
+#define MAX_WIDTH_MASK 0x7f0
static inline uint8_t get_max_width(const css_computed_style *style, css_fixed
*length, css_unit *unit)
{
@@ -1421,9 +1421,9 @@ static inline uint8_t get_max_width(const css_computed_style *style, css_fixed
#undef MAX_WIDTH_SHIFT
#undef MAX_WIDTH_MASK
-#define MIN_HEIGHT_INDEX 7
-#define MIN_HEIGHT_SHIFT 11
-#define MIN_HEIGHT_MASK 0x3f800
+#define MIN_HEIGHT_INDEX 4
+#define MIN_HEIGHT_SHIFT 18
+#define MIN_HEIGHT_MASK 0x1fc0000
static inline uint8_t get_min_height(const css_computed_style *style, css_fixed
*length, css_unit *unit)
{
@@ -1466,8 +1466,8 @@ static inline uint8_t get_min_width(const css_computed_style *style, css_fixed
#undef MIN_WIDTH_MASK
#define OPACITY_INDEX 14
-#define OPACITY_SHIFT 25
-#define OPACITY_MASK 0x2000000
+#define OPACITY_SHIFT 19
+#define OPACITY_MASK 0x80000
static inline uint8_t get_opacity(const css_computed_style *style, css_fixed
*fixed)
{
@@ -1486,9 +1486,9 @@ static inline uint8_t get_opacity(const css_computed_style *style, css_fixed
#undef OPACITY_SHIFT
#undef OPACITY_MASK
-#define ORDER_INDEX 14
-#define ORDER_SHIFT 26
-#define ORDER_MASK 0x4000000
+#define ORDER_INDEX 13
+#define ORDER_SHIFT 0
+#define ORDER_MASK 0x1
static inline uint8_t get_order(const css_computed_style *style, int32_t
*integer)
{
@@ -1508,8 +1508,8 @@ static inline uint8_t get_order(const css_computed_style *style, int32_t
#undef ORDER_MASK
#define ORPHANS_INDEX 14
-#define ORPHANS_SHIFT 22
-#define ORPHANS_MASK 0x400000
+#define ORPHANS_SHIFT 24
+#define ORPHANS_MASK 0x1000000
static inline uint8_t get_orphans(const css_computed_style *style, int32_t
*integer)
{
@@ -1527,8 +1527,8 @@ static inline uint8_t get_orphans(const css_computed_style *style, int32_t
#undef ORPHANS_MASK
#define OUTLINE_COLOR_INDEX 11
-#define OUTLINE_COLOR_SHIFT 12
-#define OUTLINE_COLOR_MASK 0x3000
+#define OUTLINE_COLOR_SHIFT 10
+#define OUTLINE_COLOR_MASK 0xc00
static inline uint8_t get_outline_color(const css_computed_style *style,
css_color *color)
{
@@ -1547,9 +1547,9 @@ static inline uint8_t get_outline_color(const css_computed_style *style,
#undef OUTLINE_COLOR_SHIFT
#undef OUTLINE_COLOR_MASK
-#define OUTLINE_STYLE_INDEX 5
-#define OUTLINE_STYLE_SHIFT 0
-#define OUTLINE_STYLE_MASK 0xf
+#define OUTLINE_STYLE_INDEX 9
+#define OUTLINE_STYLE_SHIFT 7
+#define OUTLINE_STYLE_MASK 0x780
static inline uint8_t get_outline_style(const css_computed_style *style)
{
uint32_t bits = style->i.bits[OUTLINE_STYLE_INDEX];
@@ -1564,9 +1564,9 @@ static inline uint8_t get_outline_style(const css_computed_style *style)
#undef OUTLINE_STYLE_SHIFT
#undef OUTLINE_STYLE_MASK
-#define OUTLINE_WIDTH_INDEX 0
-#define OUTLINE_WIDTH_SHIFT 16
-#define OUTLINE_WIDTH_MASK 0xff0000
+#define OUTLINE_WIDTH_INDEX 1
+#define OUTLINE_WIDTH_SHIFT 15
+#define OUTLINE_WIDTH_MASK 0x7f8000
static inline uint8_t get_outline_width(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -1586,9 +1586,9 @@ static inline uint8_t get_outline_width(const css_computed_style *style,
#undef OUTLINE_WIDTH_SHIFT
#undef OUTLINE_WIDTH_MASK
-#define OVERFLOW_X_INDEX 9
-#define OVERFLOW_X_SHIFT 14
-#define OVERFLOW_X_MASK 0x1c000
+#define OVERFLOW_X_INDEX 13
+#define OVERFLOW_X_SHIFT 16
+#define OVERFLOW_X_MASK 0x70000
static inline uint8_t get_overflow_x(const css_computed_style *style)
{
uint32_t bits = style->i.bits[OVERFLOW_X_INDEX];
@@ -1603,9 +1603,9 @@ static inline uint8_t get_overflow_x(const css_computed_style *style)
#undef OVERFLOW_X_SHIFT
#undef OVERFLOW_X_MASK
-#define OVERFLOW_Y_INDEX 9
-#define OVERFLOW_Y_SHIFT 11
-#define OVERFLOW_Y_MASK 0x3800
+#define OVERFLOW_Y_INDEX 13
+#define OVERFLOW_Y_SHIFT 25
+#define OVERFLOW_Y_MASK 0xe000000
static inline uint8_t get_overflow_y(const css_computed_style *style)
{
uint32_t bits = style->i.bits[OVERFLOW_Y_INDEX];
@@ -1621,8 +1621,8 @@ static inline uint8_t get_overflow_y(const css_computed_style *style)
#undef OVERFLOW_Y_MASK
#define PADDING_BOTTOM_INDEX 8
-#define PADDING_BOTTOM_SHIFT 14
-#define PADDING_BOTTOM_MASK 0xfc000
+#define PADDING_BOTTOM_SHIFT 8
+#define PADDING_BOTTOM_MASK 0x3f00
static inline uint8_t get_padding_bottom(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -1642,9 +1642,9 @@ static inline uint8_t get_padding_bottom(const css_computed_style *style,
#undef PADDING_BOTTOM_SHIFT
#undef PADDING_BOTTOM_MASK
-#define PADDING_LEFT_INDEX 8
-#define PADDING_LEFT_SHIFT 26
-#define PADDING_LEFT_MASK 0xfc000000
+#define PADDING_LEFT_INDEX 2
+#define PADDING_LEFT_SHIFT 0
+#define PADDING_LEFT_MASK 0x3f
static inline uint8_t get_padding_left(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -1665,8 +1665,8 @@ static inline uint8_t get_padding_left(const css_computed_style *style,
#undef PADDING_LEFT_MASK
#define PADDING_RIGHT_INDEX 8
-#define PADDING_RIGHT_SHIFT 20
-#define PADDING_RIGHT_MASK 0x3f00000
+#define PADDING_RIGHT_SHIFT 14
+#define PADDING_RIGHT_MASK 0xfc000
static inline uint8_t get_padding_right(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -1686,9 +1686,9 @@ static inline uint8_t get_padding_right(const css_computed_style *style,
#undef PADDING_RIGHT_SHIFT
#undef PADDING_RIGHT_MASK
-#define PADDING_TOP_INDEX 2
-#define PADDING_TOP_SHIFT 0
-#define PADDING_TOP_MASK 0x3f
+#define PADDING_TOP_INDEX 8
+#define PADDING_TOP_SHIFT 20
+#define PADDING_TOP_MASK 0x3f00000
static inline uint8_t get_padding_top(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -1708,9 +1708,9 @@ static inline uint8_t get_padding_top(const css_computed_style *style,
#undef PADDING_TOP_SHIFT
#undef PADDING_TOP_MASK
-#define PAGE_BREAK_AFTER_INDEX 9
-#define PAGE_BREAK_AFTER_SHIFT 2
-#define PAGE_BREAK_AFTER_MASK 0x1c
+#define PAGE_BREAK_AFTER_INDEX 8
+#define PAGE_BREAK_AFTER_SHIFT 0
+#define PAGE_BREAK_AFTER_MASK 0x7
static inline uint8_t get_page_break_after(const css_computed_style *style)
{
uint32_t bits = style->i.bits[PAGE_BREAK_AFTER_INDEX];
@@ -1725,9 +1725,9 @@ static inline uint8_t get_page_break_after(const css_computed_style *style)
#undef PAGE_BREAK_AFTER_SHIFT
#undef PAGE_BREAK_AFTER_MASK
-#define PAGE_BREAK_BEFORE_INDEX 9
-#define PAGE_BREAK_BEFORE_SHIFT 23
-#define PAGE_BREAK_BEFORE_MASK 0x3800000
+#define PAGE_BREAK_BEFORE_INDEX 13
+#define PAGE_BREAK_BEFORE_SHIFT 7
+#define PAGE_BREAK_BEFORE_MASK 0x380
static inline uint8_t get_page_break_before(const css_computed_style *style)
{
uint32_t bits = style->i.bits[PAGE_BREAK_BEFORE_INDEX];
@@ -1742,9 +1742,9 @@ static inline uint8_t get_page_break_before(const css_computed_style *style)
#undef PAGE_BREAK_BEFORE_SHIFT
#undef PAGE_BREAK_BEFORE_MASK
-#define PAGE_BREAK_INSIDE_INDEX 10
-#define PAGE_BREAK_INSIDE_SHIFT 4
-#define PAGE_BREAK_INSIDE_MASK 0x30
+#define PAGE_BREAK_INSIDE_INDEX 11
+#define PAGE_BREAK_INSIDE_SHIFT 24
+#define PAGE_BREAK_INSIDE_MASK 0x3000000
static inline uint8_t get_page_break_inside(const css_computed_style *style)
{
uint32_t bits = style->i.bits[PAGE_BREAK_INSIDE_INDEX];
@@ -1760,8 +1760,8 @@ static inline uint8_t get_page_break_inside(const css_computed_style *style)
#undef PAGE_BREAK_INSIDE_MASK
#define POSITION_INDEX 10
-#define POSITION_SHIFT 26
-#define POSITION_MASK 0x1c000000
+#define POSITION_SHIFT 20
+#define POSITION_MASK 0x700000
static inline uint8_t get_position(const css_computed_style *style)
{
uint32_t bits = style->i.bits[POSITION_INDEX];
@@ -1777,8 +1777,8 @@ static inline uint8_t get_position(const css_computed_style *style)
#undef POSITION_MASK
#define QUOTES_INDEX 14
-#define QUOTES_SHIFT 27
-#define QUOTES_MASK 0x8000000
+#define QUOTES_SHIFT 21
+#define QUOTES_MASK 0x200000
static inline uint8_t get_quotes(const css_computed_style *style, lwc_string
***string_arr)
{
@@ -1795,9 +1795,9 @@ static inline uint8_t get_quotes(const css_computed_style *style, lwc_string
#undef QUOTES_SHIFT
#undef QUOTES_MASK
-#define RIGHT_INDEX 7
-#define RIGHT_SHIFT 25
-#define RIGHT_MASK 0xfe000000
+#define RIGHT_INDEX 3
+#define RIGHT_SHIFT 18
+#define RIGHT_MASK 0x1fc0000
static inline uint8_t get_right(
const css_computed_style *style,
css_fixed *length, css_unit *unit)
@@ -1828,9 +1828,9 @@ static inline uint8_t get_right_bits(
#undef RIGHT_SHIFT
#undef RIGHT_MASK
-#define TABLE_LAYOUT_INDEX 11
-#define TABLE_LAYOUT_SHIFT 4
-#define TABLE_LAYOUT_MASK 0x30
+#define TABLE_LAYOUT_INDEX 10
+#define TABLE_LAYOUT_SHIFT 14
+#define TABLE_LAYOUT_MASK 0xc000
static inline uint8_t get_table_layout(const css_computed_style *style)
{
uint32_t bits = style->i.bits[TABLE_LAYOUT_INDEX];
@@ -1845,9 +1845,9 @@ static inline uint8_t get_table_layout(const css_computed_style *style)
#undef TABLE_LAYOUT_SHIFT
#undef TABLE_LAYOUT_MASK
-#define TEXT_ALIGN_INDEX 13
-#define TEXT_ALIGN_SHIFT 16
-#define TEXT_ALIGN_MASK 0xf0000
+#define TEXT_ALIGN_INDEX 4
+#define TEXT_ALIGN_SHIFT 0
+#define TEXT_ALIGN_MASK 0xf
static inline uint8_t get_text_align(const css_computed_style *style)
{
uint32_t bits = style->i.bits[TEXT_ALIGN_INDEX];
@@ -1863,8 +1863,8 @@ static inline uint8_t get_text_align(const css_computed_style *style)
#undef TEXT_ALIGN_MASK
#define TEXT_DECORATION_INDEX 8
-#define TEXT_DECORATION_SHIFT 9
-#define TEXT_DECORATION_MASK 0x3e00
+#define TEXT_DECORATION_SHIFT 3
+#define TEXT_DECORATION_MASK 0xf8
static inline uint8_t get_text_decoration(const css_computed_style *style)
{
uint32_t bits = style->i.bits[TEXT_DECORATION_INDEX];
@@ -1901,9 +1901,9 @@ static inline uint8_t get_text_indent(const css_computed_style *style,
#undef TEXT_INDENT_SHIFT
#undef TEXT_INDENT_MASK
-#define TEXT_TRANSFORM_INDEX 9
-#define TEXT_TRANSFORM_SHIFT 8
-#define TEXT_TRANSFORM_MASK 0x700
+#define TEXT_TRANSFORM_INDEX 13
+#define TEXT_TRANSFORM_SHIFT 13
+#define TEXT_TRANSFORM_MASK 0xe000
static inline uint8_t get_text_transform(const css_computed_style *style)
{
uint32_t bits = style->i.bits[TEXT_TRANSFORM_INDEX];
@@ -1918,7 +1918,7 @@ static inline uint8_t get_text_transform(const css_computed_style *style)
#undef TEXT_TRANSFORM_SHIFT
#undef TEXT_TRANSFORM_MASK
-#define TOP_INDEX 6
+#define TOP_INDEX 7
#define TOP_SHIFT 25
#define TOP_MASK 0xfe000000
static inline uint8_t get_top(
@@ -1951,9 +1951,9 @@ static inline uint8_t get_top_bits(
#undef TOP_SHIFT
#undef TOP_MASK
-#define UNICODE_BIDI_INDEX 9
-#define UNICODE_BIDI_SHIFT 0
-#define UNICODE_BIDI_MASK 0x3
+#define UNICODE_BIDI_INDEX 11
+#define UNICODE_BIDI_SHIFT 2
+#define UNICODE_BIDI_MASK 0xc
static inline uint8_t get_unicode_bidi(const css_computed_style *style)
{
uint32_t bits = style->i.bits[UNICODE_BIDI_INDEX];
@@ -1991,8 +1991,8 @@ static inline uint8_t get_vertical_align(const css_computed_style *style,
#undef VERTICAL_ALIGN_MASK
#define VISIBILITY_INDEX 11
-#define VISIBILITY_SHIFT 14
-#define VISIBILITY_MASK 0xc000
+#define VISIBILITY_SHIFT 0
+#define VISIBILITY_MASK 0x3
static inline uint8_t get_visibility(const css_computed_style *style)
{
uint32_t bits = style->i.bits[VISIBILITY_INDEX];
@@ -2007,9 +2007,9 @@ static inline uint8_t get_visibility(const css_computed_style *style)
#undef VISIBILITY_SHIFT
#undef VISIBILITY_MASK
-#define WHITE_SPACE_INDEX 10
-#define WHITE_SPACE_SHIFT 20
-#define WHITE_SPACE_MASK 0x700000
+#define WHITE_SPACE_INDEX 13
+#define WHITE_SPACE_SHIFT 19
+#define WHITE_SPACE_MASK 0x380000
static inline uint8_t get_white_space(const css_computed_style *style)
{
uint32_t bits = style->i.bits[WHITE_SPACE_INDEX];
@@ -2025,8 +2025,8 @@ static inline uint8_t get_white_space(const css_computed_style *style)
#undef WHITE_SPACE_MASK
#define WIDOWS_INDEX 14
-#define WIDOWS_SHIFT 24
-#define WIDOWS_MASK 0x1000000
+#define WIDOWS_SHIFT 26
+#define WIDOWS_MASK 0x4000000
static inline uint8_t get_widows(const css_computed_style *style, int32_t
*integer)
{
@@ -2043,9 +2043,9 @@ static inline uint8_t get_widows(const css_computed_style *style, int32_t
#undef WIDOWS_SHIFT
#undef WIDOWS_MASK
-#define WIDTH_INDEX 5
-#define WIDTH_SHIFT 25
-#define WIDTH_MASK 0xfe000000
+#define WIDTH_INDEX 3
+#define WIDTH_SHIFT 11
+#define WIDTH_MASK 0x3f800
static inline uint8_t get_width(const css_computed_style *style, css_fixed
*length, css_unit *unit)
{
@@ -2065,9 +2065,9 @@ static inline uint8_t get_width(const css_computed_style *style, css_fixed
#undef WIDTH_SHIFT
#undef WIDTH_MASK
-#define WORD_SPACING_INDEX 4
-#define WORD_SPACING_SHIFT 25
-#define WORD_SPACING_MASK 0xfe000000
+#define WORD_SPACING_INDEX 5
+#define WORD_SPACING_SHIFT 4
+#define WORD_SPACING_MASK 0x7f0
static inline uint8_t get_word_spacing(const css_computed_style *style,
css_fixed *length, css_unit *unit)
{
@@ -2087,9 +2087,9 @@ static inline uint8_t get_word_spacing(const css_computed_style *style,
#undef WORD_SPACING_SHIFT
#undef WORD_SPACING_MASK
-#define WRITING_MODE_INDEX 11
-#define WRITING_MODE_SHIFT 18
-#define WRITING_MODE_MASK 0xc0000
+#define WRITING_MODE_INDEX 14
+#define WRITING_MODE_SHIFT 30
+#define WRITING_MODE_MASK 0xc0000000
static inline uint8_t get_writing_mode(const css_computed_style *style)
{
uint32_t bits = style->i.bits[WRITING_MODE_INDEX];
@@ -2104,9 +2104,9 @@ static inline uint8_t get_writing_mode(const css_computed_style *style)
#undef WRITING_MODE_SHIFT
#undef WRITING_MODE_MASK
-#define Z_INDEX_INDEX 11
-#define Z_INDEX_SHIFT 2
-#define Z_INDEX_MASK 0xc
+#define Z_INDEX_INDEX 10
+#define Z_INDEX_SHIFT 8
+#define Z_INDEX_MASK 0x300
static inline uint8_t get_z_index(const css_computed_style *style, int32_t
*integer)
{
diff --git a/src/select/autogenerated_propset.h b/src/select/autogenerated_propset.h
index 2854896..56ff7c6 100644
--- a/src/select/autogenerated_propset.h
+++ b/src/select/autogenerated_propset.h
@@ -8,9 +8,9 @@
/** Default values are 'initial value', unless the property is inherited,
* in which case it is 'inherit'. */
-#define ALIGN_CONTENT_INDEX 9
-#define ALIGN_CONTENT_SHIFT 17
-#define ALIGN_CONTENT_MASK 0xe0000
+#define ALIGN_CONTENT_INDEX 10
+#define ALIGN_CONTENT_SHIFT 29
+#define ALIGN_CONTENT_MASK 0xe0000000
static inline css_error set_align_content(css_computed_style *style, uint8_t
type)
@@ -29,9 +29,9 @@ static inline css_error set_align_content(css_computed_style *style, uint8_t
#undef ALIGN_CONTENT_SHIFT
#undef ALIGN_CONTENT_MASK
-#define ALIGN_ITEMS_INDEX 9
-#define ALIGN_ITEMS_SHIFT 29
-#define ALIGN_ITEMS_MASK 0xe0000000
+#define ALIGN_ITEMS_INDEX 10
+#define ALIGN_ITEMS_SHIFT 26
+#define ALIGN_ITEMS_MASK 0x1c000000
static inline css_error set_align_items(css_computed_style *style, uint8_t type)
{
@@ -49,9 +49,9 @@ static inline css_error set_align_items(css_computed_style *style, uint8_t type)
#undef ALIGN_ITEMS_SHIFT
#undef ALIGN_ITEMS_MASK
-#define ALIGN_SELF_INDEX 9
-#define ALIGN_SELF_SHIFT 20
-#define ALIGN_SELF_MASK 0x700000
+#define ALIGN_SELF_INDEX 10
+#define ALIGN_SELF_SHIFT 23
+#define ALIGN_SELF_MASK 0x3800000
static inline css_error set_align_self(css_computed_style *style, uint8_t type)
{
@@ -69,9 +69,9 @@ static inline css_error set_align_self(css_computed_style *style, uint8_t type)
#undef ALIGN_SELF_SHIFT
#undef ALIGN_SELF_MASK
-#define BACKGROUND_ATTACHMENT_INDEX 10
-#define BACKGROUND_ATTACHMENT_SHIFT 8
-#define BACKGROUND_ATTACHMENT_MASK 0x300
+#define BACKGROUND_ATTACHMENT_INDEX 11
+#define BACKGROUND_ATTACHMENT_SHIFT 26
+#define BACKGROUND_ATTACHMENT_MASK 0xc000000
static inline css_error set_background_attachment(css_computed_style *style,
uint8_t type)
@@ -90,9 +90,9 @@ static inline css_error set_background_attachment(css_computed_style *style,
#undef BACKGROUND_ATTACHMENT_SHIFT
#undef BACKGROUND_ATTACHMENT_MASK
-#define BACKGROUND_COLOR_INDEX 10
-#define BACKGROUND_COLOR_SHIFT 2
-#define BACKGROUND_COLOR_MASK 0xc
+#define BACKGROUND_COLOR_INDEX 11
+#define BACKGROUND_COLOR_SHIFT 22
+#define BACKGROUND_COLOR_MASK 0xc00000
static inline css_error set_background_color(css_computed_style *style, uint8_t
type, css_color color)
@@ -114,8 +114,8 @@ static inline css_error set_background_color(css_computed_style *style, uint8_t
#undef BACKGROUND_COLOR_MASK
#define BACKGROUND_IMAGE_INDEX 14
-#define BACKGROUND_IMAGE_SHIFT 28
-#define BACKGROUND_IMAGE_MASK 0x10000000
+#define BACKGROUND_IMAGE_SHIFT 23
+#define BACKGROUND_IMAGE_MASK 0x800000
static inline css_error set_background_image(css_computed_style *style, uint8_t
type, lwc_string *string)
@@ -173,8 +173,8 @@ static inline css_error set_background_position(css_computed_style *style,
#undef BACKGROUND_POSITION_MASK
#define BACKGROUND_REPEAT_INDEX 13
-#define BACKGROUND_REPEAT_SHIFT 1
-#define BACKGROUND_REPEAT_MASK 0xe
+#define BACKGROUND_REPEAT_SHIFT 22
+#define BACKGROUND_REPEAT_MASK 0x1c00000
static inline css_error set_background_repeat(css_computed_style *style,
uint8_t type)
@@ -193,9 +193,9 @@ static inline css_error set_background_repeat(css_computed_style *style,
#undef BACKGROUND_REPEAT_SHIFT
#undef BACKGROUND_REPEAT_MASK
-#define BORDER_BOTTOM_COLOR_INDEX 11
-#define BORDER_BOTTOM_COLOR_SHIFT 28
-#define BORDER_BOTTOM_COLOR_MASK 0x30000000
+#define BORDER_BOTTOM_COLOR_INDEX 10
+#define BORDER_BOTTOM_COLOR_SHIFT 18
+#define BORDER_BOTTOM_COLOR_MASK 0xc0000
static inline css_error set_border_bottom_color(css_computed_style *style,
uint8_t type, css_color color)
@@ -216,9 +216,9 @@ static inline css_error set_border_bottom_color(css_computed_style *style,
#undef BORDER_BOTTOM_COLOR_SHIFT
#undef BORDER_BOTTOM_COLOR_MASK
-#define BORDER_BOTTOM_STYLE_INDEX 13
-#define BORDER_BOTTOM_STYLE_SHIFT 8
-#define BORDER_BOTTOM_STYLE_MASK 0xf00
+#define BORDER_BOTTOM_STYLE_INDEX 6
+#define BORDER_BOTTOM_STYLE_SHIFT 0
+#define BORDER_BOTTOM_STYLE_MASK 0xf
static inline css_error set_border_bottom_style(css_computed_style *style,
uint8_t type)
@@ -238,8 +238,8 @@ static inline css_error set_border_bottom_style(css_computed_style *style,
#undef BORDER_BOTTOM_STYLE_MASK
#define BORDER_BOTTOM_WIDTH_INDEX 0
-#define BORDER_BOTTOM_WIDTH_SHIFT 0
-#define BORDER_BOTTOM_WIDTH_MASK 0xff
+#define BORDER_BOTTOM_WIDTH_SHIFT 8
+#define BORDER_BOTTOM_WIDTH_MASK 0xff00
static inline css_error set_border_bottom_width(css_computed_style *style,
uint8_t type, css_fixed length, css_unit unit)
@@ -261,8 +261,8 @@ static inline css_error set_border_bottom_width(css_computed_style *style,
#undef BORDER_BOTTOM_WIDTH_MASK
#define BORDER_COLLAPSE_INDEX 11
-#define BORDER_COLLAPSE_SHIFT 16
-#define BORDER_COLLAPSE_MASK 0x30000
+#define BORDER_COLLAPSE_SHIFT 14
+#define BORDER_COLLAPSE_MASK 0xc000
static inline css_error set_border_collapse(css_computed_style *style, uint8_t
type)
@@ -282,8 +282,8 @@ static inline css_error set_border_collapse(css_computed_style *style, uint8_t
#undef BORDER_COLLAPSE_MASK
#define BORDER_LEFT_COLOR_INDEX 10
-#define BORDER_LEFT_COLOR_SHIFT 0
-#define BORDER_LEFT_COLOR_MASK 0x3
+#define BORDER_LEFT_COLOR_SHIFT 2
+#define BORDER_LEFT_COLOR_MASK 0xc
static inline css_error set_border_left_color(css_computed_style *style,
uint8_t type, css_color color)
@@ -304,9 +304,9 @@ static inline css_error set_border_left_color(css_computed_style *style,
#undef BORDER_LEFT_COLOR_SHIFT
#undef BORDER_LEFT_COLOR_MASK
-#define BORDER_LEFT_STYLE_INDEX 13
-#define BORDER_LEFT_STYLE_SHIFT 12
-#define BORDER_LEFT_STYLE_MASK 0xf000
+#define BORDER_LEFT_STYLE_INDEX 9
+#define BORDER_LEFT_STYLE_SHIFT 19
+#define BORDER_LEFT_STYLE_MASK 0x780000
static inline css_error set_border_left_style(css_computed_style *style,
uint8_t type)
@@ -326,8 +326,8 @@ static inline css_error set_border_left_style(css_computed_style *style,
#undef BORDER_LEFT_STYLE_MASK
#define BORDER_LEFT_WIDTH_INDEX 0
-#define BORDER_LEFT_WIDTH_SHIFT 8
-#define BORDER_LEFT_WIDTH_MASK 0xff00
+#define BORDER_LEFT_WIDTH_SHIFT 24
+#define BORDER_LEFT_WIDTH_MASK 0xff000000
static inline css_error set_border_left_width(css_computed_style *style,
uint8_t type, css_fixed length, css_unit unit)
@@ -349,8 +349,8 @@ static inline css_error set_border_left_width(css_computed_style *style,
#undef BORDER_LEFT_WIDTH_MASK
#define BORDER_RIGHT_COLOR_INDEX 11
-#define BORDER_RIGHT_COLOR_SHIFT 8
-#define BORDER_RIGHT_COLOR_MASK 0x300
+#define BORDER_RIGHT_COLOR_SHIFT 12
+#define BORDER_RIGHT_COLOR_MASK 0x3000
static inline css_error set_border_right_color(css_computed_style *style,
uint8_t type, css_color color)
@@ -371,9 +371,9 @@ static inline css_error set_border_right_color(css_computed_style *style,
#undef BORDER_RIGHT_COLOR_SHIFT
#undef BORDER_RIGHT_COLOR_MASK
-#define BORDER_RIGHT_STYLE_INDEX 8
-#define BORDER_RIGHT_STYLE_SHIFT 0
-#define BORDER_RIGHT_STYLE_MASK 0xf
+#define BORDER_RIGHT_STYLE_INDEX 13
+#define BORDER_RIGHT_STYLE_SHIFT 28
+#define BORDER_RIGHT_STYLE_MASK 0xf0000000
static inline css_error set_border_right_style(css_computed_style *style,
uint8_t type)
@@ -392,9 +392,9 @@ static inline css_error set_border_right_style(css_computed_style *style,
#undef BORDER_RIGHT_STYLE_SHIFT
#undef BORDER_RIGHT_STYLE_MASK
-#define BORDER_RIGHT_WIDTH_INDEX 1
-#define BORDER_RIGHT_WIDTH_SHIFT 7
-#define BORDER_RIGHT_WIDTH_MASK 0x7f80
+#define BORDER_RIGHT_WIDTH_INDEX 0
+#define BORDER_RIGHT_WIDTH_SHIFT 0
+#define BORDER_RIGHT_WIDTH_MASK 0xff
static inline css_error set_border_right_width(css_computed_style *style,
uint8_t type, css_fixed length, css_unit unit)
@@ -442,8 +442,8 @@ static inline css_error set_border_spacing(css_computed_style *style, uint8_t
#undef BORDER_SPACING_MASK
#define BORDER_TOP_COLOR_INDEX 11
-#define BORDER_TOP_COLOR_SHIFT 26
-#define BORDER_TOP_COLOR_MASK 0xc000000
+#define BORDER_TOP_COLOR_SHIFT 16
+#define BORDER_TOP_COLOR_MASK 0x30000
static inline css_error set_border_top_color(css_computed_style *style, uint8_t
type, css_color color)
@@ -464,7 +464,7 @@ static inline css_error set_border_top_color(css_computed_style *style, uint8_t
#undef BORDER_TOP_COLOR_SHIFT
#undef BORDER_TOP_COLOR_MASK
-#define BORDER_TOP_STYLE_INDEX 6
+#define BORDER_TOP_STYLE_INDEX 7
#define BORDER_TOP_STYLE_SHIFT 0
#define BORDER_TOP_STYLE_MASK 0xf
@@ -485,9 +485,9 @@ static inline css_error set_border_top_style(css_computed_style *style, uint8_t
#undef BORDER_TOP_STYLE_SHIFT
#undef BORDER_TOP_STYLE_MASK
-#define BORDER_TOP_WIDTH_INDEX 1
-#define BORDER_TOP_WIDTH_SHIFT 15
-#define BORDER_TOP_WIDTH_MASK 0x7f8000
+#define BORDER_TOP_WIDTH_INDEX 0
+#define BORDER_TOP_WIDTH_SHIFT 16
+#define BORDER_TOP_WIDTH_MASK 0xff0000
static inline css_error set_border_top_width(css_computed_style *style, uint8_t
type, css_fixed length, css_unit unit)
@@ -509,8 +509,8 @@ static inline css_error set_border_top_width(css_computed_style *style, uint8_t
#undef BORDER_TOP_WIDTH_MASK
#define BOTTOM_INDEX 7
-#define BOTTOM_SHIFT 18
-#define BOTTOM_MASK 0x1fc0000
+#define BOTTOM_SHIFT 11
+#define BOTTOM_MASK 0x3f800
static inline css_error set_bottom(css_computed_style *style, uint8_t type,
css_fixed length, css_unit unit)
@@ -532,8 +532,8 @@ static inline css_error set_bottom(css_computed_style *style, uint8_t type,
#undef BOTTOM_MASK
#define BOX_SIZING_INDEX 10
-#define BOX_SIZING_SHIFT 18
-#define BOX_SIZING_MASK 0xc0000
+#define BOX_SIZING_SHIFT 12
+#define BOX_SIZING_MASK 0x3000
static inline css_error set_box_sizing(css_computed_style *style, uint8_t type)
{
@@ -551,9 +551,9 @@ static inline css_error set_box_sizing(css_computed_style *style, uint8_t type)
#undef BOX_SIZING_SHIFT
#undef BOX_SIZING_MASK
-#define BREAK_AFTER_INDEX 13
-#define BREAK_AFTER_SHIFT 28
-#define BREAK_AFTER_MASK 0xf0000000
+#define BREAK_AFTER_INDEX 9
+#define BREAK_AFTER_SHIFT 11
+#define BREAK_AFTER_MASK 0x7800
static inline css_error set_break_after(css_computed_style *style, uint8_t type)
{
@@ -571,9 +571,9 @@ static inline css_error set_break_after(css_computed_style *style, uint8_t type)
#undef BREAK_AFTER_SHIFT
#undef BREAK_AFTER_MASK
-#define BREAK_BEFORE_INDEX 13
-#define BREAK_BEFORE_SHIFT 24
-#define BREAK_BEFORE_MASK 0xf000000
+#define BREAK_BEFORE_INDEX 9
+#define BREAK_BEFORE_SHIFT 23
+#define BREAK_BEFORE_MASK 0x7800000
static inline css_error set_break_before(css_computed_style *style, uint8_t
type)
@@ -592,9 +592,9 @@ static inline css_error set_break_before(css_computed_style *style, uint8_t
#undef BREAK_BEFORE_SHIFT
#undef BREAK_BEFORE_MASK
-#define BREAK_INSIDE_INDEX 13
-#define BREAK_INSIDE_SHIFT 4
-#define BREAK_INSIDE_MASK 0xf0
+#define BREAK_INSIDE_INDEX 5
+#define BREAK_INSIDE_SHIFT 0
+#define BREAK_INSIDE_MASK 0xf
static inline css_error set_break_inside(css_computed_style *style, uint8_t
type)
@@ -614,8 +614,8 @@ static inline css_error set_break_inside(css_computed_style *style, uint8_t
#undef BREAK_INSIDE_MASK
#define CAPTION_SIDE_INDEX 11
-#define CAPTION_SIDE_SHIFT 24
-#define CAPTION_SIDE_MASK 0x3000000
+#define CAPTION_SIDE_SHIFT 4
+#define CAPTION_SIDE_MASK 0x30
static inline css_error set_caption_side(css_computed_style *style, uint8_t
type)
@@ -634,9 +634,9 @@ static inline css_error set_caption_side(css_computed_style *style, uint8_t
#undef CAPTION_SIDE_SHIFT
#undef CAPTION_SIDE_MASK
-#define CLEAR_INDEX 10
-#define CLEAR_SHIFT 23
-#define CLEAR_MASK 0x3800000
+#define CLEAR_INDEX 13
+#define CLEAR_SHIFT 10
+#define CLEAR_MASK 0x1c00
static inline css_error set_clear(css_computed_style *style, uint8_t type)
{
@@ -696,9 +696,9 @@ static inline css_error set_clip(
#undef CLIP_SHIFT
#undef CLIP_MASK
-#define COLOR_INDEX 12
-#define COLOR_SHIFT 0
-#define COLOR_MASK 0x1
+#define COLOR_INDEX 14
+#define COLOR_SHIFT 18
+#define COLOR_MASK 0x40000
static inline css_error set_color(css_computed_style *style, uint8_t type,
css_color color)
@@ -718,9 +718,9 @@ static inline css_error set_color(css_computed_style *style, uint8_t type,
#undef COLOR_SHIFT
#undef COLOR_MASK
-#define COLUMN_COUNT_INDEX 11
-#define COLUMN_COUNT_SHIFT 20
-#define COLUMN_COUNT_MASK 0x300000
+#define COLUMN_COUNT_INDEX 10
+#define COLUMN_COUNT_SHIFT 0
+#define COLUMN_COUNT_MASK 0x3
static inline css_error set_column_count(css_computed_style *style, uint8_t
type, int32_t integer)
@@ -742,8 +742,8 @@ static inline css_error set_column_count(css_computed_style *style, uint8_t
#undef COLUMN_COUNT_MASK
#define COLUMN_FILL_INDEX 11
-#define COLUMN_FILL_SHIFT 10
-#define COLUMN_FILL_MASK 0xc00
+#define COLUMN_FILL_SHIFT 8
+#define COLUMN_FILL_MASK 0x300
static inline css_error set_column_fill(css_computed_style *style, uint8_t type)
{
@@ -785,8 +785,8 @@ static inline css_error set_column_gap(css_computed_style *style, uint8_t type,
#undef COLUMN_GAP_MASK
#define COLUMN_RULE_COLOR_INDEX 10
-#define COLUMN_RULE_COLOR_SHIFT 10
-#define COLUMN_RULE_COLOR_MASK 0xc00
+#define COLUMN_RULE_COLOR_SHIFT 16
+#define COLUMN_RULE_COLOR_MASK 0x30000
static inline css_error set_column_rule_color(css_computed_style *style,
uint8_t type, css_color color)
@@ -807,9 +807,9 @@ static inline css_error set_column_rule_color(css_computed_style *style,
#undef COLUMN_RULE_COLOR_SHIFT
#undef COLUMN_RULE_COLOR_MASK
-#define COLUMN_RULE_STYLE_INDEX 7
-#define COLUMN_RULE_STYLE_SHIFT 0
-#define COLUMN_RULE_STYLE_MASK 0xf
+#define COLUMN_RULE_STYLE_INDEX 9
+#define COLUMN_RULE_STYLE_SHIFT 3
+#define COLUMN_RULE_STYLE_MASK 0x78
static inline css_error set_column_rule_style(css_computed_style *style,
uint8_t type)
@@ -828,9 +828,9 @@ static inline css_error set_column_rule_style(css_computed_style *style,
#undef COLUMN_RULE_STYLE_SHIFT
#undef COLUMN_RULE_STYLE_MASK
-#define COLUMN_RULE_WIDTH_INDEX 0
-#define COLUMN_RULE_WIDTH_SHIFT 24
-#define COLUMN_RULE_WIDTH_MASK 0xff000000
+#define COLUMN_RULE_WIDTH_INDEX 1
+#define COLUMN_RULE_WIDTH_SHIFT 7
+#define COLUMN_RULE_WIDTH_MASK 0x7f80
static inline css_error set_column_rule_width(css_computed_style *style,
uint8_t type, css_fixed length, css_unit unit)
@@ -852,8 +852,8 @@ static inline css_error set_column_rule_width(css_computed_style *style,
#undef COLUMN_RULE_WIDTH_MASK
#define COLUMN_SPAN_INDEX 10
-#define COLUMN_SPAN_SHIFT 6
-#define COLUMN_SPAN_MASK 0xc0
+#define COLUMN_SPAN_SHIFT 10
+#define COLUMN_SPAN_MASK 0xc00
static inline css_error set_column_span(css_computed_style *style, uint8_t type)
{
@@ -872,8 +872,8 @@ static inline css_error set_column_span(css_computed_style *style, uint8_t type)
#undef COLUMN_SPAN_MASK
#define COLUMN_WIDTH_INDEX 5
-#define COLUMN_WIDTH_SHIFT 4
-#define COLUMN_WIDTH_MASK 0x7f0
+#define COLUMN_WIDTH_SHIFT 25
+#define COLUMN_WIDTH_MASK 0xfe000000
static inline css_error set_column_width(css_computed_style *style, uint8_t
type, css_fixed length, css_unit unit)
@@ -895,8 +895,8 @@ static inline css_error set_column_width(css_computed_style *style, uint8_t
#undef COLUMN_WIDTH_MASK
#define CONTENT_INDEX 11
-#define CONTENT_SHIFT 0
-#define CONTENT_MASK 0x3
+#define CONTENT_SHIFT 18
+#define CONTENT_MASK 0xc0000
static inline css_error set_content(
css_computed_style *style, uint8_t type,
css_computed_content_item *content)
@@ -978,8 +978,8 @@ static inline css_error set_content(
#undef CONTENT_MASK
#define COUNTER_INCREMENT_INDEX 14
-#define COUNTER_INCREMENT_SHIFT 29
-#define COUNTER_INCREMENT_MASK 0x20000000
+#define COUNTER_INCREMENT_SHIFT 20
+#define COUNTER_INCREMENT_MASK 0x100000
static inline css_error set_counter_increment(css_computed_style *style,
uint8_t type, css_computed_counter *counter_arr)
@@ -1016,8 +1016,8 @@ static inline css_error set_counter_increment(css_computed_style *style,
#undef COUNTER_INCREMENT_MASK
#define COUNTER_RESET_INDEX 14
-#define COUNTER_RESET_SHIFT 21
-#define COUNTER_RESET_MASK 0x200000
+#define COUNTER_RESET_SHIFT 25
+#define COUNTER_RESET_MASK 0x2000000
static inline css_error set_counter_reset(css_computed_style *style, uint8_t
type, css_computed_counter *counter_arr)
@@ -1053,9 +1053,9 @@ static inline css_error set_counter_reset(css_computed_style *style, uint8_t
#undef COUNTER_RESET_SHIFT
#undef COUNTER_RESET_MASK
-#define CURSOR_INDEX 8
-#define CURSOR_SHIFT 4
-#define CURSOR_MASK 0x1f0
+#define CURSOR_INDEX 9
+#define CURSOR_SHIFT 27
+#define CURSOR_MASK 0xf8000000
static inline css_error set_cursor(css_computed_style *style, uint8_t type,
lwc_string **string_arr)
@@ -1091,9 +1091,9 @@ static inline css_error set_cursor(css_computed_style *style, uint8_t type,
#undef CURSOR_SHIFT
#undef CURSOR_MASK
-#define DIRECTION_INDEX 10
-#define DIRECTION_SHIFT 16
-#define DIRECTION_MASK 0x30000
+#define DIRECTION_INDEX 14
+#define DIRECTION_SHIFT 28
+#define DIRECTION_MASK 0x30000000
static inline css_error set_direction(css_computed_style *style, uint8_t type)
{
@@ -1132,8 +1132,8 @@ static inline css_error set_display(css_computed_style *style, uint8_t type)
#undef DISPLAY_MASK
#define EMPTY_CELLS_INDEX 10
-#define EMPTY_CELLS_SHIFT 14
-#define EMPTY_CELLS_MASK 0xc000
+#define EMPTY_CELLS_SHIFT 4
+#define EMPTY_CELLS_MASK 0x30
static inline css_error set_empty_cells(css_computed_style *style, uint8_t type)
{
@@ -1152,8 +1152,8 @@ static inline css_error set_empty_cells(css_computed_style *style, uint8_t type)
#undef EMPTY_CELLS_MASK
#define FLEX_BASIS_INDEX 4
-#define FLEX_BASIS_SHIFT 18
-#define FLEX_BASIS_MASK 0x1fc0000
+#define FLEX_BASIS_SHIFT 25
+#define FLEX_BASIS_MASK 0xfe000000
static inline css_error set_flex_basis(css_computed_style *style, uint8_t type,
css_fixed length, css_unit unit)
@@ -1174,9 +1174,9 @@ static inline css_error set_flex_basis(css_computed_style *style, uint8_t type,
#undef FLEX_BASIS_SHIFT
#undef FLEX_BASIS_MASK
-#define FLEX_DIRECTION_INDEX 9
-#define FLEX_DIRECTION_SHIFT 5
-#define FLEX_DIRECTION_MASK 0xe0
+#define FLEX_DIRECTION_INDEX 13
+#define FLEX_DIRECTION_SHIFT 1
+#define FLEX_DIRECTION_MASK 0xe
static inline css_error set_flex_direction(css_computed_style *style, uint8_t
type)
@@ -1195,9 +1195,9 @@ static inline css_error set_flex_direction(css_computed_style *style, uint8_t
#undef FLEX_DIRECTION_SHIFT
#undef FLEX_DIRECTION_MASK
-#define FLEX_GROW_INDEX 14
-#define FLEX_GROW_SHIFT 23
-#define FLEX_GROW_MASK 0x800000
+#define FLEX_GROW_INDEX 12
+#define FLEX_GROW_SHIFT 0
+#define FLEX_GROW_MASK 0x1
static inline css_error set_flex_grow(css_computed_style *style, uint8_t type,
css_fixed fixed)
@@ -1219,8 +1219,8 @@ static inline css_error set_flex_grow(css_computed_style *style, uint8_t type,
#undef FLEX_GROW_MASK
#define FLEX_SHRINK_INDEX 14
-#define FLEX_SHRINK_SHIFT 20
-#define FLEX_SHRINK_MASK 0x100000
+#define FLEX_SHRINK_SHIFT 22
+#define FLEX_SHRINK_MASK 0x400000
static inline css_error set_flex_shrink(css_computed_style *style, uint8_t
type, css_fixed fixed)
@@ -1242,8 +1242,8 @@ static inline css_error set_flex_shrink(css_computed_style *style, uint8_t
#undef FLEX_SHRINK_MASK
#define FLEX_WRAP_INDEX 10
-#define FLEX_WRAP_SHIFT 12
-#define FLEX_WRAP_MASK 0x3000
+#define FLEX_WRAP_SHIFT 6
+#define FLEX_WRAP_MASK 0xc0
static inline css_error set_flex_wrap(css_computed_style *style, uint8_t type)
{
@@ -1262,8 +1262,8 @@ static inline css_error set_flex_wrap(css_computed_style *style, uint8_t type)
#undef FLEX_WRAP_MASK
#define FLOAT_INDEX 11
-#define FLOAT_SHIFT 6
-#define FLOAT_MASK 0xc0
+#define FLOAT_SHIFT 30
+#define FLOAT_MASK 0xc0000000
static inline css_error set_float(css_computed_style *style, uint8_t type)
{
@@ -1281,8 +1281,8 @@ static inline css_error set_float(css_computed_style *style, uint8_t type)
#undef FLOAT_MASK
#define FONT_FAMILY_INDEX 9
-#define FONT_FAMILY_SHIFT 26
-#define FONT_FAMILY_MASK 0x1c000000
+#define FONT_FAMILY_SHIFT 0
+#define FONT_FAMILY_MASK 0x7
static inline css_error set_font_family(css_computed_style *style, uint8_t
type, lwc_string **string_arr)
@@ -1342,8 +1342,8 @@ static inline css_error set_font_size(css_computed_style *style, uint8_t type,
#undef FONT_SIZE_MASK
#define FONT_STYLE_INDEX 11
-#define FONT_STYLE_SHIFT 30
-#define FONT_STYLE_MASK 0xc0000000
+#define FONT_STYLE_SHIFT 20
+#define FONT_STYLE_MASK 0x300000
static inline css_error set_font_style(css_computed_style *style, uint8_t type)
{
@@ -1362,8 +1362,8 @@ static inline css_error set_font_style(css_computed_style *style, uint8_t type)
#undef FONT_STYLE_MASK
#define FONT_VARIANT_INDEX 11
-#define FONT_VARIANT_SHIFT 22
-#define FONT_VARIANT_MASK 0xc00000
+#define FONT_VARIANT_SHIFT 28
+#define FONT_VARIANT_MASK 0x30000000
static inline css_error set_font_variant(css_computed_style *style, uint8_t
type)
@@ -1382,9 +1382,9 @@ static inline css_error set_font_variant(css_computed_style *style, uint8_t
#undef FONT_VARIANT_SHIFT
#undef FONT_VARIANT_MASK
-#define FONT_WEIGHT_INDEX 4
-#define FONT_WEIGHT_SHIFT 0
-#define FONT_WEIGHT_MASK 0xf
+#define FONT_WEIGHT_INDEX 9
+#define FONT_WEIGHT_SHIFT 15
+#define FONT_WEIGHT_MASK 0x78000
static inline css_error set_font_weight(css_computed_style *style, uint8_t type)
{
@@ -1402,9 +1402,9 @@ static inline css_error set_font_weight(css_computed_style *style, uint8_t type)
#undef FONT_WEIGHT_SHIFT
#undef FONT_WEIGHT_MASK
-#define HEIGHT_INDEX 5
-#define HEIGHT_SHIFT 18
-#define HEIGHT_MASK 0x1fc0000
+#define HEIGHT_INDEX 6
+#define HEIGHT_SHIFT 25
+#define HEIGHT_MASK 0xfe000000
static inline css_error set_height(css_computed_style *style, uint8_t type,
css_fixed length, css_unit unit)
@@ -1425,9 +1425,9 @@ static inline css_error set_height(css_computed_style *style, uint8_t type,
#undef HEIGHT_SHIFT
#undef HEIGHT_MASK
-#define JUSTIFY_CONTENT_INDEX 10
-#define JUSTIFY_CONTENT_SHIFT 29
-#define JUSTIFY_CONTENT_MASK 0xe0000000
+#define JUSTIFY_CONTENT_INDEX 13
+#define JUSTIFY_CONTENT_SHIFT 4
+#define JUSTIFY_CONTENT_MASK 0x70
static inline css_error set_justify_content(css_computed_style *style, uint8_t
type)
@@ -1469,9 +1469,9 @@ static inline css_error set_left(css_computed_style *style, uint8_t type,
#undef LEFT_SHIFT
#undef LEFT_MASK
-#define LETTER_SPACING_INDEX 1
-#define LETTER_SPACING_SHIFT 0
-#define LETTER_SPACING_MASK 0x7f
+#define LETTER_SPACING_INDEX 6
+#define LETTER_SPACING_SHIFT 18
+#define LETTER_SPACING_MASK 0x1fc0000
static inline css_error set_letter_spacing(css_computed_style *style, uint8_t
type, css_fixed length, css_unit unit)
@@ -1515,9 +1515,9 @@ static inline css_error set_line_height(css_computed_style *style, uint8_t
#undef LINE_HEIGHT_SHIFT
#undef LINE_HEIGHT_MASK
-#define LIST_STYLE_IMAGE_INDEX 13
-#define LIST_STYLE_IMAGE_SHIFT 0
-#define LIST_STYLE_IMAGE_MASK 0x1
+#define LIST_STYLE_IMAGE_INDEX 14
+#define LIST_STYLE_IMAGE_SHIFT 27
+#define LIST_STYLE_IMAGE_MASK 0x8000000
static inline css_error set_list_style_image(css_computed_style *style, uint8_t
type, lwc_string *string)
@@ -1547,9 +1547,9 @@ static inline css_error set_list_style_image(css_computed_style *style, uint8_t
#undef LIST_STYLE_IMAGE_SHIFT
#undef LIST_STYLE_IMAGE_MASK
-#define LIST_STYLE_POSITION_INDEX 14
-#define LIST_STYLE_POSITION_SHIFT 30
-#define LIST_STYLE_POSITION_MASK 0xc0000000
+#define LIST_STYLE_POSITION_INDEX 11
+#define LIST_STYLE_POSITION_SHIFT 6
+#define LIST_STYLE_POSITION_MASK 0xc0
static inline css_error set_list_style_position(css_computed_style *style,
uint8_t type)
@@ -1568,9 +1568,9 @@ static inline css_error set_list_style_position(css_computed_style *style,
#undef LIST_STYLE_POSITION_SHIFT
#undef LIST_STYLE_POSITION_MASK
-#define LIST_STYLE_TYPE_INDEX 13
-#define LIST_STYLE_TYPE_SHIFT 20
-#define LIST_STYLE_TYPE_MASK 0xf00000
+#define LIST_STYLE_TYPE_INDEX 8
+#define LIST_STYLE_TYPE_SHIFT 26
+#define LIST_STYLE_TYPE_MASK 0xfc000000
static inline css_error set_list_style_type(css_computed_style *style, uint8_t
type)
@@ -1579,8 +1579,8 @@ static inline css_error set_list_style_type(css_computed_style *style, uint8_t
bits = &style->i.bits[LIST_STYLE_TYPE_INDEX];
- /* 4bits: tttt : type */
- *bits = (*bits & ~LIST_STYLE_TYPE_MASK) | (((uint32_t)type & 0xf) <<
+ /* 6bits: tttttt : type */
+ *bits = (*bits & ~LIST_STYLE_TYPE_MASK) | (((uint32_t)type & 0x3f) <<
LIST_STYLE_TYPE_SHIFT);
return CSS_OK;
@@ -1589,7 +1589,7 @@ static inline css_error set_list_style_type(css_computed_style *style, uint8_t
#undef LIST_STYLE_TYPE_SHIFT
#undef LIST_STYLE_TYPE_MASK
-#define MARGIN_BOTTOM_INDEX 3
+#define MARGIN_BOTTOM_INDEX 5
#define MARGIN_BOTTOM_SHIFT 18
#define MARGIN_BOTTOM_MASK 0x1fc0000
@@ -1612,9 +1612,9 @@ static inline css_error set_margin_bottom(css_computed_style *style, uint8_t
#undef MARGIN_BOTTOM_SHIFT
#undef MARGIN_BOTTOM_MASK
-#define MARGIN_LEFT_INDEX 3
-#define MARGIN_LEFT_SHIFT 11
-#define MARGIN_LEFT_MASK 0x3f800
+#define MARGIN_LEFT_INDEX 7
+#define MARGIN_LEFT_SHIFT 18
+#define MARGIN_LEFT_MASK 0x1fc0000
static inline css_error set_margin_left(css_computed_style *style, uint8_t
type, css_fixed length, css_unit unit)
@@ -1658,9 +1658,9 @@ static inline css_error set_margin_right(css_computed_style *style, uint8_t
#undef MARGIN_RIGHT_SHIFT
#undef MARGIN_RIGHT_MASK
-#define MARGIN_TOP_INDEX 7
-#define MARGIN_TOP_SHIFT 4
-#define MARGIN_TOP_MASK 0x7f0
+#define MARGIN_TOP_INDEX 1
+#define MARGIN_TOP_SHIFT 0
+#define MARGIN_TOP_MASK 0x7f
static inline css_error set_margin_top(css_computed_style *style, uint8_t type,
css_fixed length, css_unit unit)
@@ -1681,9 +1681,9 @@ static inline css_error set_margin_top(css_computed_style *style, uint8_t type,
#undef MARGIN_TOP_SHIFT
#undef MARGIN_TOP_MASK
-#define MAX_HEIGHT_INDEX 6
-#define MAX_HEIGHT_SHIFT 18
-#define MAX_HEIGHT_MASK 0x1fc0000
+#define MAX_HEIGHT_INDEX 3
+#define MAX_HEIGHT_SHIFT 25
+#define MAX_HEIGHT_MASK 0xfe000000
static inline css_error set_max_height(css_computed_style *style, uint8_t type,
css_fixed length, css_unit unit)
@@ -1704,9 +1704,9 @@ static inline css_error set_max_height(css_computed_style *style, uint8_t type,
#undef MAX_HEIGHT_SHIFT
#undef MAX_HEIGHT_MASK
-#define MAX_WIDTH_INDEX 3
-#define MAX_WIDTH_SHIFT 25
-#define MAX_WIDTH_MASK 0xfe000000
+#define MAX_WIDTH_INDEX 7
+#define MAX_WIDTH_SHIFT 4
+#define MAX_WIDTH_MASK 0x7f0
static inline css_error set_max_width(css_computed_style *style, uint8_t type,
css_fixed length, css_unit unit)
@@ -1727,9 +1727,9 @@ static inline css_error set_max_width(css_computed_style *style, uint8_t type,
#undef MAX_WIDTH_SHIFT
#undef MAX_WIDTH_MASK
-#define MIN_HEIGHT_INDEX 7
-#define MIN_HEIGHT_SHIFT 11
-#define MIN_HEIGHT_MASK 0x3f800
+#define MIN_HEIGHT_INDEX 4
+#define MIN_HEIGHT_SHIFT 18
+#define MIN_HEIGHT_MASK 0x1fc0000
static inline css_error set_min_height(css_computed_style *style, uint8_t type,
css_fixed length, css_unit unit)
@@ -1774,8 +1774,8 @@ static inline css_error set_min_width(css_computed_style *style, uint8_t type,
#undef MIN_WIDTH_MASK
#define OPACITY_INDEX 14
-#define OPACITY_SHIFT 25
-#define OPACITY_MASK 0x2000000
+#define OPACITY_SHIFT 19
+#define OPACITY_MASK 0x80000
static inline css_error set_opacity(css_computed_style *style, uint8_t type,
css_fixed fixed)
@@ -1796,9 +1796,9 @@ static inline css_error set_opacity(css_computed_style *style, uint8_t type,
#undef OPACITY_SHIFT
#undef OPACITY_MASK
-#define ORDER_INDEX 14
-#define ORDER_SHIFT 26
-#define ORDER_MASK 0x4000000
+#define ORDER_INDEX 13
+#define ORDER_SHIFT 0
+#define ORDER_MASK 0x1
static inline css_error set_order(css_computed_style *style, uint8_t type,
int32_t integer)
@@ -1819,8 +1819,8 @@ static inline css_error set_order(css_computed_style *style, uint8_t type,
#undef ORDER_MASK
#define ORPHANS_INDEX 14
-#define ORPHANS_SHIFT 22
-#define ORPHANS_MASK 0x400000
+#define ORPHANS_SHIFT 24
+#define ORPHANS_MASK 0x1000000
static inline css_error set_orphans(css_computed_style *style, uint8_t type,
int32_t integer)
@@ -1842,8 +1842,8 @@ static inline css_error set_orphans(css_computed_style *style, uint8_t type,
#undef ORPHANS_MASK
#define OUTLINE_COLOR_INDEX 11
-#define OUTLINE_COLOR_SHIFT 12
-#define OUTLINE_COLOR_MASK 0x3000
+#define OUTLINE_COLOR_SHIFT 10
+#define OUTLINE_COLOR_MASK 0xc00
static inline css_error set_outline_color(css_computed_style *style, uint8_t
type, css_color color)
@@ -1864,9 +1864,9 @@ static inline css_error set_outline_color(css_computed_style *style, uint8_t
#undef OUTLINE_COLOR_SHIFT
#undef OUTLINE_COLOR_MASK
-#define OUTLINE_STYLE_INDEX 5
-#define OUTLINE_STYLE_SHIFT 0
-#define OUTLINE_STYLE_MASK 0xf
+#define OUTLINE_STYLE_INDEX 9
+#define OUTLINE_STYLE_SHIFT 7
+#define OUTLINE_STYLE_MASK 0x780
static inline css_error set_outline_style(css_computed_style *style, uint8_t
type)
@@ -1885,9 +1885,9 @@ static inline css_error set_outline_style(css_computed_style *style, uint8_t
#undef OUTLINE_STYLE_SHIFT
#undef OUTLINE_STYLE_MASK
-#define OUTLINE_WIDTH_INDEX 0
-#define OUTLINE_WIDTH_SHIFT 16
-#define OUTLINE_WIDTH_MASK 0xff0000
+#define OUTLINE_WIDTH_INDEX 1
+#define OUTLINE_WIDTH_SHIFT 15
+#define OUTLINE_WIDTH_MASK 0x7f8000
static inline css_error set_outline_width(css_computed_style *style, uint8_t
type, css_fixed length, css_unit unit)
@@ -1908,9 +1908,9 @@ static inline css_error set_outline_width(css_computed_style *style, uint8_t
#undef OUTLINE_WIDTH_SHIFT
#undef OUTLINE_WIDTH_MASK
-#define OVERFLOW_X_INDEX 9
-#define OVERFLOW_X_SHIFT 14
-#define OVERFLOW_X_MASK 0x1c000
+#define OVERFLOW_X_INDEX 13
+#define OVERFLOW_X_SHIFT 16
+#define OVERFLOW_X_MASK 0x70000
static inline css_error set_overflow_x(css_computed_style *style, uint8_t type)
{
@@ -1928,9 +1928,9 @@ static inline css_error set_overflow_x(css_computed_style *style, uint8_t type)
#undef OVERFLOW_X_SHIFT
#undef OVERFLOW_X_MASK
-#define OVERFLOW_Y_INDEX 9
-#define OVERFLOW_Y_SHIFT 11
-#define OVERFLOW_Y_MASK 0x3800
+#define OVERFLOW_Y_INDEX 13
+#define OVERFLOW_Y_SHIFT 25
+#define OVERFLOW_Y_MASK 0xe000000
static inline css_error set_overflow_y(css_computed_style *style, uint8_t type)
{
@@ -1949,8 +1949,8 @@ static inline css_error set_overflow_y(css_computed_style *style, uint8_t type)
#undef OVERFLOW_Y_MASK
#define PADDING_BOTTOM_INDEX 8
-#define PADDING_BOTTOM_SHIFT 14
-#define PADDING_BOTTOM_MASK 0xfc000
+#define PADDING_BOTTOM_SHIFT 8
+#define PADDING_BOTTOM_MASK 0x3f00
static inline css_error set_padding_bottom(css_computed_style *style, uint8_t
type, css_fixed length, css_unit unit)
@@ -1971,9 +1971,9 @@ static inline css_error set_padding_bottom(css_computed_style *style, uint8_t
#undef PADDING_BOTTOM_SHIFT
#undef PADDING_BOTTOM_MASK
-#define PADDING_LEFT_INDEX 8
-#define PADDING_LEFT_SHIFT 26
-#define PADDING_LEFT_MASK 0xfc000000
+#define PADDING_LEFT_INDEX 2
+#define PADDING_LEFT_SHIFT 0
+#define PADDING_LEFT_MASK 0x3f
static inline css_error set_padding_left(css_computed_style *style, uint8_t
type, css_fixed length, css_unit unit)
@@ -1995,8 +1995,8 @@ static inline css_error set_padding_left(css_computed_style *style, uint8_t
#undef PADDING_LEFT_MASK
#define PADDING_RIGHT_INDEX 8
-#define PADDING_RIGHT_SHIFT 20
-#define PADDING_RIGHT_MASK 0x3f00000
+#define PADDING_RIGHT_SHIFT 14
+#define PADDING_RIGHT_MASK 0xfc000
static inline css_error set_padding_right(css_computed_style *style, uint8_t
type, css_fixed length, css_unit unit)
@@ -2017,9 +2017,9 @@ static inline css_error set_padding_right(css_computed_style *style, uint8_t
#undef PADDING_RIGHT_SHIFT
#undef PADDING_RIGHT_MASK
-#define PADDING_TOP_INDEX 2
-#define PADDING_TOP_SHIFT 0
-#define PADDING_TOP_MASK 0x3f
+#define PADDING_TOP_INDEX 8
+#define PADDING_TOP_SHIFT 20
+#define PADDING_TOP_MASK 0x3f00000
static inline css_error set_padding_top(css_computed_style *style, uint8_t
type, css_fixed length, css_unit unit)
@@ -2040,9 +2040,9 @@ static inline css_error set_padding_top(css_computed_style *style, uint8_t
#undef PADDING_TOP_SHIFT
#undef PADDING_TOP_MASK
-#define PAGE_BREAK_AFTER_INDEX 9
-#define PAGE_BREAK_AFTER_SHIFT 2
-#define PAGE_BREAK_AFTER_MASK 0x1c
+#define PAGE_BREAK_AFTER_INDEX 8
+#define PAGE_BREAK_AFTER_SHIFT 0
+#define PAGE_BREAK_AFTER_MASK 0x7
static inline css_error set_page_break_after(css_computed_style *style, uint8_t
type)
@@ -2061,9 +2061,9 @@ static inline css_error set_page_break_after(css_computed_style *style, uint8_t
#undef PAGE_BREAK_AFTER_SHIFT
#undef PAGE_BREAK_AFTER_MASK
-#define PAGE_BREAK_BEFORE_INDEX 9
-#define PAGE_BREAK_BEFORE_SHIFT 23
-#define PAGE_BREAK_BEFORE_MASK 0x3800000
+#define PAGE_BREAK_BEFORE_INDEX 13
+#define PAGE_BREAK_BEFORE_SHIFT 7
+#define PAGE_BREAK_BEFORE_MASK 0x380
static inline css_error set_page_break_before(css_computed_style *style,
uint8_t type)
@@ -2082,9 +2082,9 @@ static inline css_error set_page_break_before(css_computed_style *style,
#undef PAGE_BREAK_BEFORE_SHIFT
#undef PAGE_BREAK_BEFORE_MASK
-#define PAGE_BREAK_INSIDE_INDEX 10
-#define PAGE_BREAK_INSIDE_SHIFT 4
-#define PAGE_BREAK_INSIDE_MASK 0x30
+#define PAGE_BREAK_INSIDE_INDEX 11
+#define PAGE_BREAK_INSIDE_SHIFT 24
+#define PAGE_BREAK_INSIDE_MASK 0x3000000
static inline css_error set_page_break_inside(css_computed_style *style,
uint8_t type)
@@ -2104,8 +2104,8 @@ static inline css_error set_page_break_inside(css_computed_style *style,
#undef PAGE_BREAK_INSIDE_MASK
#define POSITION_INDEX 10
-#define POSITION_SHIFT 26
-#define POSITION_MASK 0x1c000000
+#define POSITION_SHIFT 20
+#define POSITION_MASK 0x700000
static inline css_error set_position(css_computed_style *style, uint8_t type)
{
@@ -2124,8 +2124,8 @@ static inline css_error set_position(css_computed_style *style, uint8_t type)
#undef POSITION_MASK
#define QUOTES_INDEX 14
-#define QUOTES_SHIFT 27
-#define QUOTES_MASK 0x8000000
+#define QUOTES_SHIFT 21
+#define QUOTES_MASK 0x200000
static inline css_error set_quotes(css_computed_style *style, uint8_t type,
lwc_string **string_arr)
@@ -2161,9 +2161,9 @@ static inline css_error set_quotes(css_computed_style *style, uint8_t type,
#undef QUOTES_SHIFT
#undef QUOTES_MASK
-#define RIGHT_INDEX 7
-#define RIGHT_SHIFT 25
-#define RIGHT_MASK 0xfe000000
+#define RIGHT_INDEX 3
+#define RIGHT_SHIFT 18
+#define RIGHT_MASK 0x1fc0000
static inline css_error set_right(css_computed_style *style, uint8_t type,
css_fixed length, css_unit unit)
@@ -2184,9 +2184,9 @@ static inline css_error set_right(css_computed_style *style, uint8_t type,
#undef RIGHT_SHIFT
#undef RIGHT_MASK
-#define TABLE_LAYOUT_INDEX 11
-#define TABLE_LAYOUT_SHIFT 4
-#define TABLE_LAYOUT_MASK 0x30
+#define TABLE_LAYOUT_INDEX 10
+#define TABLE_LAYOUT_SHIFT 14
+#define TABLE_LAYOUT_MASK 0xc000
static inline css_error set_table_layout(css_computed_style *style, uint8_t
type)
@@ -2205,9 +2205,9 @@ static inline css_error set_table_layout(css_computed_style *style, uint8_t
#undef TABLE_LAYOUT_SHIFT
#undef TABLE_LAYOUT_MASK
-#define TEXT_ALIGN_INDEX 13
-#define TEXT_ALIGN_SHIFT 16
-#define TEXT_ALIGN_MASK 0xf0000
+#define TEXT_ALIGN_INDEX 4
+#define TEXT_ALIGN_SHIFT 0
+#define TEXT_ALIGN_MASK 0xf
static inline css_error set_text_align(css_computed_style *style, uint8_t type)
{
@@ -2226,8 +2226,8 @@ static inline css_error set_text_align(css_computed_style *style, uint8_t type)
#undef TEXT_ALIGN_MASK
#define TEXT_DECORATION_INDEX 8
-#define TEXT_DECORATION_SHIFT 9
-#define TEXT_DECORATION_MASK 0x3e00
+#define TEXT_DECORATION_SHIFT 3
+#define TEXT_DECORATION_MASK 0xf8
static inline css_error set_text_decoration(css_computed_style *style, uint8_t
type)
@@ -2269,9 +2269,9 @@ static inline css_error set_text_indent(css_computed_style *style, uint8_t
#undef TEXT_INDENT_SHIFT
#undef TEXT_INDENT_MASK
-#define TEXT_TRANSFORM_INDEX 9
-#define TEXT_TRANSFORM_SHIFT 8
-#define TEXT_TRANSFORM_MASK 0x700
+#define TEXT_TRANSFORM_INDEX 13
+#define TEXT_TRANSFORM_SHIFT 13
+#define TEXT_TRANSFORM_MASK 0xe000
static inline css_error set_text_transform(css_computed_style *style, uint8_t
type)
@@ -2290,7 +2290,7 @@ static inline css_error set_text_transform(css_computed_style *style, uint8_t
#undef TEXT_TRANSFORM_SHIFT
#undef TEXT_TRANSFORM_MASK
-#define TOP_INDEX 6
+#define TOP_INDEX 7
#define TOP_SHIFT 25
#define TOP_MASK 0xfe000000
@@ -2313,9 +2313,9 @@ static inline css_error set_top(css_computed_style *style, uint8_t type,
#undef TOP_SHIFT
#undef TOP_MASK
-#define UNICODE_BIDI_INDEX 9
-#define UNICODE_BIDI_SHIFT 0
-#define UNICODE_BIDI_MASK 0x3
+#define UNICODE_BIDI_INDEX 11
+#define UNICODE_BIDI_SHIFT 2
+#define UNICODE_BIDI_MASK 0xc
static inline css_error set_unicode_bidi(css_computed_style *style, uint8_t
type)
@@ -2358,8 +2358,8 @@ static inline css_error set_vertical_align(css_computed_style *style, uint8_t
#undef VERTICAL_ALIGN_MASK
#define VISIBILITY_INDEX 11
-#define VISIBILITY_SHIFT 14
-#define VISIBILITY_MASK 0xc000
+#define VISIBILITY_SHIFT 0
+#define VISIBILITY_MASK 0x3
static inline css_error set_visibility(css_computed_style *style, uint8_t type)
{
@@ -2377,9 +2377,9 @@ static inline css_error set_visibility(css_computed_style *style, uint8_t type)
#undef VISIBILITY_SHIFT
#undef VISIBILITY_MASK
-#define WHITE_SPACE_INDEX 10
-#define WHITE_SPACE_SHIFT 20
-#define WHITE_SPACE_MASK 0x700000
+#define WHITE_SPACE_INDEX 13
+#define WHITE_SPACE_SHIFT 19
+#define WHITE_SPACE_MASK 0x380000
static inline css_error set_white_space(css_computed_style *style, uint8_t type)
{
@@ -2398,8 +2398,8 @@ static inline css_error set_white_space(css_computed_style *style, uint8_t type)
#undef WHITE_SPACE_MASK
#define WIDOWS_INDEX 14
-#define WIDOWS_SHIFT 24
-#define WIDOWS_MASK 0x1000000
+#define WIDOWS_SHIFT 26
+#define WIDOWS_MASK 0x4000000
static inline css_error set_widows(css_computed_style *style, uint8_t type,
int32_t integer)
@@ -2420,9 +2420,9 @@ static inline css_error set_widows(css_computed_style *style, uint8_t type,
#undef WIDOWS_SHIFT
#undef WIDOWS_MASK
-#define WIDTH_INDEX 5
-#define WIDTH_SHIFT 25
-#define WIDTH_MASK 0xfe000000
+#define WIDTH_INDEX 3
+#define WIDTH_SHIFT 11
+#define WIDTH_MASK 0x3f800
static inline css_error set_width(css_computed_style *style, uint8_t type,
css_fixed length, css_unit unit)
@@ -2443,9 +2443,9 @@ static inline css_error set_width(css_computed_style *style, uint8_t type,
#undef WIDTH_SHIFT
#undef WIDTH_MASK
-#define WORD_SPACING_INDEX 4
-#define WORD_SPACING_SHIFT 25
-#define WORD_SPACING_MASK 0xfe000000
+#define WORD_SPACING_INDEX 5
+#define WORD_SPACING_SHIFT 4
+#define WORD_SPACING_MASK 0x7f0
static inline css_error set_word_spacing(css_computed_style *style, uint8_t
type, css_fixed length, css_unit unit)
@@ -2466,9 +2466,9 @@ static inline css_error set_word_spacing(css_computed_style *style, uint8_t
#undef WORD_SPACING_SHIFT
#undef WORD_SPACING_MASK
-#define WRITING_MODE_INDEX 11
-#define WRITING_MODE_SHIFT 18
-#define WRITING_MODE_MASK 0xc0000
+#define WRITING_MODE_INDEX 14
+#define WRITING_MODE_SHIFT 30
+#define WRITING_MODE_MASK 0xc0000000
static inline css_error set_writing_mode(css_computed_style *style, uint8_t
type)
@@ -2487,9 +2487,9 @@ static inline css_error set_writing_mode(css_computed_style *style, uint8_t
#undef WRITING_MODE_SHIFT
#undef WRITING_MODE_MASK
-#define Z_INDEX_INDEX 11
-#define Z_INDEX_SHIFT 2
-#define Z_INDEX_MASK 0xc
+#define Z_INDEX_INDEX 10
+#define Z_INDEX_SHIFT 8
+#define Z_INDEX_MASK 0x300
static inline css_error set_z_index(css_computed_style *style, uint8_t type,
int32_t integer)
diff --git a/src/select/format_list_style.c b/src/select/format_list_style.c
new file mode 100644
index 0000000..0e3a39e
--- /dev/null
+++ b/src/select/format_list_style.c
@@ -0,0 +1,1229 @@
+/*
+ * This file is part of LibCSS
+ * Licensed under the MIT License,
+ * http://www.opensource.org/licenses/mit-license.php
+ * Copyright 2021 Vincent Sanders <vince@netsurf-browser.org>
+ */
+
+#include "select/propget.h"
+#include "utils/utils.h"
+
+#define SYMBOL_SIZE 8
+typedef char symbol_t[SYMBOL_SIZE];
+
+/**
+ * numeric representation of the value using a system
+ */
+struct numeric {
+ uint8_t *val; /* buffer containing the numeric values */
+ size_t len; /* length of alen */
+ size_t used; /* number of numeric values used */
+ bool negative; /* if the value is negative */
+};
+
+/**
+ * list counter style
+ */
+struct list_counter_style {
+ /** style name for debug purposes */
+ const char *name;
+ /** function to calculate the system */
+ css_error (*system)(int value, const struct list_counter_style *cstyle, struct numeric *nval);
+ /** fallback style if this system fails */
+ const struct list_counter_style* fallback;
+ /** array of symbols which represent this style */
+ const symbol_t *symbols;
+ /** symbol weights for additive schemes */
+ const int *weights;
+ /** number of items in symbol and weight table */
+ const size_t items;
+ /** range of acceptable values */
+ struct {
+ const int start; /**< first acceptable value for this style */
+ const int end; /**< last acceptable value for this style */
+ } range;
+
+ /** padding formatting */
+ struct {
+ const unsigned int length;
+ const symbol_t value;
+ } pad;
+ /** negative value formating */
+ struct {
+ const char *pre;
+ const char *post;
+ } negative;
+ /** prefix formatting */
+ const char *prefix;
+ /** suffix formatting */
+ const char *suffix;
+};
+
+
+/**
+ * Copy a null-terminated UTF-8 string to buffer at offset, if there is space
+ *
+ * \param[in] buf The output buffer
+ * \param[in] buflen The length of \a buf
+ * \param[in] pos Current position in \a buf
+ * \param[in] str The string to copy into \a buf
+ * \return The number of bytes needed in the output buffer which may be
+ * larger than \a buflen but the buffer will not be overrun
+ */
+static inline size_t
+copy_string(char *buf, const size_t buflen, size_t pos, const char *str)
+{
+ size_t sidx = 0; /* current string index */
+
+ while (str[sidx] != '\0') {
+ if (pos < buflen) {
+ buf[pos] = str[sidx];
+ }
+ pos++;
+ sidx++;
+ }
+
+ return sidx;
+}
+
+/**
+ * Copy a UTF-8 symbol to buffer at offset, if there is space
+ *
+ * \param[in] buf The output buffer
+ * \param[in] buflen The length of \a buf
+ * \param[in] pos Current position in \a buf
+ * \param[in] symbol The symbol to copy into \a buf
+ * \return The number of bytes needed in the output buffer which may be
+ * larger than \a buflen but the buffer will not be overrun
+ */
+static inline size_t
+copy_symbol(char *buf, const size_t buflen, size_t pos, const symbol_t symbol)
+{
+ size_t sidx = 0; /* current symbol index */
+
+ while ((sidx < sizeof(symbol_t)) && (symbol[sidx] != '\0')) {
+ if (pos < buflen) {
+ buf[pos] = symbol[sidx];
+ }
+ pos++;
+ sidx++;
+ }
+
+ return sidx;
+}
+
+/**
+ * maps numeric values to output values with a symbol table
+ *
+ * Takes a list of numeric values and for each one outputs the
+ * compete symbol (in utf8) to an output buffer.
+ *
+ * \param buf The output buffer
+ * \param buflen the length of \a buf
+ * \param aval array of alphabet values
+ * \param alen The number of values in \a alen
+ * \param symtab The symbol table
+ * \param symtablen The number of symbols in \a symtab
+ * \return The number of bytes needed in the output buffer whichmay be
+ * larger than \a buflen but the buffer will not be overrun
+ */
+static size_t
+nval_to_symbols(struct numeric *nval,
+ const struct list_counter_style *cstyle,
+ char *buf, const size_t buflen)
+{
+ size_t oidx = 0;
+ size_t aidx; /* numeral index */
+ const char *suffix = "."; /* default sufffix string */
+ const char *negative_pre = "-"; /* default negative string */
+
+ /* prefix */
+ if (cstyle->prefix != NULL) {
+ oidx += copy_string(buf, buflen, oidx, cstyle->prefix);
+ }
+
+ /* negative pre */
+ if (nval->negative) {
+ if (cstyle->negative.pre != NULL) {
+ negative_pre = cstyle->negative.pre;
+ }
+ oidx += copy_string(buf, buflen, oidx, negative_pre);
+ }
+
+ /* add padding if required */
+ if (nval->used < cstyle->pad.length) {
+ size_t pidx; /* padding index */
+ for (pidx = cstyle->pad.length - nval->used; pidx > 0; pidx--) {
+ oidx += copy_symbol(buf, buflen, oidx,
+ cstyle->pad.value);
+ }
+ }
+
+ /* map symbols */
+ for (aidx = 0; aidx < nval->used; aidx++) {
+ oidx += copy_symbol(buf, buflen, oidx,
+ cstyle->symbols[nval->val[aidx]]);
+ }
+
+ /* negative post */
+ if ((nval->negative) && (cstyle->negative.post != NULL)) {
+ oidx += copy_string(buf, buflen, oidx, cstyle->negative.post);
+ }
+
+ /* suffix */
+ if (cstyle->suffix != NULL) {
+ suffix = cstyle->suffix;
+ }
+ oidx += copy_string(buf, buflen, oidx, suffix);
+
+ return oidx;
+}
+
+
+/**
+ * generate numeric symbol values
+ *
+ * fills array with numeric values that represent the input value
+ *
+ * \param ares Buffer to recive the converted values
+ * \param alen the length of \a ares buffer
+ * \param value The value to convert
+ * \param cstyle The counter style in use
+ * \return The length a complete conversion which may be larger than \a alen
+ */
+static css_error
+calc_numeric_system(int value,
+ const struct list_counter_style *cstyle,
+ struct numeric *nval)
+{
+ size_t idx = 0;
+ uint8_t *first;
+ uint8_t *last;
+
+ if (value == 0) {
+ if (nval->len >= 1) {
+ nval->val[0] = 0;
+ }
+ nval->used = 1;
+ return CSS_OK;
+ }
+
+ if (value < 0) {
+ nval->negative = true;
+ value = abs(value);
+ } else {
+ nval->negative = false;
+ }
+
+ /* generate alphabet values in ascending order */
+ while (value > 0) {
+ if (idx < nval->len) {
+ nval->val[idx] = value % cstyle->items;
+ }
+ idx++;
+ value = value / cstyle->items;
+ }
+
+ /* put the values in decending order */
+ first = nval->val;
+ if (idx < nval->len) {
+ last = first + (idx - 1);
+ } else {
+ last = first + (nval->len - 1);
+ }
+ while (first < last) {
+ *first ^= *last;
+ *last ^= *first;
+ *first ^= *last;
+ first++;
+ last--;
+ }
+
+ nval->used = idx;
+
+ return CSS_OK;
+}
+
+
+/**
+ * generate cyclic symbol values
+ *
+ * fills array with cyclic values that represent the input value
+ *
+ * \param ares Buffer to recive the converted values
+ * \param alen the length of \a ares buffer
+ * \param value The value to convert
+ * \param cstyle The counter style in use
+ * \return The length a complete conversion which may be larger than \a alen
+ */
+static css_error
+calc_cyclic_system(int value,
+ const struct list_counter_style *cstyle,
+ struct numeric *nval)
+{
+ if (nval->len == 0) {
+ return CSS_INVALID;
+ }
+ if (cstyle->items == 1) {
+ /* there is only one symbol so select it */
+ nval->val[0] = 0;
+ } else {
+ nval->val[0] = (value - 1) % cstyle->items;
+ }
+ nval->used = 1;
+ nval->negative = false;
+
+ return CSS_OK;
+}
+
+
+/**
+ * generate addative symbol values
+ *
+ * fills array with numeric values that represent the input value
+ *
+ * \param ares Buffer to recive the converted values
+ * \param alen the length of \a ares buffer
+ * \param value The value to convert
+ * \param wlen The number of weights
+ * \return The length a complete conversion which may be larger than \a alen
+ */
+static css_error
+calc_additive_system(int value,
+ const struct list_counter_style *cstyle,
+ struct numeric *nval)
+{
+ size_t widx; /* weight index */
+ size_t aidx = 0; /* numerals used */
+ size_t idx;
+ size_t times; /* number of times a weight occours */
+
+ /* ensure value is within acceptable range of this system */
+ if ((value < cstyle->range.start) || (value > cstyle->range.end)) {
+ return CSS_INVALID;
+ }
+
+ /* zero needs a specific weight */
+ if (value == 0) {
+ /* search weights for a zero entry */
+ for (widx = 0; widx < cstyle->items; widx++) {
+ if (cstyle->weights[widx] == 0) {
+ if (nval->len > 0) {
+ nval->val[0] = widx;
+ }
+
+ nval->used = 1;
+ nval->negative = false;
+ return CSS_OK;
+ }
+ }
+ return CSS_INVALID;
+ }
+
+ /* negative values */
+ if (value < 0) {
+ nval->negative = true;
+ value = abs(value);
+ } else {
+ nval->negative = false;
+ }
+
+ /* iterate over the available weights */
+ for (widx = 0; widx < cstyle->items; widx++) {
+ if (cstyle->weights[widx] == 0) {
+ break;
+ }
+ times = value / cstyle->weights[widx];
+ if (times > 0) {
+ for (idx = 0;idx < times;idx++) {
+ if (aidx < nval->len) {
+ nval->val[aidx] = widx;
+ }
+ aidx++;
+ }
+
+ value -= times * cstyle->weights[widx];
+ }
+ }
+
+ nval->used = aidx;
+
+ return CSS_OK;
+}
+
+
+/**
+ * generate alphabet symbol values for latin and greek labelling
+ *
+ * fills array with alphabet values suitable for the input value
+ *
+ * \param ares Buffer to recive the converted values
+ * \param alen the length of \a ares buffer
+ * \param value The value to convert
+ * \param slen The number of symbols in the alphabet
+ * \return The length a complete conversion which may be larger than \a alen
+ */
+static css_error
+calc_alphabet_system(int value,
+ const struct list_counter_style *cstyle,
+ struct numeric *nval)
+{
+ size_t idx = 0;
+ uint8_t *first;
+ uint8_t *last;
+
+ if (value < 1) {
+ return CSS_INVALID;
+ }
+
+ /* generate alphabet values in ascending order */
+ while (value > 0) {
+ --value;
+ if (idx < nval->len) {
+ nval->val[idx] = value % cstyle->items;
+ }
+ idx++;
+ value = value / cstyle->items;
+ }
+
+ /* put the values in decending order */
+ first = nval->val;
+ if (idx < nval->len) {
+ last = first + (idx - 1);
+ } else {
+ last = first + (nval->len - 1);
+ }
+ while (first < last) {
+ *first ^= *last;
+ *last ^= *first;
+ *first ^= *last;
+ first++;
+ last--;
+ }
+
+ nval->used = idx;
+ nval->negative = false;
+
+ return CSS_OK;
+}
+
+
+/**
+ * Roman numeral conversion
+ *
+ * \return The number of numerals that are nesesary for full output
+ */
+static css_error
+calc_roman_system(int value,
+ const struct list_counter_style *cstyle,
+ struct numeric *nval)
+{
+ const int S[] = { 0, 2, 4, 2, 4, 2, 4 };
+ size_t k = 0; /* index into output buffer */
+ unsigned int i = 0; /* index into maps */
+ int r;
+ int r2 = 0;
+ size_t L;
+
+ assert(cstyle->items == 7);
+
+ /* ensure value is within acceptable range of this system */
+ if ((value < cstyle->range.start) || (value > cstyle->range.end)) {
+ return CSS_INVALID;
+ }
+
+ L = cstyle->items - 1;
+
+ while (value > 0) {
+ if (cstyle->weights[i] <= value) {
+ r = value / cstyle->weights[i];
+ value = value - (r * cstyle->weights[i]);
+ if (i < L) {
+ /* lookahead */
+ r2 = value / cstyle->weights[i+1];
+ }
+ if (i < L && r2 >= S[i+1]) {
+ /* will violate repeat boundary on next pass */
+ value = value - (r2 * cstyle->weights[i+1]);
+ if (k < nval->len) {
+ nval->val[k++] = i+1;
+ }
+ if (k < nval->len) {
+ nval->val[k++] = i-1;
+ }
+ } else if (S[i] && r >= S[i]) {
+ /* violated repeat boundary on this pass */
+ if (k < nval->len) {
+ nval->val[k++] = i;
+ }
+ if (k < nval->len) {
+ nval->val[k++] = i-1;
+ }
+ } else {
+ while ((r-- > 0) && (k < nval->len)) {
+ nval->val[k++] = i;
+ }
+ }
+ }
+ i++;
+ }
+
+ nval->used = k;
+ nval->negative = false;
+
+ return CSS_OK;
+}
+
+
+/* tables for all the counter styles */
+
+static const symbol_t decimal_symbols[] = {
+ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
+};
+static const struct list_counter_style lcs_decimal = {
+ .name = "decimal",
+ .system = calc_numeric_system,
+ .symbols = decimal_symbols,
+ .items = (sizeof(decimal_symbols) / SYMBOL_SIZE),
+};
+
+static const symbol_t georgian_symbols[] = {
+ "ჵ",
+ "ჰ", "ჯ", "ჴ", "ხ", "ჭ", "წ", "ძ", "ც", "ჩ",
+ "შ", "ყ", "ღ", "ქ", "ფ", "ჳ", "ტ", "ს", "რ",
+ "ჟ", "პ", "ო", "ჲ", "ნ", "მ", "ლ", "კ", "ი",
+ "თ", "ჱ", "ზ", "ვ", "ე", "დ", "გ", "ბ", "ა",
+};
+static const int georgian_weights[] = {
+ 10000,
+ 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000,
+ 900, 800, 700, 600, 500, 400, 300, 200, 100,
+ 90, 80, 70, 60, 50, 40, 30, 20, 10,
+ 9, 8, 7, 6, 5, 4, 3, 2, 1
+};
+static const struct list_counter_style lcs_georgian = {
+ .name="georgian",
+ .system = calc_additive_system,
+ .fallback = &lcs_decimal,
+ .symbols = georgian_symbols,
+ .weights = georgian_weights,
+ .items = (sizeof(georgian_symbols) / SYMBOL_SIZE),
+ .range = { .start = 1, .end = 19999 },
+};
+
+
+static const symbol_t upper_armenian_symbols[] = {
+ "Ք", "Փ", "Ւ", "Ց", "Ր", "Տ", "Վ", "Ս", "Ռ",
+ "Ջ", "Պ", "Չ", "Ո", "Շ", "Ն", "Յ", "Մ", "Ճ",
+ "Ղ", "Ձ", "Հ", "Կ", "Ծ", "Խ", "Լ", "Ի", "Ժ",
+ "Թ", "Ը", "Է", "Զ", "Ե", "Դ", "Գ", "Բ", "Ա"
+};
+static const int armenian_weights[] = {
+ 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000,
+ 900, 800, 700, 600, 500, 400, 300, 200, 100,
+ 90, 80, 70, 60, 50, 40, 30, 20, 10,
+ 9, 8, 7, 6, 5, 4, 3, 2, 1
+};
+static const struct list_counter_style lcs_upper_armenian = {
+ .name = "upper-armenian",
+ .system = calc_additive_system,
+ .fallback = &lcs_decimal,
+ .symbols = upper_armenian_symbols,
+ .weights = armenian_weights,
+ .items = (sizeof(upper_armenian_symbols) / SYMBOL_SIZE),
+ .range = { .start = 1, .end = 9999 },
+};
+
+
+static const symbol_t lower_armenian_symbols[] = {
+ "ք", "փ", "ւ", "ց", "ր", "տ", "վ", "ս", "ռ",
+ "ջ", "պ", "չ", "ո", "շ", "ն", "յ", "մ", "ճ",
+ "ղ", "ձ", "հ", "կ", "ծ", "խ", "լ", "ի", "ժ",
+ "թ", "ը", "է", "զ", "ե", "դ", "գ", "բ", "ա"
+};
+static const struct list_counter_style lcs_lower_armenian = {
+ .name = "lower-armenian",
+ .system = calc_additive_system,
+ .fallback = &lcs_decimal,
+ .symbols = lower_armenian_symbols,
+ .weights = armenian_weights,
+ .items = (sizeof(lower_armenian_symbols) / SYMBOL_SIZE),
+ .range = { .start = 1, .end = 9999 },
+};
+
+
+static const struct list_counter_style lcs_decimal_leading_zero = {
+ .name = "decimal-leading-zero",
+ .system = calc_numeric_system,
+ .symbols = decimal_symbols,
+ .items = (sizeof(decimal_symbols) / SYMBOL_SIZE),
+ .pad = { .length = 2, .value = "0" },
+};
+
+
+static const symbol_t lower_greek_symbols[] = {
+ "α", "β", "γ", "δ", "ε", "ζ", "η", "θ", "ι", "κ",
+ "λ", "μ", "ν", "ξ", "ο", "π", "ρ", "σ", "τ", "υ",
+ "φ", "χ", "ψ", "ω"
+};
+static const struct list_counter_style lcs_lower_greek = {
+ .name = "lower-greek",
+ .system = calc_alphabet_system,
+ .fallback = &lcs_decimal,
+ .symbols = lower_greek_symbols,
+ .items = (sizeof(lower_greek_symbols) / SYMBOL_SIZE),
+};
+
+
+static const symbol_t upper_alpha_symbols[] = {
+ "A", "B", "C", "D", "E", "F", "G", "H", "I", "J",
+ "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T",
+ "U", "V", "W", "X", "Y", "Z"
+};
+static const struct list_counter_style lcs_upper_alpha = {
+ .name = "upper-alpha",
+ .system = calc_alphabet_system,
+ .fallback = &lcs_decimal,
+ .symbols = upper_alpha_symbols,
+ .items = (sizeof(upper_alpha_symbols) / SYMBOL_SIZE),
+};
+
+
+static const symbol_t lower_alpha_symbols[] = {
+ "a", "b", "c", "d", "e", "f", "g", "h", "i", "j",
+ "k", "l", "m", "n", "o", "p", "q", "r", "s", "t",
+ "u", "v", "w", "x", "y", "z"
+};
+static struct list_counter_style lcs_lower_alpha = {
+ .name = "lower-alpha",
+ .system = calc_alphabet_system,
+ .fallback = &lcs_decimal,
+ .symbols = lower_alpha_symbols,
+ .items = (sizeof(lower_alpha_symbols) / SYMBOL_SIZE),
+};
+
+
+static const int roman_weights[] = {
+ 1000, 500, 100, 50, 10, 5, 1
+};
+static const symbol_t upper_roman_symbols[] = {
+ "M", "D", "C", "L", "X", "V", "I"
+};
+static const struct list_counter_style lcs_upper_roman = {
+ .name = "upper-roman",
+ .system = calc_roman_system,
+ .fallback = &lcs_decimal,
+ .symbols = upper_roman_symbols,
+ .weights = roman_weights,
+ .items = (sizeof(upper_roman_symbols) / SYMBOL_SIZE),
+ .range = { .start = 1, .end = 3999 },
+};
+
+
+static const symbol_t lower_roman_symbols[] = {
+ "m", "d", "c", "l", "x", "v", "i"
+};
+static const struct list_counter_style lcs_lower_roman = {
+ .name = "lower-roman",
+ .system = calc_roman_system,
+ .fallback = &lcs_decimal,
+ .symbols = lower_roman_symbols,
+ .weights = roman_weights,
+ .items = (sizeof(lower_roman_symbols) / SYMBOL_SIZE),
+ .range = { .start = 1, .end = 3999 },
+};
+
+static const symbol_t disc_symbols[] = { "\xE2\x80\xA2"}; /* 2022 BULLET */
+static const struct list_counter_style lcs_disc = {
+ .name = "disc",
+ .system = calc_cyclic_system,
+ .symbols = disc_symbols,
+ .items = (sizeof(disc_symbols) / SYMBOL_SIZE),
+ .suffix = " ",
+};
+
+static const symbol_t circle_symbols[] = { "\342\227\213"}; /* 25CB WHITE CIRCLE */
+static const struct list_counter_style lcs_circle = {
+ .name = "circle",
+ .system = calc_cyclic_system,
+ .symbols = circle_symbols,
+ .items = (sizeof(circle_symbols) / SYMBOL_SIZE),
+ .suffix = " ",
+};
+
+static const symbol_t square_symbols[] = { "\342\226\252"}; /* 25AA BLACK SMALL SQUARE */
+static const struct list_counter_style lcs_square = {
+ .name = "square",
+ .system = calc_cyclic_system,
+ .symbols = square_symbols,
+ .items = (sizeof(square_symbols) / SYMBOL_SIZE),
+ .suffix = " ",
+};
+
+static const symbol_t binary_symbols[] = { "0", "1" };
+static const struct list_counter_style lcs_binary = {
+ .name = "binary",
+ .system = calc_numeric_system,
+ .symbols = binary_symbols,
+ .items = (sizeof(binary_symbols) / SYMBOL_SIZE),
+};
+
+static const symbol_t octal_symbols[] = {
+ "0", "1", "2", "3", "4", "5", "6", "7"
+};
+static const struct list_counter_style lcs_octal = {
+ .name = "octal",
+ .system = calc_numeric_system,
+ .symbols = octal_symbols,
+ .items = (sizeof(octal_symbols) / SYMBOL_SIZE),
+};
+
+
+static const symbol_t lower_hexadecimal_symbols[] = {
+ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
+ "a", "b", "c", "d", "e", "f"
+};
+static const struct list_counter_style lcs_lower_hexadecimal = {
+ .name = "lower-hexadecimal",
+ .system = calc_numeric_system,
+ .symbols = lower_hexadecimal_symbols,
+ .items = (sizeof(lower_hexadecimal_symbols) / SYMBOL_SIZE),
+};
+
+static const symbol_t upper_hexadecimal_symbols[] = {
+ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
+ "a", "b", "c", "d", "e", "f"
+};
+static const struct list_counter_style lcs_upper_hexadecimal = {
+ .name = "upper-hexadecimal",
+ .system = calc_numeric_system,
+ .symbols = upper_hexadecimal_symbols,
+ .items = (sizeof(upper_hexadecimal_symbols) / SYMBOL_SIZE),
+};
+
+static const symbol_t arabic_indic_symbols[] = {
+ "\xd9\xa0", "\xd9\xa1", "\xd9\xa2", "\xd9\xa3", "\xd9\xa4", "\xd9\xa5", "\xd9\xa6", "\xd9\xa7", "\xd9\xa8", "\xd9\xa9"
+};
+static const struct list_counter_style lcs_arabic_indic = {
+ .name = "arabic-indic",
+ .system = calc_numeric_system,
+ .symbols = arabic_indic_symbols,
+ .items = (sizeof(arabic_indic_symbols) / SYMBOL_SIZE),
+};
+
+static const symbol_t bengali_symbols[] = {
+ "০", "১", "২", "৩", "৪", "৫", "৬", "৭", "৮", "৯"
+};
+static const struct list_counter_style lcs_bengali = {
+ .name = "bengali",
+ .system = calc_numeric_system,
+ .symbols = bengali_symbols,
+ .items = (sizeof(bengali_symbols) / SYMBOL_SIZE),
+};
+
+static const symbol_t cambodian_symbols[] = {
+ "០", "១", "២", "៣", "៤", "៥", "៦", "៧", "៨", "៩"
+};
+static const struct list_counter_style lcs_cambodian = {
+ .name = "cambodian",
+ .system = calc_numeric_system,
+ .symbols = cambodian_symbols,
+ .items = (sizeof(cambodian_symbols) / SYMBOL_SIZE),
+};
+
+static const symbol_t cjk_decimal_symbols[] = {
+ "〇", "一", "二", "三", "四", "五", "六", "七", "八", "九"
+};
+static const struct list_counter_style lcs_cjk_decimal = {
+ .name = "cjk-decimal",
+ .system = calc_numeric_system,
+ .symbols = cjk_decimal_symbols,
+ .suffix = "、",
+ .items = (sizeof(cjk_decimal_symbols) / SYMBOL_SIZE),
+};
+
+static const symbol_t devanagari_symbols[] = {
+ "०", "१", "२", "३", "४", "५", "६", "७", "८", "९"
+};
+static const struct list_counter_style lcs_devanagari = {
+ .name = "devanagari",
+ .system = calc_numeric_system,
+ .symbols = devanagari_symbols,
+ .items = (sizeof(devanagari_symbols) / SYMBOL_SIZE),
+};
+
+static const symbol_t gujarati_symbols[] = {
+ "૦", "૧", "૨", "૩", "૪", "૫", "૬", "૭", "૮", "૯"
+};
+static const struct list_counter_style lcs_gujarati = {
+ .name = "gujarati",
+ .system = calc_numeric_system,
+ .symbols = gujarati_symbols,
+ .items = (sizeof(gujarati_symbols) / SYMBOL_SIZE),
+};
+
+static const symbol_t gurmukhi_symbols[] = {
+ "੦", "੧", "੨", "੩", "੪", "੫", "੬", "੭", "੮", "੯"
+};
+static const struct list_counter_style lcs_gurmukhi = {
+ .name = "gurmukhi",
+ .system = calc_numeric_system,
+ .symbols = gurmukhi_symbols,
+ .items = (sizeof(gurmukhi_symbols) / SYMBOL_SIZE),
+};
+
+static const int hebrew_weights[] = {
+ 10000,
+ 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000,
+ 400, 300, 200, 100,
+ 90, 80, 70, 60, 50, 40, 30, 20, 19, 18, 17, 16, 15, 10,
+ 9, 8, 7, 6, 5, 4, 3, 2, 1
+};
+static const symbol_t hebrew_symbols[] = {
+ "\xD7\x99\xD7\xB3",
+ "\xD7\x98\xD7\xB3", "\xD7\x97\xD7\xB3", "\xD7\x96\xD7\xB3", "\xD7\x95\xD7\xB3", "\xD7\x94\xD7\xB3", "\xD7\x93\xD7\xB3", "\xD7\x92\xD7\xB3", "\xD7\x91\xD7\xB3", "\xD7\x90\xD7\xB3",
+ "\xD7\xAA", "\xD7\xA9", "\xD7\xA8", "\xD7\xA7",
+ "\xD7\xA6", "\xD7\xA4", "\xD7\xA2", "\xD7\xA1", "\xD7\xA0", "\xD7\x9E", "\xD7\x9C", /* 20 */"\xD7\x9B", "\xD7\x99\xD7\x98", "\xD7\x99\xD7\x97", "\xD7\x99\xD7\x96", "\xD7\x98\xD7\x96", "\xD7\x98\xD7\x95", "\xD7\x99",
+ "\xD7\x98", "\xD7\x97", "\xD7\x96", "\xD7\x95", "\xD7\x94", "\xD7\x93", "\xD7\x92", "\xD7\x91", "\xD7\x90"
+};
+static const struct list_counter_style lcs_hebrew = {
+ .name = "hebrew",
+ .system = calc_additive_system,
+ .fallback = &lcs_decimal,
+ .symbols = hebrew_symbols,
+ .weights = hebrew_weights,
+ .items = (sizeof(hebrew_symbols) / SYMBOL_SIZE),
+ .range = { .start = 1, .end = 10999 },
+};
+
+static const symbol_t kannada_symbols[] = {
+ "\xE0\xB3\xA6", "\xE0\xB3\xA7", "\xE0\xB3\xA8", "\xE0\xB3\xA9", "\xE0\xB3\xAA", "\xE0\xB3\xAB", "\xE0\xB3\xAC", "\xE0\xB3\xAD", "\xE0\xB3\xAE", "\xE0\xB3\xAF"
+};
+static const struct list_counter_style lcs_kannada = {
+ .name = "kannada",
+ .system = calc_numeric_system,
+ .symbols = kannada_symbols,
+ .items = (sizeof(kannada_symbols) / SYMBOL_SIZE),
+};
+
+static const symbol_t lao_symbols[] = {
+ "໐", "໑", "໒", "໓", "໔", "໕", "໖", "໗", "໘", "໙"
+};
+static const struct list_counter_style lcs_lao = {
+ .name = "lao",
+ .system = calc_numeric_system,
+ .symbols = lao_symbols,
+ .items = (sizeof(lao_symbols) / SYMBOL_SIZE),
+};
+
+static const symbol_t malayalam_symbols[] = {
+ "൦", "൧", "൨", "൩", "൪", "൫", "൬", "൭", "൮", "൯"
+};
+static const struct list_counter_style lcs_malayalam = {
+ .name = "malayalam",
+ .system = calc_numeric_system,
+ .symbols = malayalam_symbols,
+ .items = (sizeof(malayalam_symbols) / SYMBOL_SIZE),
+};
+
+static const symbol_t mongolian_symbols[] = {
+ "᠐", "᠑", "᠒", "᠓", "᠔", "᠕", "᠖", "᠗", "᠘", "᠙"
+};
+static const struct list_counter_style lcs_mongolian = {
+ .name = "mongolian",
+ .system = calc_numeric_system,
+ .symbols = mongolian_symbols,
+ .items = (sizeof(mongolian_symbols) / SYMBOL_SIZE),
+};
+
+static const symbol_t myanmar_symbols[] = {
+ "၀", "၁", "၂", "၃", "၄", "၅", "၆", "၇", "၈", "၉"
+};
+static const struct list_counter_style lcs_myanmar = {
+ .name = "myanmar",
+ .system = calc_numeric_system,
+ .symbols = myanmar_symbols,
+ .items = (sizeof(myanmar_symbols) / SYMBOL_SIZE),
+};
+
+static const symbol_t oriya_symbols[] = {
+ "୦", "୧", "୨", "୩", "୪", "୫", "୬", "୭", "୮", "୯"
+};
+static const struct list_counter_style lcs_oriya = {
+ .name = "oriya",
+ .system = calc_numeric_system,
+ .symbols = oriya_symbols,
+ .items = (sizeof(oriya_symbols) / SYMBOL_SIZE),
+};
+
+static const symbol_t persian_symbols[] = {
+ "۰", "۱", "۲", "۳", "۴", "۵", "۶", "۷", "۸", "۹"
+};
+static const struct list_counter_style lcs_persian = {
+ .name = "persian",
+ .system = calc_numeric_system,
+ .symbols = persian_symbols,
+ .items = (sizeof(persian_symbols) / SYMBOL_SIZE),
+};
+
+static const symbol_t tamil_symbols[] = {
+ "௦", "௧", "௨", "௩", "௪", "௫", "௬", "௭", "௮", "௯"
+};
+static const struct list_counter_style lcs_tamil = {
+ .name = "tamil",
+ .system = calc_numeric_system,
+ .symbols = tamil_symbols,
+ .items = (sizeof(tamil_symbols) / SYMBOL_SIZE),
+};
+
+static const symbol_t telugu_symbols[] = {
+ "౦", "౧", "౨", "౩", "౪", "౫", "౬", "౭", "౮", "౯"
+};
+static const struct list_counter_style lcs_telugu = {
+ .name = "telugu",
+ .system = calc_numeric_system,
+ .symbols = telugu_symbols,
+ .items = (sizeof(telugu_symbols) / SYMBOL_SIZE),
+};
+
+static const symbol_t thai_symbols[] = {
+ "๐", "๑", "๒", "๓", "๔", "๕", "๖", "๗", "๘", "๙"
+};
+static const struct list_counter_style lcs_thai = {
+ .name = "thai",
+ .system = calc_numeric_system,
+ .symbols = thai_symbols,
+ .items = (sizeof(thai_symbols) / SYMBOL_SIZE),
+};
+
+static const symbol_t tibetan_symbols[] = {
+ "༠", "༡", "༢", "༣", "༤", "༥", "༦", "༧", "༨", "༩"
+};
+static const struct list_counter_style lcs_tibetan = {
+ .name = "tibetan",
+ .system = calc_numeric_system,
+ .symbols = tibetan_symbols,
+ .items = (sizeof(tibetan_symbols) / SYMBOL_SIZE),
+};
+
+static const symbol_t cjk_earthly_branch_symbols[] = {
+ "子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"
+};
+static struct list_counter_style lcs_cjk_earthly_branch = {
+ .name = "cjk-earthly-branch",
+ .system = calc_alphabet_system,
+ .fallback = &lcs_decimal,
+ .symbols = cjk_earthly_branch_symbols,
+ .items = (sizeof(cjk_earthly_branch_symbols) / SYMBOL_SIZE),
+ .suffix = "、",
+};
+
+static const symbol_t cjk_heavenly_stem_symbols[] = {
+ "甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"
+};
+static struct list_counter_style lcs_cjk_heavenly_stem = {
+ .name = "cjk-heavenly-stem",
+ .system = calc_alphabet_system,
+ .fallback = &lcs_decimal,
+ .symbols = cjk_heavenly_stem_symbols,
+ .items = (sizeof(cjk_heavenly_stem_symbols) / SYMBOL_SIZE),
+ .suffix = "、",
+};
+
+static const symbol_t hiragana_symbols[] = {
+ "あ", "い", "う", "え", "お", "か", "き", "く", "け", "こ", "さ", "し", "す", "せ", "そ", "た", "ち", "つ", "て", "と", "な", "に", "ぬ", "ね", "の", "は", "ひ", "ふ", "へ", "ほ", "ま", "み", "む", "め", "も", "や", "ゆ", "よ", "ら", "り", "る", "れ", "ろ", "わ", "ゐ", "ゑ", "を", "ん"
+};
+static struct list_counter_style lcs_hiragana = {
+ .name = "hiragana",
+ .system = calc_alphabet_system,
+ .fallback = &lcs_decimal,
+ .symbols = hiragana_symbols,
+ .items = (sizeof(hiragana_symbols) / SYMBOL_SIZE),
+ .suffix = "、",
+};
+
+static const symbol_t hiragana_iroha_symbols[] = {
+ "い", "ろ", "は", "に", "ほ", "へ", "と", "ち", "り", "ぬ", "る", "を", "わ", "か", "よ", "た", "れ", "そ", "つ", "ね", "な", "ら", "む", "う", "ゐ", "の", "お", "く", "や", "ま", "け", "ふ", "こ", "え", "て", "あ", "さ", "き", "ゆ", "め", "み", "し", "ゑ", "ひ", "も", "せ", "す"
+};
+static struct list_counter_style lcs_hiragana_iroha = {
+ .name = "hiragana-iroha",
+ .system = calc_alphabet_system,
+ .fallback = &lcs_decimal,
+ .symbols = hiragana_iroha_symbols,
+ .items = (sizeof(hiragana_iroha_symbols) / SYMBOL_SIZE),
+ .suffix = "、",
+};
+
+static const symbol_t katakana_symbols[] = {
+ "ア", "イ", "ウ", "エ", "オ", "カ", "キ", "ク", "ケ", "コ", "サ", "シ", "ス", "セ", "ソ", "タ", "チ", "ツ", "テ", "ト", "ナ", "ニ", "ヌ", "ネ", "ノ", "ハ", "ヒ", "フ", "ヘ", "ホ", "マ", "ミ", "ム", "メ", "モ", "ヤ", "ユ", "ヨ", "ラ", "リ", "ル", "レ", "ロ", "ワ", "ヰ", "ヱ", "ヲ", "ン"
+};
+static struct list_counter_style lcs_katakana = {
+ .name = "katakana",
+ .system = calc_alphabet_system,
+ .fallback = &lcs_decimal,
+ .symbols = katakana_symbols,
+ .items = (sizeof(katakana_symbols) / SYMBOL_SIZE),
+ .suffix = "、",
+};
+
+static const symbol_t katakana_iroha_symbols[] = {
+ "イ", "ロ", "ハ", "ニ", "ホ", "ヘ", "ト", "チ", "リ", "ヌ", "ル", "ヲ", "ワ", "カ", "ヨ", "タ", "レ", "ソ", "ツ", "ネ", "ナ", "ラ", "ム", "ウ", "ヰ", "ノ", "オ", "ク", "ヤ", "マ", "ケ", "フ", "コ", "エ", "テ", "ア", "サ", "キ", "ユ", "メ", "ミ", "シ", "ヱ", "ヒ", "モ", "セ", "ス"
+};
+static struct list_counter_style lcs_katakana_iroha = {
+ .name = "katakana-iroha",
+ .system = calc_alphabet_system,
+ .fallback = &lcs_decimal,
+ .symbols = katakana_iroha_symbols,
+ .items = (sizeof(katakana_iroha_symbols) / SYMBOL_SIZE),
+ .suffix = "、",
+};
+
+/**
+ * weights suitable for the five complex addative styles
+ */
+static const int complex_counter_weights[] = {
+ 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000,
+ 900, 800, 700, 600, 500, 400, 300, 200, 100,
+ 90, 80, 70, 60, 50, 40, 30, 20, 10,
+ 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
+};
+static const symbol_t japanese_informal_symbols[] = {
+ "九千", "八千", "七千", "六千", "五千", "四千", "三千", "二千", "千",
+ "九百", "八百", "七百", "六百", "五百", "四百", "三百", "二百", "百",
+ "九十", "八十", "七十", "六十", "五十", "四十", "三十", "二十", "十",
+ "九", "八", "七", "六", "五", "四", "三", "二", "一", "〇",
+};
+static const struct list_counter_style lcs_japanese_informal = {
+ .name = "japanese-informal",
+ .system = calc_additive_system,
+ .fallback = &lcs_cjk_decimal,
+ .symbols = japanese_informal_symbols,
+ .weights = complex_counter_weights,
+ .items = (sizeof(japanese_informal_symbols) / SYMBOL_SIZE),
+ .range = { .start = -9999, .end = 9999 },
+ .negative = { .pre = "マイナス" },
+ .suffix = "\xE3\x80\x81",
+};
+
+static const symbol_t japanese_formal_symbols[] = {
+ "九阡", "八阡", "七阡", "六阡", "伍阡", "四阡", "参阡", "弐阡", "壱阡",
+ "九百", "八百", "七百", "六百", "伍百", "四百", "参百", "弐百", "壱百",
+ "九拾", "八拾", "七拾", "六拾", "伍拾", "四拾", "参拾", "弐拾", "壱拾",
+ "九", "八", "七", "六", "伍", "四", "参", "弐", "壱", "零",
+};
+static const struct list_counter_style lcs_japanese_formal = {
+ .name = "japanese-formal",
+ .system = calc_additive_system,
+ .fallback = &lcs_cjk_decimal,
+ .symbols = japanese_formal_symbols,
+ .weights = complex_counter_weights,
+ .items = (sizeof(japanese_formal_symbols) / SYMBOL_SIZE),
+ .range = { .start = -9999, .end = 9999 },
+ .negative = { .pre = "マイナス" },
+ .suffix = "\xE3\x80\x81",
+};
+
+static const symbol_t korean_hangul_formal_symbols[] = {
+ "구천", "팔천", "칠천", "육천", "오천", "사천", "삼천", "이천", "일천",
+ "구백", "팔백", "칠백", "육백", "오백", "사백", "삼백", "이백", "일백",
+ "구십", "팔십", "칠십", "육십", "오십", "사십", "삼십", "이십", "일십",
+ "구", "팔", "칠", "육", "오", "사", "삼", "이", "일", "영"
+};
+static const struct list_counter_style lcs_korean_hangul_formal = {
+ .name = "korean-hangul-formal",
+ .system = calc_additive_system,
+ .fallback = &lcs_cjk_decimal,
+ .symbols = korean_hangul_formal_symbols,
+ .weights = complex_counter_weights,
+ .items = (sizeof(korean_hangul_formal_symbols) / SYMBOL_SIZE),
+ .range = { .start = -9999, .end = 9999 },
+ .negative = { .pre = "\xEB\xA7\x88\xEC\x9D\xB4\xEB\x84\x88\xEC\x8A\xA4 " },
+ .suffix = ", ",
+};
+
+static const symbol_t korean_hanja_informal_symbols[] = {
+ "九千", "八千", "七千", "六千", "五千", "四千", "三千", "二千", "千",
+ "九百", "八百", "七百", "六百", "五百", "四百", "三百", "二百", "百",
+ "九十", "八十", "七十", "六十", "五十", "四十", "三十", "二十", "十",
+ "九", "八", "七", "六", "五", "四", "三", "二", "一", "零"
+};
+static const struct list_counter_style lcs_korean_hanja_informal = {
+ .name = "korean-hanja-informal",
+ .system = calc_additive_system,
+ .fallback = &lcs_cjk_decimal,
+ .symbols = korean_hanja_informal_symbols,
+ .weights = complex_counter_weights,
+ .items = (sizeof(korean_hanja_informal_symbols) / SYMBOL_SIZE),
+ .range = { .start = -9999, .end = 9999 },
+ .negative = { .pre = "\xEB\xA7\x88\xEC\x9D\xB4\xEB\x84\x88\xEC\x8A\xA4 " },
+ .suffix = ", ",
+};
+
+static const symbol_t korean_hanja_formal_symbols[] = {
+ "九仟", "八仟", "七仟", "六仟", "五仟", "四仟", "參仟", "貳仟", "壹仟",
+ "九百", "八百", "七百", "六百", "五百", "四百", "參百", "貳百", "壹百",
+ "九拾", "八拾", "七拾", "六拾", "五拾", "四拾", "參拾", "貳拾", "壹拾",
+ "九", "八", "七", "六", "五", "四", "參", "貳", "壹", "零"
+};
+static const struct list_counter_style lcs_korean_hanja_formal = {
+ .name = "korean-hanja-formal",
+ .system = calc_additive_system,
+ .fallback = &lcs_cjk_decimal,
+ .symbols = korean_hanja_formal_symbols,
+ .weights = complex_counter_weights,
+ .items = (sizeof(korean_hanja_formal_symbols) / SYMBOL_SIZE),
+ .range = { .start = -9999, .end = 9999 },
+ .negative = { .pre = "\xEB\xA7\x88\xEC\x9D\xB4\xEB\x84\x88\xEC\x8A\xA4 " },
+ .suffix = ", ",
+};
+
+
+
+static const struct list_counter_style *
+counter_style_from_computed_style(const css_computed_style *style)
+{
+ switch (get_list_style_type(style)) {
+ case CSS_LIST_STYLE_TYPE_DISC:
+ return &lcs_disc;
+ case CSS_LIST_STYLE_TYPE_CIRCLE:
+ return &lcs_circle;
+ case CSS_LIST_STYLE_TYPE_SQUARE:
+ return &lcs_square;
+ case CSS_LIST_STYLE_TYPE_DECIMAL:
+ return &lcs_decimal;
+ case CSS_LIST_STYLE_TYPE_DECIMAL_LEADING_ZERO:
+ return &lcs_decimal_leading_zero;
+ case CSS_LIST_STYLE_TYPE_LOWER_ROMAN:
+ return &lcs_lower_roman;
+ case CSS_LIST_STYLE_TYPE_UPPER_ROMAN:
+ return &lcs_upper_roman;
+ case CSS_LIST_STYLE_TYPE_LOWER_GREEK:
+ return &lcs_lower_greek;
+ case CSS_LIST_STYLE_TYPE_LOWER_ALPHA:
+ case CSS_LIST_STYLE_TYPE_LOWER_LATIN:
+ return &lcs_lower_alpha;
+ case CSS_LIST_STYLE_TYPE_UPPER_ALPHA:
+ case CSS_LIST_STYLE_TYPE_UPPER_LATIN:
+ return &lcs_upper_alpha;
+ case CSS_LIST_STYLE_TYPE_UPPER_ARMENIAN:
+ case CSS_LIST_STYLE_TYPE_ARMENIAN:
+ return &lcs_upper_armenian;
+ case CSS_LIST_STYLE_TYPE_GEORGIAN:
+ return &lcs_georgian;
+ case CSS_LIST_STYLE_TYPE_NONE:
+ return NULL;
+ case CSS_LIST_STYLE_TYPE_BINARY:
+ return &lcs_binary;
+ case CSS_LIST_STYLE_TYPE_OCTAL:
+ return &lcs_octal;
+ case CSS_LIST_STYLE_TYPE_LOWER_HEXADECIMAL:
+ return &lcs_lower_hexadecimal;
+ case CSS_LIST_STYLE_TYPE_UPPER_HEXADECIMAL:
+ return &lcs_upper_hexadecimal;
+ case CSS_LIST_STYLE_TYPE_ARABIC_INDIC:
+ return &lcs_arabic_indic;
+ case CSS_LIST_STYLE_TYPE_LOWER_ARMENIAN:
+ return &lcs_lower_armenian;
+ case CSS_LIST_STYLE_TYPE_BENGALI:
+ return &lcs_bengali;
+ case CSS_LIST_STYLE_TYPE_CAMBODIAN:
+ case CSS_LIST_STYLE_TYPE_KHMER:
+ return &lcs_cambodian;
+ case CSS_LIST_STYLE_TYPE_CJK_DECIMAL:
+ return &lcs_cjk_decimal;
+ case CSS_LIST_STYLE_TYPE_DEVANAGARI:
+ return &lcs_devanagari;
+ case CSS_LIST_STYLE_TYPE_GUJARATI:
+ return &lcs_gujarati;
+ case CSS_LIST_STYLE_TYPE_GURMUKHI:
+ return &lcs_gurmukhi;
+ case CSS_LIST_STYLE_TYPE_HEBREW:
+ return &lcs_hebrew;
+ case CSS_LIST_STYLE_TYPE_KANNADA:
+ return &lcs_kannada;
+ case CSS_LIST_STYLE_TYPE_LAO:
+ return &lcs_lao;
+ case CSS_LIST_STYLE_TYPE_MALAYALAM:
+ return &lcs_malayalam;
+ case CSS_LIST_STYLE_TYPE_MONGOLIAN:
+ return &lcs_mongolian;
+ case CSS_LIST_STYLE_TYPE_MYANMAR:
+ return &lcs_myanmar;
+ case CSS_LIST_STYLE_TYPE_ORIYA:
+ return &lcs_oriya;
+ case CSS_LIST_STYLE_TYPE_PERSIAN:
+ return &lcs_persian;
+ case CSS_LIST_STYLE_TYPE_TAMIL:
+ return &lcs_tamil;
+ case CSS_LIST_STYLE_TYPE_TELUGU:
+ return &lcs_telugu;
+ case CSS_LIST_STYLE_TYPE_THAI:
+ return &lcs_thai;
+ case CSS_LIST_STYLE_TYPE_TIBETAN:
+ return &lcs_tibetan;
+ case CSS_LIST_STYLE_TYPE_CJK_EARTHLY_BRANCH:
+ return &lcs_cjk_earthly_branch;
+ case CSS_LIST_STYLE_TYPE_CJK_HEAVENLY_STEM:
+ return &lcs_cjk_heavenly_stem;
+ case CSS_LIST_STYLE_TYPE_HIAGANA:
+ return &lcs_hiragana;
+ case CSS_LIST_STYLE_TYPE_HIAGANA_IROHA:
+ return &lcs_hiragana_iroha;
+ case CSS_LIST_STYLE_TYPE_KATAKANA:
+ return &lcs_katakana;
+ case CSS_LIST_STYLE_TYPE_KATAKANA_IROHA:
+ return &lcs_katakana_iroha;
+ case CSS_LIST_STYLE_TYPE_JAPANESE_INFORMAL:
+ return &lcs_japanese_informal;
+ case CSS_LIST_STYLE_TYPE_JAPANESE_FORMAL:
+ return &lcs_japanese_formal;
+ case CSS_LIST_STYLE_TYPE_KOREAN_HANGUL_FORMAL:
+ return &lcs_korean_hangul_formal;
+ case CSS_LIST_STYLE_TYPE_KOREAN_HANJA_INFORMAL:
+ return &lcs_korean_hanja_informal;
+ case CSS_LIST_STYLE_TYPE_KOREAN_HANJA_FORMAL:
+ return &lcs_korean_hanja_formal;
+ }
+ return NULL;
+}
+
+
+/* exported interface defined in select.h */
+css_error css_computed_format_list_style(
+ const css_computed_style *style,
+ int value,
+ char *buffer,
+ size_t buffer_length,
+ size_t *format_length)
+{
+ css_error res = CSS_INVALID;
+ const struct list_counter_style *cstyle;
+ uint8_t aval[20];
+ struct numeric nval = {
+ .val = aval,
+ .len = sizeof(aval),
+ .used = 0,
+ .negative = false
+ };
+
+
+ cstyle = counter_style_from_computed_style(style);
+ while (cstyle != NULL) {
+ res = cstyle->system(value, cstyle, &nval);
+
+ if ((res == CSS_OK) &&
+ (nval.used < nval.len)) {
+ /* system sucessfully generated numeric values */
+ *format_length = nval_to_symbols(&nval,
+ cstyle,
+ buffer,
+ buffer_length);
+ break;
+ }
+
+ res = CSS_INVALID;
+ cstyle = cstyle->fallback;
+ }
+
+ return res;
+}
diff --git a/src/select/helpers.h b/src/select/helpers.h
new file mode 100644
index 0000000..ba2e3be
--- /dev/null
+++ b/src/select/helpers.h
@@ -0,0 +1,51 @@
+/*
+ * This file is part of LibCSS
+ * Licensed under the MIT License,
+ * http://www.opensource.org/licenses/mit-license.php
+ * Copyright 2009 John-Mark Bell <jmb@netsurf-browser.org>
+ */
+
+#ifndef css_select_helpers_h_
+#define css_select_helpers_h_
+
+/**
+ * Convert unit bytecode to a css_unit.
+ */
+static inline css_unit css__to_css_unit(uint32_t u)
+{
+ switch (u) {
+ case UNIT_PX: return CSS_UNIT_PX;
+ case UNIT_EX: return CSS_UNIT_EX;
+ case UNIT_EM: return CSS_UNIT_EM;
+ case UNIT_IN: return CSS_UNIT_IN;
+ case UNIT_CM: return CSS_UNIT_CM;
+ case UNIT_MM: return CSS_UNIT_MM;
+ case UNIT_PT: return CSS_UNIT_PT;
+ case UNIT_PC: return CSS_UNIT_PC;
+ case UNIT_CAP: return CSS_UNIT_CAP;
+ case UNIT_CH: return CSS_UNIT_CH;
+ case UNIT_IC: return CSS_UNIT_IC;
+ case UNIT_REM: return CSS_UNIT_REM;
+ case UNIT_LH: return CSS_UNIT_LH;
+ case UNIT_RLH: return CSS_UNIT_RLH;
+ case UNIT_VH: return CSS_UNIT_VH;
+ case UNIT_VW: return CSS_UNIT_VW;
+ case UNIT_VI: return CSS_UNIT_VI;
+ case UNIT_VB: return CSS_UNIT_VB;
+ case UNIT_VMIN: return CSS_UNIT_VMIN;
+ case UNIT_VMAX: return CSS_UNIT_VMAX;
+ case UNIT_Q: return CSS_UNIT_Q;
+ case UNIT_PCT: return CSS_UNIT_PCT;
+ case UNIT_DEG: return CSS_UNIT_DEG;
+ case UNIT_GRAD: return CSS_UNIT_GRAD;
+ case UNIT_RAD: return CSS_UNIT_RAD;
+ case UNIT_MS: return CSS_UNIT_MS;
+ case UNIT_S: return CSS_UNIT_S;
+ case UNIT_HZ: return CSS_UNIT_HZ;
+ case UNIT_KHZ: return CSS_UNIT_KHZ;
+ }
+
+ return 0;
+}
+
+#endif
diff --git a/src/select/mq.h b/src/select/mq.h
index 9a97b7d..79303e9 100644
--- a/src/select/mq.h
+++ b/src/select/mq.h
@@ -9,8 +9,7 @@
#ifndef css_select_mq_h_
#define css_select_mq_h_
-#include "select/properties/properties.h"
-#include "select/properties/helpers.h"
+#include "select/helpers.h"
static inline css_fixed css_len2px(
css_fixed length,
diff --git a/src/select/properties/helpers.c b/src/select/properties/helpers.c
index 5893919..40936dd 100644
--- a/src/select/properties/helpers.c
+++ b/src/select/properties/helpers.c
@@ -16,45 +16,6 @@
#include "select/properties/helpers.h"
-/* Useful helpers */
-
-css_unit css__to_css_unit(uint32_t u)
-{
- switch (u) {
- case UNIT_PX: return CSS_UNIT_PX;
- case UNIT_EX: return CSS_UNIT_EX;
- case UNIT_EM: return CSS_UNIT_EM;
- case UNIT_IN: return CSS_UNIT_IN;
- case UNIT_CM: return CSS_UNIT_CM;
- case UNIT_MM: return CSS_UNIT_MM;
- case UNIT_PT: return CSS_UNIT_PT;
- case UNIT_PC: return CSS_UNIT_PC;
- case UNIT_CAP: return CSS_UNIT_CAP;
- case UNIT_CH: return CSS_UNIT_CH;
- case UNIT_IC: return CSS_UNIT_IC;
- case UNIT_REM: return CSS_UNIT_REM;
- case UNIT_LH: return CSS_UNIT_LH;
- case UNIT_RLH: return CSS_UNIT_RLH;
- case UNIT_VH: return CSS_UNIT_VH;
- case UNIT_VW: return CSS_UNIT_VW;
- case UNIT_VI: return CSS_UNIT_VI;
- case UNIT_VB: return CSS_UNIT_VB;
- case UNIT_VMIN: return CSS_UNIT_VMIN;
- case UNIT_VMAX: return CSS_UNIT_VMAX;
- case UNIT_Q: return CSS_UNIT_Q;
- case UNIT_PCT: return CSS_UNIT_PCT;
- case UNIT_DEG: return CSS_UNIT_DEG;
- case UNIT_GRAD: return CSS_UNIT_GRAD;
- case UNIT_RAD: return CSS_UNIT_RAD;
- case UNIT_MS: return CSS_UNIT_MS;
- case UNIT_S: return CSS_UNIT_S;
- case UNIT_HZ: return CSS_UNIT_HZ;
- case UNIT_KHZ: return CSS_UNIT_KHZ;
- }
-
- return 0;
-}
-
/******************************************************************************
* Utilities below here *
******************************************************************************/
diff --git a/src/select/properties/helpers.h b/src/select/properties/helpers.h
index 901bcf0..60e5b4c 100644
--- a/src/select/properties/helpers.h
+++ b/src/select/properties/helpers.h
@@ -8,13 +8,13 @@
#ifndef css_select_properties_helpers_h_
#define css_select_properties_helpers_h_
+#include "select/helpers.h"
+
uint32_t generic_destroy_color(void *bytecode);
uint32_t generic_destroy_uri(void *bytecode);
uint32_t generic_destroy_length(void *bytecode);
uint32_t generic_destroy_number(void *bytecode);
-css_unit css__to_css_unit(uint32_t u);
-
css_error css__cascade_bg_border_color(uint32_t opv, css_style *style,
css_select_state *state,
css_error (*fun)(css_computed_style *, uint8_t, css_color));
diff --git a/src/select/properties/list_style_type.c b/src/select/properties/list_style_type.c
index b1e5db6..e32d1b1 100644
--- a/src/select/properties/list_style_type.c
+++ b/src/select/properties/list_style_type.c
@@ -68,6 +68,117 @@ css_error css__cascade_list_style_type(uint32_t opv, css_style *style,
case LIST_STYLE_TYPE_NONE:
value = CSS_LIST_STYLE_TYPE_NONE;
break;
+ case LIST_STYLE_TYPE_BINARY:
+ value = CSS_LIST_STYLE_TYPE_BINARY;
+ break;
+ case LIST_STYLE_TYPE_OCTAL:
+ value = CSS_LIST_STYLE_TYPE_OCTAL;
+ break;
+ case LIST_STYLE_TYPE_LOWER_HEXADECIMAL:
+ value = CSS_LIST_STYLE_TYPE_LOWER_HEXADECIMAL;
+ break;
+ case LIST_STYLE_TYPE_UPPER_HEXADECIMAL:
+ value = CSS_LIST_STYLE_TYPE_UPPER_HEXADECIMAL;
+ break;
+ case LIST_STYLE_TYPE_ARABIC_INDIC:
+ value = CSS_LIST_STYLE_TYPE_ARABIC_INDIC;
+ break;
+ case LIST_STYLE_TYPE_LOWER_ARMENIAN:
+ value = CSS_LIST_STYLE_TYPE_LOWER_ARMENIAN;
+ break;
+ case LIST_STYLE_TYPE_UPPER_ARMENIAN:
+ value = CSS_LIST_STYLE_TYPE_UPPER_ARMENIAN;
+ break;
+ case LIST_STYLE_TYPE_BENGALI:
+ value = CSS_LIST_STYLE_TYPE_BENGALI;
+ break;
+ case LIST_STYLE_TYPE_CAMBODIAN:
+ value = CSS_LIST_STYLE_TYPE_CAMBODIAN;
+ break;
+ case LIST_STYLE_TYPE_KHMER:
+ value = CSS_LIST_STYLE_TYPE_KHMER;
+ break;
+ case LIST_STYLE_TYPE_CJK_DECIMAL:
+ value = CSS_LIST_STYLE_TYPE_CJK_DECIMAL;
+ break;
+ case LIST_STYLE_TYPE_DEVANAGARI:
+ value = CSS_LIST_STYLE_TYPE_DEVANAGARI;
+ break;
+ case LIST_STYLE_TYPE_GUJARATI:
+ value = CSS_LIST_STYLE_TYPE_GUJARATI;
+ break;
+ case LIST_STYLE_TYPE_GURMUKHI:
+ value = CSS_LIST_STYLE_TYPE_GURMUKHI;
+ break;
+ case LIST_STYLE_TYPE_HEBREW:
+ value = CSS_LIST_STYLE_TYPE_HEBREW;
+ break;
+ case LIST_STYLE_TYPE_KANNADA:
+ value = CSS_LIST_STYLE_TYPE_KANNADA;
+ break;
+ case LIST_STYLE_TYPE_LAO:
+ value = CSS_LIST_STYLE_TYPE_LAO;
+ break;
+ case LIST_STYLE_TYPE_MALAYALAM:
+ value = CSS_LIST_STYLE_TYPE_MALAYALAM;
+ break;
+ case LIST_STYLE_TYPE_MONGOLIAN:
+ value = CSS_LIST_STYLE_TYPE_MONGOLIAN;
+ break;
+ case LIST_STYLE_TYPE_MYANMAR:
+ value = CSS_LIST_STYLE_TYPE_MYANMAR;
+ break;
+ case LIST_STYLE_TYPE_ORIYA:
+ value = CSS_LIST_STYLE_TYPE_ORIYA;
+ break;
+ case LIST_STYLE_TYPE_PERSIAN:
+ value = CSS_LIST_STYLE_TYPE_PERSIAN;
+ break;
+ case LIST_STYLE_TYPE_TAMIL:
+ value = CSS_LIST_STYLE_TYPE_TAMIL;
+ break;
+ case LIST_STYLE_TYPE_TELUGU:
+ value = CSS_LIST_STYLE_TYPE_TELUGU;
+ break;
+ case LIST_STYLE_TYPE_THAI:
+ value = CSS_LIST_STYLE_TYPE_THAI;
+ break;
+ case LIST_STYLE_TYPE_TIBETAN:
+ value = CSS_LIST_STYLE_TYPE_TIBETAN;
+ break;
+ case LIST_STYLE_TYPE_CJK_EARTHLY_BRANCH:
+ value = CSS_LIST_STYLE_TYPE_CJK_EARTHLY_BRANCH;
+ break;
+ case LIST_STYLE_TYPE_CJK_HEAVENLY_STEM:
+ value = CSS_LIST_STYLE_TYPE_CJK_HEAVENLY_STEM;
+ break;
+ case LIST_STYLE_TYPE_HIAGANA:
+ value = CSS_LIST_STYLE_TYPE_HIAGANA;
+ break;
+ case LIST_STYLE_TYPE_HIAGANA_IROHA:
+ value = CSS_LIST_STYLE_TYPE_HIAGANA_IROHA;
+ break;
+ case LIST_STYLE_TYPE_KATAKANA:
+ value = CSS_LIST_STYLE_TYPE_KATAKANA;
+ break;
+ case LIST_STYLE_TYPE_KATAKANA_IROHA:
+ value = CSS_LIST_STYLE_TYPE_KATAKANA_IROHA;
+ break;
+ case LIST_STYLE_TYPE_JAPANESE_INFORMAL:
+ value = CSS_LIST_STYLE_TYPE_JAPANESE_INFORMAL;
+ break;
+ case LIST_STYLE_TYPE_JAPANESE_FORMAL:
+ value = CSS_LIST_STYLE_TYPE_JAPANESE_FORMAL;
+ break;
+ case LIST_STYLE_TYPE_KOREAN_HANGUL_FORMAL:
+ value = CSS_LIST_STYLE_TYPE_KOREAN_HANGUL_FORMAL;
+ break;
+ case LIST_STYLE_TYPE_KOREAN_HANJA_INFORMAL:
+ value = CSS_LIST_STYLE_TYPE_KOREAN_HANJA_INFORMAL;
+ break;
+ case LIST_STYLE_TYPE_KOREAN_HANJA_FORMAL:
+ value = CSS_LIST_STYLE_TYPE_KOREAN_HANJA_FORMAL;
+ break;
}
}
@@ -102,4 +213,3 @@ css_error css__compose_list_style_type(const css_computed_style *parent,
return set_list_style_type(result, type);
}
-
diff --git a/src/select/select_config.py b/src/select/select_config.py
index 8845814..fd9e765 100644
--- a/src/select/select_config.py
+++ b/src/select/select_config.py
@@ -49,7 +49,7 @@ style = {
('font_weight', 4),
('justify_content', 3),
('list_style_position', 2),
- ('list_style_type', 4),
+ ('list_style_type', 6),
('overflow_x', 3),
('overflow_y', 3),
('outline_style', 4),