From 39493b5635f8e78f37157be2f6b6d5941ec958ac Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Mon, 31 Jan 2011 22:30:51 +0000 Subject: 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 --- src/select/select.c | 21 +++++++++++++++++++++ src/stylesheet.c | 3 +++ 2 files changed, 24 insertions(+) (limited to 'src') 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: -- cgit v1.2.3