summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Bursa <james@netsurf-browser.org>2004-03-29 21:27:52 +0000
committerJames Bursa <james@netsurf-browser.org>2004-03-29 21:27:52 +0000
commitead74d2f010a232f15d074ef47a0622b5bd9bf66 (patch)
tree4f8971d94d3c6190847eb0dd8c6652c68c5c2d60
parent697be91e3bad5f8c3d4384cdfe43492e7fe24e0a (diff)
downloadnetsurf-ead74d2f010a232f15d074ef47a0622b5bd9bf66.tar.gz
netsurf-ead74d2f010a232f15d074ef47a0622b5bd9bf66.tar.bz2
[project @ 2004-03-29 21:27:52 by bursa]
Implement CSS universal selector. svn path=/import/netsurf/; revision=690
-rw-r--r--css/parser.y4
-rw-r--r--css/ruleset.c4
-rw-r--r--css/scanner.l1
3 files changed, 5 insertions, 4 deletions
diff --git a/css/parser.y b/css/parser.y
index 29767b546..b373ad585 100644
--- a/css/parser.y
+++ b/css/parser.y
@@ -92,6 +92,8 @@ simple_selector(A) ::= detail_list(C).
element_name(A) ::= IDENT(B).
{ A = B; }
+element_name(A) ::= ASTERISK.
+ { A = 0; }
detail_list(A) ::= detail(B).
{ A = B; }
@@ -209,6 +211,8 @@ any(A) ::= LPAREN any_list(B) RPAREN.
{ A = css_new_node(CSS_NODE_PAREN, 0, B, 0); }
any(A) ::= LBRAC any_list(B) RBRAC.
{ A = css_new_node(CSS_NODE_BRAC, 0, B, 0); }
+any(A) ::= ASTERISK(B).
+ { A = css_new_node(CSS_NODE_DELIM, B, 0, 0); }
/* lemon directives */
diff --git a/css/ruleset.c b/css/ruleset.c
index f38b4572d..7ae15bd02 100644
--- a/css/ruleset.c
+++ b/css/ruleset.c
@@ -228,10 +228,6 @@ void css_add_ruleset(struct content *c,
}
fprintf(stderr, "\n");*/
- /* skip empty selectors */
- if (sel->left == 0 && sel->data == 0)
- continue;
-
/* check if this selector is already present */
found = false;
prev = 0;
diff --git a/css/scanner.l b/css/scanner.l
index 168ca012a..1f8cc1d92 100644
--- a/css/scanner.l
+++ b/css/scanner.l
@@ -72,6 +72,7 @@ U\+[0-9A-F?]{1,6}(-[0-9A-F]{1,6})? {
"+" { return PLUS; }
> { return GT; }
"." { return DOT; }
+"*" { return ASTERISK; }
. { return DELIM; }
%%