mirror of
https://github.com/rkd77/elinks.git
synced 2024-12-04 14:46:47 -05:00
CSS: Fix parent selectors broken in the previous commit.
This commit is contained in:
parent
591ff81890
commit
275402f43c
@ -141,7 +141,7 @@ examine_element(struct html_context *html_context, struct css_selector *base,
|
|||||||
dbginfo(sel, type, base); \
|
dbginfo(sel, type, base); \
|
||||||
merge_css_selectors(base, sel); \
|
merge_css_selectors(base, sel); \
|
||||||
/* Ancestor matches? */ \
|
/* Ancestor matches? */ \
|
||||||
if (sel->leaves.may_contain_rel_ancestor \
|
if (sel->leaves.may_contain_rel_ancestor_or_parent \
|
||||||
&& (struct list_head *) element->next \
|
&& (struct list_head *) element->next \
|
||||||
!= &html_context->stack) { \
|
!= &html_context->stack) { \
|
||||||
struct html_element *ancestor; \
|
struct html_element *ancestor; \
|
||||||
|
@ -84,8 +84,8 @@ void
|
|||||||
set_css_selector_relation(struct css_selector *selector,
|
set_css_selector_relation(struct css_selector *selector,
|
||||||
enum css_selector_relation relation)
|
enum css_selector_relation relation)
|
||||||
{
|
{
|
||||||
/* Changing the relation after the selector is in a set might
|
/* Changing the relation after the selector is in a set might require
|
||||||
* require setting css_relation_set.may_contain_rel_ancestor,
|
* setting css_relation_set.may_contain_rel_ancestor_or_parent,
|
||||||
* but we don't have a pointer to the set here. */
|
* but we don't have a pointer to the set here. */
|
||||||
assert(!css_selector_is_in_set(selector));
|
assert(!css_selector_is_in_set(selector));
|
||||||
selector->relation = relation;
|
selector->relation = relation;
|
||||||
@ -194,7 +194,7 @@ done_css_selector(struct css_selector *selector)
|
|||||||
void
|
void
|
||||||
init_css_selector_set(struct css_selector_set *set)
|
init_css_selector_set(struct css_selector_set *set)
|
||||||
{
|
{
|
||||||
set->may_contain_rel_ancestor = 0;
|
set->may_contain_rel_ancestor_or_parent = 0;
|
||||||
init_list(set->list);
|
init_list(set->list);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -213,8 +213,9 @@ add_css_selector_to_set(struct css_selector *selector,
|
|||||||
assert(!css_selector_is_in_set(selector));
|
assert(!css_selector_is_in_set(selector));
|
||||||
|
|
||||||
add_to_list(set->list, selector);
|
add_to_list(set->list, selector);
|
||||||
if (selector->relation == CSR_ANCESTOR)
|
if (selector->relation == CSR_ANCESTOR
|
||||||
set->may_contain_rel_ancestor = 1;
|
|| selector->relation == CSR_PARENT)
|
||||||
|
set->may_contain_rel_ancestor_or_parent = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -41,7 +41,7 @@
|
|||||||
* because all rules for the same selector have already been merged
|
* because all rules for the same selector have already been merged
|
||||||
* into one struct css_selector. */
|
* into one struct css_selector. */
|
||||||
struct css_selector_set {
|
struct css_selector_set {
|
||||||
unsigned char may_contain_rel_ancestor;
|
unsigned char may_contain_rel_ancestor_or_parent;
|
||||||
|
|
||||||
/* Keep this away from the beginning of the structure,
|
/* Keep this away from the beginning of the structure,
|
||||||
* so that nobody can cast the struct css_selector_set *
|
* so that nobody can cast the struct css_selector_set *
|
||||||
|
Loading…
Reference in New Issue
Block a user