diff options
author | Johannes Hofmann <Johannes.Hofmann@gmx.de> | 2008-11-30 15:37:15 +0100 |
---|---|---|
committer | Johannes Hofmann <Johannes.Hofmann@gmx.de> | 2008-11-30 15:37:15 +0100 |
commit | d8696fd1573d5c0ddeed513a829438f973c6347d (patch) | |
tree | 683b7ad3f9880a136311b57f2d687ae202bceb90 /src/cssparser.cc | |
parent | a3b7a1089c51316d86cb1f765297b1ecc6d5b352 (diff) |
make CssSelector a list of CssSimpleSelector objects
Diffstat (limited to 'src/cssparser.cc')
-rw-r--r-- | src/cssparser.cc | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/cssparser.cc b/src/cssparser.cc index af530c95..a5cc7da3 100644 --- a/src/cssparser.cc +++ b/src/cssparser.cc @@ -945,20 +945,19 @@ static void Css_parse_ruleset(CssParser * parser) if (selector) { selector->ref(); - selector->id = selector->klass = selector->pseudo = NULL; do { pp = NULL; if (parser->ttype == CSS_TK_CHAR) { switch (parser->tval[0]) { case '#': - pp = &selector->id; + pp = &selector->top ()->id; break; case '.': - pp = &selector->klass; + pp = &selector->top ()->klass; break; case ':': - pp = &selector->pseudo; + pp = &selector->top ()->pseudo; break; } } @@ -977,8 +976,8 @@ static void Css_parse_ruleset(CssParser * parser) p = strchr(parser->tval, '.'); if (*pp == NULL) *pp = dStrndup(parser->tval, p - parser->tval); - if (selector->klass == NULL) - selector->klass = dStrdup(p + 1); + if (selector->top ()->klass == NULL) + selector->top ()->klass = dStrdup(p + 1); Css_next_token(parser); } } @@ -993,8 +992,8 @@ static void Css_parse_ruleset(CssParser * parser) if (selector) DEBUG_MSG(DEBUG_PARSE_LEVEL, "end of selector (%s, %s, %s, %d)\n", - selector->id, selector->klass, selector->pseudo, - selector->element); + selector->top ()->id, selector->top ()->klass, + selector->top ()->pseudo, selector->top ()->element); else DEBUG_MSG(DEBUG_PARSE_LEVEL, "not a %s\n", "selector"); |