]> gitweb.michael.orlitzky.com - libsvgtiny.git/commitdiff
src/svgtiny.c: use case-sensitive comparisons for SVG element names
authorMichael Orlitzky <michael@orlitzky.com>
Sat, 7 Jun 2025 16:25:33 +0000 (12:25 -0400)
committerMichael Orlitzky <michael@orlitzky.com>
Mon, 9 Jun 2025 01:13:07 +0000 (21:13 -0400)
SVG is XML and its element names are therefore case-sensitive. We
switch to case-sensitive comparisons to avoid rendering elements
(e.g. <RECT />) that other SVG clients (e.g. Firefox) will not.

src/svgtiny.c

index f5ed89b0b01e0d30b0b2bc2db293f8dd8dc21ed8..d87c568ed05ec0a2122a0289fdaac4a9fb74c271 100644 (file)
@@ -988,8 +988,7 @@ svgtiny_parse_text(dom_element *text, struct svgtiny_parse_state state)
                                svgtiny_cleanup_state_local(&state);
                                return svgtiny_LIBDOM_ERROR;
                        }
-                       if (dom_string_caseless_isequal(nodename,
-                                                       state.interned_tspan))
+                       if (dom_string_isequal(nodename, state.interned_tspan))
                                code = svgtiny_parse_text((dom_element *)child,
                                                          state);
                        dom_string_unref(nodename);
@@ -1183,29 +1182,29 @@ parse_element(dom_element *element, struct svgtiny_parse_state *state)
                return svgtiny_LIBDOM_ERROR;
        }
 
-       if (dom_string_caseless_isequal(state->interned_svg, nodename)) {
+       if (dom_string_isequal(state->interned_svg, nodename)) {
                code = svgtiny_parse_svg(element, *state);
-       } else if (dom_string_caseless_isequal(state->interned_g, nodename)) {
+       } else if (dom_string_isequal(state->interned_g, nodename)) {
                code = svgtiny_parse_svg(element, *state);
-       } else if (dom_string_caseless_isequal(state->interned_a, nodename)) {
+       } else if (dom_string_isequal(state->interned_a, nodename)) {
                code = svgtiny_parse_svg(element, *state);
-       } else if (dom_string_caseless_isequal(state->interned_path, nodename)) {
+       } else if (dom_string_isequal(state->interned_path, nodename)) {
                code = svgtiny_parse_path(element, *state);
-       } else if (dom_string_caseless_isequal(state->interned_rect, nodename)) {
+       } else if (dom_string_isequal(state->interned_rect, nodename)) {
                code = svgtiny_parse_rect(element, *state);
-       } else if (dom_string_caseless_isequal(state->interned_circle, nodename)) {
+       } else if (dom_string_isequal(state->interned_circle, nodename)) {
                code = svgtiny_parse_circle(element, *state);
-       } else if (dom_string_caseless_isequal(state->interned_ellipse, nodename)) {
+       } else if (dom_string_isequal(state->interned_ellipse, nodename)) {
                code = svgtiny_parse_ellipse(element, *state);
-       } else if (dom_string_caseless_isequal(state->interned_line, nodename)) {
+       } else if (dom_string_isequal(state->interned_line, nodename)) {
                code = svgtiny_parse_line(element, *state);
-       } else if (dom_string_caseless_isequal(state->interned_polyline, nodename)) {
+       } else if (dom_string_isequal(state->interned_polyline, nodename)) {
                code = svgtiny_parse_poly(element, *state, false);
-       } else if (dom_string_caseless_isequal(state->interned_polygon, nodename)) {
+       } else if (dom_string_isequal(state->interned_polygon, nodename)) {
                code = svgtiny_parse_poly(element, *state, true);
-       } else if (dom_string_caseless_isequal(state->interned_text, nodename)) {
+       } else if (dom_string_isequal(state->interned_text, nodename)) {
                code = svgtiny_parse_text(element, *state);
-       } else if (dom_string_caseless_isequal(state->interned_use, nodename)) {
+       } else if (dom_string_isequal(state->interned_use, nodename)) {
                code = svgtiny_parse_use(element, *state);
        }
        dom_string_unref(nodename);
@@ -1323,7 +1322,7 @@ static svgtiny_code svgtiny_preparse_styles(dom_element *svg,
                                return svgtiny_LIBDOM_ERROR;
                        }
 
-                       if (dom_string_caseless_isequal(state.interned_style,
+                       if (dom_string_isequal(state.interned_style,
                                                        nodename)) {
                                /* We have a <style> element, parse it */
                                code = svgtiny_parse_style_element(child,
@@ -1479,7 +1478,7 @@ static svgtiny_code get_svg_element(dom_document *document, dom_element **svg)
                dom_node_unref(*svg);
                return svgtiny_LIBDOM_ERROR;
        }
-       if (!dom_string_caseless_lwc_isequal(svg_name, svg_name_lwc)) {
+       if (!dom_string_lwc_isequal(svg_name, svg_name_lwc)) {
                lwc_string_unref(svg_name_lwc);
                dom_string_unref(svg_name);
                dom_node_unref(*svg);