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