Gitweb links: ...log http://git.netsurf-browser.org/netsurf.git/shortlog/792dbe6e44cc1d3a78dfb62f99c001bc46131de7 ...commit http://git.netsurf-browser.org/netsurf.git/commit/792dbe6e44cc1d3a78dfb62f99c001bc46131de7 ...tree http://git.netsurf-browser.org/netsurf.git/tree/792dbe6e44cc1d3a78dfb62f99c001bc46131de7
The branch, master has been updated via 792dbe6e44cc1d3a78dfb62f99c001bc46131de7 (commit) from 9d3986e768b761e63f28c657de67c408ba0b9486 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commitdiff http://git.netsurf-browser.org/netsurf.git/commitdiff/792dbe6e44cc1d3a78dfb62f99c001bc46131de7 commit 792dbe6e44cc1d3a78dfb62f99c001bc46131de7 Author: Michael Drake <t...@netsurf-browser.org> Commit: Michael Drake <t...@netsurf-browser.org> Add textarea support back in. diff --git a/render/html_forms.c b/render/html_forms.c index 5212b3a..5b917cd 100644 --- a/render/html_forms.c +++ b/render/html_forms.c @@ -392,6 +392,52 @@ out: } static struct form_control * +parse_textarea_element(struct form *forms, dom_html_text_area_element *ta) +{ + struct form_control *control = NULL; + dom_html_form_element *form = NULL; + dom_string *ds_name = NULL; + + char *name = NULL; + + if (dom_html_text_area_element_get_form(ta, &form) != DOM_NO_ERR) + goto out; + + if (dom_html_text_area_element_get_name(ta, &ds_name) != DOM_NO_ERR) + goto out; + + if (ds_name != NULL) + name = strndup(dom_string_data(ds_name), + dom_string_byte_length(ds_name)); + + control = form_new_control(ta, GADGET_TEXTAREA); + + if (control == NULL) + goto out; + + if (name != NULL) { + /* Hand the name string over */ + control->name = name; + name = NULL; + } + + if (form != NULL && control != NULL) + form_add_control(find_form(forms, form), control); + +out: + if (form != NULL) + dom_node_unref(form); + if (ds_name != NULL) + dom_string_unref(ds_name); + + if (name != NULL) + free(name); + + + return control; +} + +static struct form_control * invent_fake_gadget(dom_node *node) { struct form_control *ctl = form_new_control(node, GADGET_HIDDEN); @@ -441,6 +487,10 @@ struct form_control *html_forms_get_control_for_node(struct form *forms, dom_nod html_dom_string_input)) { ctl = parse_input_element(forms, (dom_html_input_element *) node); + } else if (dom_string_caseless_isequal(ds_name, + html_dom_string_textarea)) { + ctl = parse_textarea_element(forms, + (dom_html_text_area_element *) node); } } ----------------------------------------------------------------------- Summary of changes: render/html_forms.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 50 insertions(+), 0 deletions(-) diff --git a/render/html_forms.c b/render/html_forms.c index 5212b3a..5b917cd 100644 --- a/render/html_forms.c +++ b/render/html_forms.c @@ -392,6 +392,52 @@ out: } static struct form_control * +parse_textarea_element(struct form *forms, dom_html_text_area_element *ta) +{ + struct form_control *control = NULL; + dom_html_form_element *form = NULL; + dom_string *ds_name = NULL; + + char *name = NULL; + + if (dom_html_text_area_element_get_form(ta, &form) != DOM_NO_ERR) + goto out; + + if (dom_html_text_area_element_get_name(ta, &ds_name) != DOM_NO_ERR) + goto out; + + if (ds_name != NULL) + name = strndup(dom_string_data(ds_name), + dom_string_byte_length(ds_name)); + + control = form_new_control(ta, GADGET_TEXTAREA); + + if (control == NULL) + goto out; + + if (name != NULL) { + /* Hand the name string over */ + control->name = name; + name = NULL; + } + + if (form != NULL && control != NULL) + form_add_control(find_form(forms, form), control); + +out: + if (form != NULL) + dom_node_unref(form); + if (ds_name != NULL) + dom_string_unref(ds_name); + + if (name != NULL) + free(name); + + + return control; +} + +static struct form_control * invent_fake_gadget(dom_node *node) { struct form_control *ctl = form_new_control(node, GADGET_HIDDEN); @@ -441,6 +487,10 @@ struct form_control *html_forms_get_control_for_node(struct form *forms, dom_nod html_dom_string_input)) { ctl = parse_input_element(forms, (dom_html_input_element *) node); + } else if (dom_string_caseless_isequal(ds_name, + html_dom_string_textarea)) { + ctl = parse_textarea_element(forms, + (dom_html_text_area_element *) node); } } -- NetSurf Browser _______________________________________________ netsurf-commits mailing list netsurf-commits@netsurf-browser.org http://vlists.pepperfish.net/cgi-bin/mailman/listinfo/netsurf-commits-netsurf-browser.org