Gitweb links:

...log 
http://git.netsurf-browser.org/netsurf.git/shortlog/9d3986e768b761e63f28c657de67c408ba0b9486
...commit 
http://git.netsurf-browser.org/netsurf.git/commit/9d3986e768b761e63f28c657de67c408ba0b9486
...tree 
http://git.netsurf-browser.org/netsurf.git/tree/9d3986e768b761e63f28c657de67c408ba0b9486

The branch, master has been updated
       via  9d3986e768b761e63f28c657de67c408ba0b9486 (commit)
      from  b412b93701b3e4327d1eed88ecc27b093c571f61 (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/9d3986e768b761e63f28c657de67c408ba0b9486
commit 9d3986e768b761e63f28c657de67c408ba0b9486
Author: Michael Drake <t...@netsurf-browser.org>
Commit: Michael Drake <t...@netsurf-browser.org>

    Avoid strcasecmp in form control creation node name handler.

diff --git a/render/html.c b/render/html.c
index 8c5c76b..8dcd7a8 100644
--- a/render/html.c
+++ b/render/html.c
@@ -113,6 +113,9 @@ dom_string *html_dom_string_coords;
 dom_string *html_dom_string_circle;
 dom_string *html_dom_string_poly;
 dom_string *html_dom_string_polygon;
+dom_string *html_dom_string_button;
+dom_string *html_dom_string_input;
+dom_string *html_dom_string_textarea;
 
 
 static void html_destroy_objects(html_content *html)
@@ -3140,6 +3143,9 @@ static void html_fini(void)
        HTML_DOM_STRING_UNREF(circle);
        HTML_DOM_STRING_UNREF(poly);
        HTML_DOM_STRING_UNREF(polygon);
+       HTML_DOM_STRING_UNREF(button);
+       HTML_DOM_STRING_UNREF(input);
+       HTML_DOM_STRING_UNREF(textarea);
 
 #undef HTML_DOM_STRING_UNREF
 
@@ -3269,6 +3275,9 @@ nserror html_init(void)
        HTML_DOM_STRING_INTERN(circle);
        HTML_DOM_STRING_INTERN(poly);
        HTML_DOM_STRING_INTERN(polygon);
+       HTML_DOM_STRING_INTERN(button);
+       HTML_DOM_STRING_INTERN(input);
+       HTML_DOM_STRING_INTERN(textarea);
 
 #undef HTML_DOM_STRING_INTERN
 
diff --git a/render/html_forms.c b/render/html_forms.c
index c8b3c7f..5212b3a 100644
--- a/render/html_forms.c
+++ b/render/html_forms.c
@@ -416,7 +416,6 @@ struct form_control *html_forms_get_control_for_node(struct 
form *forms, dom_nod
        struct form_control *ctl = NULL;
        dom_exception err;
        dom_string *ds_name = NULL;
-       char *node_name = NULL;
 
        if (forms == NULL)
                return NULL;
@@ -432,18 +431,18 @@ struct form_control 
*html_forms_get_control_for_node(struct form *forms, dom_nod
        /* Step two, extract the node's name so we can construct a gadget. */
        err = dom_element_get_tag_name(node, &ds_name);
        if (err == DOM_NO_ERR && ds_name != NULL) {
-               node_name = strndup(dom_string_data(ds_name),
-                                   dom_string_byte_length(ds_name));
-       }
-
-       /* Step three, attempt to work out what gadget to make */
 
-       if (node_name && strcasecmp(node_name, "button") == 0)
-               ctl = parse_button_element(forms,
-                                          (dom_html_button_element *) node);
-       else if (node_name && strcasecmp(node_name, "input") == 0)
-               ctl = parse_input_element(forms,
-                                         (dom_html_input_element *) node);
+               /* Step three, attempt to work out what gadget to make */
+               if (dom_string_caseless_isequal(ds_name,
+                               html_dom_string_button)) {
+                       ctl = parse_button_element(forms,
+                                       (dom_html_button_element *) node);
+               } else if (dom_string_caseless_isequal(ds_name,
+                               html_dom_string_input)) {
+                       ctl = parse_input_element(forms,
+                                       (dom_html_input_element *) node);
+               }
+       }
 
        /* If all else fails, fake gadget time */
        if (ctl == NULL)
@@ -451,8 +450,7 @@ struct form_control *html_forms_get_control_for_node(struct 
form *forms, dom_nod
 
        if (ds_name != NULL)
                dom_string_unref(ds_name);
-       if (node_name != NULL)
-               free(node_name);
+
        return ctl;
 }
 
diff --git a/render/html_internal.h b/render/html_internal.h
index ad032f7..a82d7c5 100644
--- a/render/html_internal.h
+++ b/render/html_internal.h
@@ -173,6 +173,9 @@ extern struct dom_string *html_dom_string_coords;
 extern struct dom_string *html_dom_string_circle;
 extern struct dom_string *html_dom_string_poly;
 extern struct dom_string *html_dom_string_polygon;
+extern struct dom_string *html_dom_string_button;
+extern struct dom_string *html_dom_string_input;
+extern struct dom_string *html_dom_string_textarea;
 extern struct dom_string *html_dom_string_text_javascript;
 extern struct dom_string *html_dom_string_type;
 extern struct dom_string *html_dom_string_src;
-----------------------------------------------------------------------

Summary of changes:
 render/html.c          |    9 +++++++++
 render/html_forms.c    |   26 ++++++++++++--------------
 render/html_internal.h |    3 +++
 3 files changed, 24 insertions(+), 14 deletions(-)

diff --git a/render/html.c b/render/html.c
index 8c5c76b..8dcd7a8 100644
--- a/render/html.c
+++ b/render/html.c
@@ -113,6 +113,9 @@ dom_string *html_dom_string_coords;
 dom_string *html_dom_string_circle;
 dom_string *html_dom_string_poly;
 dom_string *html_dom_string_polygon;
+dom_string *html_dom_string_button;
+dom_string *html_dom_string_input;
+dom_string *html_dom_string_textarea;
 
 
 static void html_destroy_objects(html_content *html)
@@ -3140,6 +3143,9 @@ static void html_fini(void)
        HTML_DOM_STRING_UNREF(circle);
        HTML_DOM_STRING_UNREF(poly);
        HTML_DOM_STRING_UNREF(polygon);
+       HTML_DOM_STRING_UNREF(button);
+       HTML_DOM_STRING_UNREF(input);
+       HTML_DOM_STRING_UNREF(textarea);
 
 #undef HTML_DOM_STRING_UNREF
 
@@ -3269,6 +3275,9 @@ nserror html_init(void)
        HTML_DOM_STRING_INTERN(circle);
        HTML_DOM_STRING_INTERN(poly);
        HTML_DOM_STRING_INTERN(polygon);
+       HTML_DOM_STRING_INTERN(button);
+       HTML_DOM_STRING_INTERN(input);
+       HTML_DOM_STRING_INTERN(textarea);
 
 #undef HTML_DOM_STRING_INTERN
 
diff --git a/render/html_forms.c b/render/html_forms.c
index c8b3c7f..5212b3a 100644
--- a/render/html_forms.c
+++ b/render/html_forms.c
@@ -416,7 +416,6 @@ struct form_control *html_forms_get_control_for_node(struct 
form *forms, dom_nod
        struct form_control *ctl = NULL;
        dom_exception err;
        dom_string *ds_name = NULL;
-       char *node_name = NULL;
 
        if (forms == NULL)
                return NULL;
@@ -432,18 +431,18 @@ struct form_control 
*html_forms_get_control_for_node(struct form *forms, dom_nod
        /* Step two, extract the node's name so we can construct a gadget. */
        err = dom_element_get_tag_name(node, &ds_name);
        if (err == DOM_NO_ERR && ds_name != NULL) {
-               node_name = strndup(dom_string_data(ds_name),
-                                   dom_string_byte_length(ds_name));
-       }
-
-       /* Step three, attempt to work out what gadget to make */
 
-       if (node_name && strcasecmp(node_name, "button") == 0)
-               ctl = parse_button_element(forms,
-                                          (dom_html_button_element *) node);
-       else if (node_name && strcasecmp(node_name, "input") == 0)
-               ctl = parse_input_element(forms,
-                                         (dom_html_input_element *) node);
+               /* Step three, attempt to work out what gadget to make */
+               if (dom_string_caseless_isequal(ds_name,
+                               html_dom_string_button)) {
+                       ctl = parse_button_element(forms,
+                                       (dom_html_button_element *) node);
+               } else if (dom_string_caseless_isequal(ds_name,
+                               html_dom_string_input)) {
+                       ctl = parse_input_element(forms,
+                                       (dom_html_input_element *) node);
+               }
+       }
 
        /* If all else fails, fake gadget time */
        if (ctl == NULL)
@@ -451,8 +450,7 @@ struct form_control *html_forms_get_control_for_node(struct 
form *forms, dom_nod
 
        if (ds_name != NULL)
                dom_string_unref(ds_name);
-       if (node_name != NULL)
-               free(node_name);
+
        return ctl;
 }
 
diff --git a/render/html_internal.h b/render/html_internal.h
index ad032f7..a82d7c5 100644
--- a/render/html_internal.h
+++ b/render/html_internal.h
@@ -173,6 +173,9 @@ extern struct dom_string *html_dom_string_coords;
 extern struct dom_string *html_dom_string_circle;
 extern struct dom_string *html_dom_string_poly;
 extern struct dom_string *html_dom_string_polygon;
+extern struct dom_string *html_dom_string_button;
+extern struct dom_string *html_dom_string_input;
+extern struct dom_string *html_dom_string_textarea;
 extern struct dom_string *html_dom_string_text_javascript;
 extern struct dom_string *html_dom_string_type;
 extern struct dom_string *html_dom_string_src;


-- 
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