From 1e4ac0e37714a0d28fd8305cbf8baa06536d0f7d Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Sat, 7 Jun 2025 12:25:33 -0400 Subject: [PATCH] src/svgtiny.c: use case-sensitive comparisons for SVG element names SVG is XML and its element names are therefore case-sensitive. We switch to case-sensitive comparisons to avoid rendering elements (e.g. ) that other SVG clients (e.g. Firefox) will not. --- src/svgtiny.c | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/src/svgtiny.c b/src/svgtiny.c index f5ed89b..d87c568 100644 --- a/src/svgtiny.c +++ b/src/svgtiny.c @@ -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