[librsvg] Support .class.#id selector.



commit a2ee8b0a87b946fef724986ecf4c500a7d414556
Author: Hiroyuki Ikezoe <poincare ikezoe net>
Date:   Wed Apr 14 16:07:28 2010 +0900

    Support .class.#id selector.
    
    Fix for bug #615715.

 rsvg-styles.c |   19 +++++++++++++------
 1 files changed, 13 insertions(+), 6 deletions(-)
---
diff --git a/rsvg-styles.c b/rsvg-styles.c
index 61502f4..7125216 100644
--- a/rsvg-styles.c
+++ b/rsvg-styles.c
@@ -1316,16 +1316,23 @@ rsvg_parse_style_attrs (RsvgHandle * ctx,
             while (j < i && !g_ascii_isspace (klazz[j]))
                 g_string_append_c (klazz_list, klazz[j++]);
 
-            /* tag.class */
-            if (tag != NULL && klazz_list->len != 1) {
-                target = g_strdup_printf ("%s%s", tag, klazz_list->str);
+            /* tag.class#id */
+            if (tag != NULL && klazz_list->len != 1 && id != NULL) {
+                target = g_strdup_printf ("%s%s#%s", tag, klazz_list->str, id);
                 found = found || rsvg_lookup_apply_css_style (ctx, target, state);
                 g_free (target);
             }
 
-            /* tag.class#id */
-            if (tag != NULL && klazz_list->len != 1 && id != NULL) {
-                target = g_strdup_printf ("%s%s#%s", tag, klazz_list->str, id);
+            /* class#id */
+            if (klazz_list->len != 1 && id != NULL) {
+                target = g_strdup_printf ("%s#%s", klazz_list->str, id);
+                found = found || rsvg_lookup_apply_css_style (ctx, target, state);
+                g_free (target);
+            }
+
+            /* tag.class */
+            if (tag != NULL && klazz_list->len != 1) {
+                target = g_strdup_printf ("%s%s", tag, klazz_list->str);
                 found = found || rsvg_lookup_apply_css_style (ctx, target, state);
                 g_free (target);
             }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]