]> gitweb.michael.orlitzky.com - libsvgtiny.git/blobdiff - src/svgtiny.c
src/svgtiny.c: use case-sensitive comparisons for SVG element names
[libsvgtiny.git] / src / svgtiny.c
index 91ce4396799e7f96714fdb7e4114a6e23f2fa600..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);
@@ -2340,30 +2340,6 @@ css_select_results *svgtiny_parse_styles(dom_element *node,
                dom_string_unref(attr);
        }
 
-       struct dom_element *parent;
-       dom_element_parent_node(node, &parent);
-       if (parent == NULL) {
-               /* This is the root <svg> node, skip it.
-                *
-                * While initialising its selection state, libcss sets its
-                * node_data->bloom pointer using css__get_parent_bloom().
-                * But if there is no parent, that function returns,
-                *
-                *   static css_bloom empty_bloom[CSS_BLOOM_SIZE];
-                *
-                * A problem later arises because when libcss FINALISES its
-                * selection state, it frees node_data->bloom! That obviously
-                * won't work then node has no parent, i.e. if it's the root
-                * <svg> element.
-                */
-               css_stylesheet_destroy(inline_sheet);
-               return NULL;
-       }
-       else {
-               /* We only needed to know if it was NULL */
-               dom_node_unref(parent);
-       }
-
        code = svgtiny_select_style(state, node, inline_sheet, &styles);
        css_stylesheet_destroy(inline_sheet);
        if (code != CSS_OK) {