summaryrefslogtreecommitdiff
path: root/css
diff options
context:
space:
mode:
authorVincent Sanders <vince@netsurf-browser.org>2012-03-25 23:14:18 +0000
committerVincent Sanders <vince@netsurf-browser.org>2012-03-25 23:14:18 +0000
commit32f2b175feb811a9fbe5fc0ee41f91cf6acb9030 (patch)
tree1a96ebd5964b5e606e513cd07cc11cfa2faa0f55 /css
parentb9a2def970522a4472168ecd12c338b7ef1aa2b9 (diff)
downloadnetsurf-32f2b175feb811a9fbe5fc0ee41f91cf6acb9030.tar.gz
netsurf-32f2b175feb811a9fbe5fc0ee41f91cf6acb9030.tar.bz2
convert node_presentational_hint_float
svn path=/trunk/netsurf/; revision=13714
Diffstat (limited to 'css')
-rw-r--r--css/select.c56
1 files changed, 33 insertions, 23 deletions
diff --git a/css/select.c b/css/select.c
index 6db206168..0e82e0c7f 100644
--- a/css/select.c
+++ b/css/select.c
@@ -2675,34 +2675,44 @@ node_presentational_hint_float(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;
- /** \todo input[type=image][align=*] - $11.3.3 */
- if (strcmp((const char *) n->name, "table") == 0 ||
- strcmp((const char *) n->name, "applet") == 0 ||
- strcmp((const char *) n->name, "embed") == 0 ||
- strcmp((const char *) n->name, "iframe") == 0 ||
- strcmp((const char *) n->name, "img") == 0 ||
- strcmp((const char *) n->name, "object") == 0)
- align = xmlGetProp(n, (const xmlChar *) "align");
-
- if (align == NULL)
- return CSS_PROPERTY_NOT_SET;
+ err = dom_node_get_node_name(node, &node_name);
+ if ((err != DOM_NO_ERR) || (node_name == NULL)) {
+ return CSS_NOMEM;
+ }
- if (strcasecmp((const char *) align, "left") == 0) {
- hint->status = CSS_FLOAT_LEFT;
- } else if (strcasecmp((const char *) align, "right") == 0) {
- hint->status = CSS_FLOAT_RIGHT;
- } else {
- xmlFree(align);
- return CSS_PROPERTY_NOT_SET;
- }
+ /** \todo input[type=image][align=*] - $11.3.3 */
+ if (!dom_string_isequal(node_name, nscss_dom_string_applet) &&
+ !dom_string_isequal(node_name, nscss_dom_string_embed) &&
+ !dom_string_isequal(node_name, nscss_dom_string_iframe) &&
+ !dom_string_isequal(node_name, nscss_dom_string_img) &&
+ !dom_string_isequal(node_name, nscss_dom_string_object)) {
+ dom_string_unref(node_name);
+ return CSS_PROPERTY_NOT_SET;
+ }
- 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;
+ }
+
+ if (dom_string_isequal(align, nscss_dom_string_left)) {
+ hint->status = CSS_FLOAT_LEFT;
+ dom_string_unref(align);
return CSS_OK;
-#endif
+ } else if (dom_string_isequal(align, nscss_dom_string_right)) {
+ hint->status = CSS_FLOAT_RIGHT;
+ dom_string_unref(align);
+ return CSS_OK;
+ }
+
+ dom_string_unref(align);
+
return CSS_PROPERTY_NOT_SET;
}