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

Reply via email to