diff options
Diffstat (limited to 'src/select/properties/list_style_type.c')
-rw-r--r-- | src/select/properties/list_style_type.c | 38 |
1 files changed, 31 insertions, 7 deletions
diff --git a/src/select/properties/list_style_type.c b/src/select/properties/list_style_type.c index 7560c3b..9d809e6 100644 --- a/src/select/properties/list_style_type.c +++ b/src/select/properties/list_style_type.c @@ -21,7 +21,7 @@ css_error css__cascade_list_style_type(uint32_t opv, css_style *style, UNUSED(style); - if (isInherit(opv) == false) { + if (hasFlagValue(opv) == false) { switch (getValue(opv)) { case LIST_STYLE_TYPE_DISC: value = CSS_LIST_STYLE_TYPE_DISC; @@ -164,11 +164,26 @@ css_error css__cascade_list_style_type(uint32_t opv, css_style *style, 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; } } if (css__outranks_existing(getOpcode(opv), isImportant(opv), state, - isInherit(opv))) { + getFlagValue(opv))) { return set_list_style_type(state->computed, value); } @@ -186,15 +201,24 @@ css_error css__initial_list_style_type(css_select_state *state) return set_list_style_type(state->computed, CSS_LIST_STYLE_TYPE_DISC); } +css_error css__copy_list_style_type( + const css_computed_style *from, + css_computed_style *to) +{ + if (from == to) { + return CSS_OK; + } + + return set_list_style_type(to, get_list_style_type(from)); +} + css_error css__compose_list_style_type(const css_computed_style *parent, const css_computed_style *child, css_computed_style *result) { uint8_t type = get_list_style_type(child); - if (type == CSS_LIST_STYLE_TYPE_INHERIT) { - type = get_list_style_type(parent); - } - - return set_list_style_type(result, type); + return css__copy_list_style_type( + type == CSS_LIST_STYLE_TYPE_INHERIT ? parent : child, + result); } |