From 146bda077e00e3feffc3748af681f10494fc9c5c Mon Sep 17 00:00:00 2001 From: Daniel Silverstone Date: Sat, 7 Jul 2012 22:21:26 +0100 Subject: HTML{{,Button,Select,Form}Element,Document,Element,{,Options}Collection}: Make buttons work and forms contain their correct buttons --- bindings/hubbub/parser.c | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) (limited to 'bindings') diff --git a/bindings/hubbub/parser.c b/bindings/hubbub/parser.c index b42645d..3ec2366 100644 --- a/bindings/hubbub/parser.c +++ b/bindings/hubbub/parser.c @@ -20,6 +20,10 @@ #include "core/document.h" #include "core/string.h" +#include "core/node.h" + +#include "html/html_document.h" +#include "html/html_button_element.h" #include @@ -465,10 +469,24 @@ static hubbub_error has_children(void *parser, void *node, bool *result) static hubbub_error form_associate(void *parser, void *form, void *node) { - UNUSED(parser); - UNUSED(form); - UNUSED(node); - + dom_hubbub_parser *dom_parser = (dom_hubbub_parser *) parser; + dom_html_form_element *form_ele = form; + dom_node_internal *ele = node; + dom_html_document *doc = (dom_html_document *)ele->owner; + dom_exception err = DOM_NO_ERR; + + /* Determine the kind of the node we have here. */ + if (dom_string_caseless_isequal(ele->name, + doc->memoised[hds_BUTTON])) { + err = _dom_html_button_element_set_form( + (dom_html_button_element *)node, form_ele); + if (err != DOM_NO_ERR) { + dom_parser->msg(DOM_MSG_CRITICAL, dom_parser->mctx, + "Error in form_associate"); + return HUBBUB_UNKNOWN; + } + } + return HUBBUB_OK; } -- cgit v1.2.3