diff options
Diffstat (limited to 'css/select.c')
-rw-r--r-- | css/select.c | 53 |
1 files changed, 31 insertions, 22 deletions
diff --git a/css/select.c b/css/select.c index 0cd2a790f..fc4558e0b 100644 --- a/css/select.c +++ b/css/select.c @@ -2679,26 +2679,35 @@ node_presentational_hint_caption_side(nscss_select_ctx *ctx, dom_node *node, css_hint *hint) { -#ifdef FIXME - xmlChar *align = NULL; + dom_exception err; + dom_string *node_name = NULL; + dom_string *align = NULL; - if (strcmp((const char *) n->name, "caption") == 0) - align = xmlGetProp(n, (const xmlChar *) "align"); + err = dom_node_get_node_name(node, &node_name); + if ((err != DOM_NO_ERR) || (node_name == NULL)) { + return CSS_PROPERTY_NOT_SET; + } - if (align == NULL) + if (!dom_string_caseless_isequal(node_name, nscss_dom_string_caption)) { + dom_string_unref(node_name); return CSS_PROPERTY_NOT_SET; + } - if (strcasecmp((const char *) align, "bottom") == 0) { - hint->status = CSS_CAPTION_SIDE_BOTTOM; - } else { - xmlFree(align); + dom_string_unref(node_name); + + err = dom_element_get_attribute(node, nscss_dom_string_align, &align); + if ((err != DOM_NO_ERR) || (align == NULL)) { return CSS_PROPERTY_NOT_SET; } - xmlFree(align); + if (dom_string_caseless_isequal(align, nscss_dom_string_bottom)) { + hint->status = CSS_CAPTION_SIDE_BOTTOM; + dom_string_unref(align); + return CSS_OK; + } + + dom_string_unref(align); - return CSS_OK; -#endif return CSS_PROPERTY_NOT_SET; } @@ -2707,23 +2716,23 @@ node_presentational_hint_background_color(nscss_select_ctx *ctx, dom_node *node, css_hint *hint) { -#ifdef FIXME - xmlChar *bgcol = xmlGetProp(n, (const xmlChar *) "bgcolor"); - if (bgcol == NULL) + dom_exception err; + dom_string *bgcolor; + + err = dom_element_get_attribute(node, nscss_dom_string_bgcolor, &bgcolor); + if ((err != DOM_NO_ERR) || (bgcolor == NULL)) { return CSS_PROPERTY_NOT_SET; + } - if (nscss_parse_colour((const char *) bgcol, + if (nscss_parse_colour((const char *)dom_string_data(bgcolor), &hint->data.color)) { hint->status = CSS_BACKGROUND_COLOR_COLOR; - } else { - xmlFree(bgcol); - return CSS_PROPERTY_NOT_SET; + dom_string_unref(bgcolor); + return CSS_OK; } - xmlFree(bgcol); + dom_string_unref(bgcolor); - return CSS_OK; -#endif return CSS_PROPERTY_NOT_SET; } |