]> gitweb.michael.orlitzky.com - libsvgtiny.git/commitdiff
src/svgtiny.c: use case-sensitive comparisons for SVG element names
authorMichael Orlitzky <michael@orlitzky.com>
Sun, 19 Nov 2023 16:39:13 +0000 (11:39 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Mon, 20 Nov 2023 16:42:58 +0000 (11:42 -0500)
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 165fc215758f330d32beb0dc8dda704fd9e234c0..98a84d44d7921635a03f67d7188a453a2aaf8ae2 100644 (file)
@@ -703,7 +703,7 @@ svgtiny_code svgtiny_parse(struct svgtiny_diagram *diagram,
                dom_node_unref(document);
                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);
@@ -945,7 +945,7 @@ 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,
@@ -1048,37 +1048,37 @@ svgtiny_code svgtiny_parse_svg(dom_element *svg,
                                svgtiny_cleanup_state_local(&state);
                                return svgtiny_LIBDOM_ERROR;
                        }
-                       if (dom_string_caseless_isequal(state.interned_svg,
+                       if (dom_string_isequal(state.interned_svg,
                                                        nodename))
                                code = svgtiny_parse_svg(child, state);
-                       else if (dom_string_caseless_isequal(state.interned_g,
+                       else if (dom_string_isequal(state.interned_g,
                                                             nodename))
                                code = svgtiny_parse_svg(child, state);
-                       else if (dom_string_caseless_isequal(state.interned_a,
+                       else if (dom_string_isequal(state.interned_a,
                                                             nodename))
                                code = svgtiny_parse_svg(child, state);
-                       else if (dom_string_caseless_isequal(state.interned_path,
+                       else if (dom_string_isequal(state.interned_path,
                                                             nodename))
                                code = svgtiny_parse_path(child, state);
-                       else if (dom_string_caseless_isequal(state.interned_rect,
+                       else if (dom_string_isequal(state.interned_rect,
                                                             nodename))
                                code = svgtiny_parse_rect(child, state);
-                       else if (dom_string_caseless_isequal(state.interned_circle,
+                       else if (dom_string_isequal(state.interned_circle,
                                                             nodename))
                                code = svgtiny_parse_circle(child, state);
-                       else if (dom_string_caseless_isequal(state.interned_ellipse,
+                       else if (dom_string_isequal(state.interned_ellipse,
                                                             nodename))
                                code = svgtiny_parse_ellipse(child, state);
-                       else if (dom_string_caseless_isequal(state.interned_line,
+                       else if (dom_string_isequal(state.interned_line,
                                                             nodename))
                                code = svgtiny_parse_line(child, state);
-                       else if (dom_string_caseless_isequal(state.interned_polyline,
+                       else if (dom_string_isequal(state.interned_polyline,
                                                             nodename))
                                code = svgtiny_parse_poly(child, state, false);
-                       else if (dom_string_caseless_isequal(state.interned_polygon,
+                       else if (dom_string_isequal(state.interned_polygon,
                                                             nodename))
                                code = svgtiny_parse_poly(child, state, true);
-                       else if (dom_string_caseless_isequal(state.interned_text,
+                       else if (dom_string_isequal(state.interned_text,
                                                             nodename))
                                code = svgtiny_parse_text(child, state);
                        dom_string_unref(nodename);
@@ -1960,8 +1960,8 @@ svgtiny_code svgtiny_parse_text(dom_element *text,
                                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);