summaryrefslogtreecommitdiff
path: root/css/select.c
diff options
context:
space:
mode:
Diffstat (limited to 'css/select.c')
-rw-r--r--css/select.c38
1 files changed, 25 insertions, 13 deletions
diff --git a/css/select.c b/css/select.c
index dc0d3bf90..5d0a2411b 100644
--- a/css/select.c
+++ b/css/select.c
@@ -2380,30 +2380,42 @@ node_presentational_hint_border_spacing(nscss_select_ctx *ctx,
dom_node *node,
css_hint *hint)
{
-#ifdef FIXME
- xmlChar *cellspacing;
+ dom_exception err;
+ dom_string *node_name = NULL;
+ dom_string *cellspacing = NULL;
+
+ err = dom_node_get_node_name(node, &node_name);
+ if ((err != DOM_NO_ERR) || (node_name == NULL)) {
+ return CSS_PROPERTY_NOT_SET;
+ }
- if (strcmp((const char *) n->name, "table") != 0)
+ if (!dom_string_caseless_isequal(node_name, nscss_dom_string_table)) {
+ dom_string_unref(node_name);
return CSS_PROPERTY_NOT_SET;
+ }
+
+ dom_string_unref(node_name);
- cellspacing = xmlGetProp(n, (const xmlChar *) "cellspacing");
- if (cellspacing == NULL)
+ err = dom_element_get_attribute(node, nscss_dom_string_cellspacing, &cellspacing);
+ if ((err != DOM_NO_ERR) || (cellspacing == NULL)) {
return CSS_PROPERTY_NOT_SET;
+ }
+
- if (parse_dimension((const char *) cellspacing, false,
+ if (parse_dimension((const char *)dom_string_data(cellspacing),
+ false,
&hint->data.position.h.value,
&hint->data.position.h.unit)) {
+
hint->data.position.v = hint->data.position.h;
hint->status = CSS_BORDER_SPACING_SET;
- } else {
- xmlFree(cellspacing);
- return CSS_PROPERTY_NOT_SET;
- }
- xmlFree(cellspacing);
+ dom_string_unref(cellspacing);
+ return CSS_OK;
- return CSS_OK;
-#endif
+ }
+
+ dom_string_unref(cellspacing);
return CSS_PROPERTY_NOT_SET;
}