summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2011-01-31 22:30:51 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2011-01-31 22:30:51 +0000
commit39493b5635f8e78f37157be2f6b6d5941ec958ac (patch)
tree2845e292aa6d9a65c55d3232705a2bfece3477a9
parent89c0440321f6f2a91dee1a2047f6bffc3eec382c (diff)
downloadlibcss-39493b5635f8e78f37157be2f6b6d5941ec958ac.tar.gz
libcss-39493b5635f8e78f37157be2f6b6d5941ec958ac.tar.bz2
Fix specificity calculation for prefix, suffix, and substring attribute selectors.
Fix dumping of these selectors when debugging selector chains svn path=/trunk/libcss/; revision=11569
-rw-r--r--src/select/select.c21
-rw-r--r--src/stylesheet.c3
2 files changed, 24 insertions, 0 deletions
diff --git a/src/select/select.c b/src/select/select.c
index 9f46075..eb47309 100644
--- a/src/select/select.c
+++ b/src/select/select.c
@@ -1769,6 +1769,27 @@ void dump_chain(const css_selector *selector)
(int) lwc_string_length(detail->value),
lwc_string_data(detail->value));
break;
+ case CSS_SELECTOR_ATTRIBUTE_PREFIX:
+ fprintf(stderr, "[%.*s^=\"%.*s\"]",
+ (int) lwc_string_length(detail->name),
+ lwc_string_data(detail->name),
+ (int) lwc_string_length(detail->value),
+ lwc_string_data(detail->value));
+ break;
+ case CSS_SELECTOR_ATTRIBUTE_SUFFIX:
+ fprintf(stderr, "[%.*s$=\"%.*s\"]",
+ (int) lwc_string_length(detail->name),
+ lwc_string_data(detail->name),
+ (int) lwc_string_length(detail->value),
+ lwc_string_data(detail->value));
+ break;
+ case CSS_SELECTOR_ATTRIBUTE_SUBSTRING:
+ fprintf(stderr, "[%.*s*=\"%.*s\"]",
+ (int) lwc_string_length(detail->name),
+ lwc_string_data(detail->name),
+ (int) lwc_string_length(detail->value),
+ lwc_string_data(detail->value));
+ break;
}
if (detail->next)
diff --git a/src/stylesheet.c b/src/stylesheet.c
index 42b5820..d8c3113 100644
--- a/src/stylesheet.c
+++ b/src/stylesheet.c
@@ -971,6 +971,9 @@ css_error css__stylesheet_selector_append_specific(css_stylesheet *sheet,
case CSS_SELECTOR_ATTRIBUTE_EQUAL:
case CSS_SELECTOR_ATTRIBUTE_DASHMATCH:
case CSS_SELECTOR_ATTRIBUTE_INCLUDES:
+ case CSS_SELECTOR_ATTRIBUTE_PREFIX:
+ case CSS_SELECTOR_ATTRIBUTE_SUFFIX:
+ case CSS_SELECTOR_ATTRIBUTE_SUBSTRING:
(*parent)->specificity += CSS_SPECIFICITY_C;
break;
case CSS_SELECTOR_ID: