diff options
| author | scoder <none@none> | 2008-06-20 09:52:39 +0200 |
|---|---|---|
| committer | scoder <none@none> | 2008-06-20 09:52:39 +0200 |
| commit | 19c8cc0f31519004866b5fac35a85c7157c05a57 (patch) | |
| tree | 14e6189fffcf7ebd1ed5bb305a0feba56f22aa91 /src/lxml/cssselect.py | |
| parent | 3bc3fbd318dc2f25389df94b5a84326af1c1497e (diff) | |
| download | python-lxml-19c8cc0f31519004866b5fac35a85c7157c05a57.tar.gz | |
[svn r3835] r4520@delle: sbehnel | 2008-06-20 09:48:39 +0200
CSS selector parser accidentally merged non-adjacent classes
--HG--
branch : trunk
Diffstat (limited to 'src/lxml/cssselect.py')
| -rw-r--r-- | src/lxml/cssselect.py | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/lxml/cssselect.py b/src/lxml/cssselect.py index 25d2d44b..9e57843a 100644 --- a/src/lxml/cssselect.py +++ b/src/lxml/cssselect.py @@ -738,6 +738,8 @@ def parse_simple_selector(stream): result = Pseudo(result, type, ident) continue else: + if peek == ' ': + stream.next() break # FIXME: not sure what "negation" is return result @@ -823,7 +825,10 @@ def tokenize(s): while 1: match = _whitespace_re.match(s, pos=pos) if match: + preceding_whitespace_pos = pos pos = match.end() + else: + preceding_whitespace_pos = 0 if pos >= len(s): return match = _count_re.match(s, pos=pos) @@ -839,6 +844,8 @@ def tokenize(s): pos += 2 continue if c in '>+~,.*=[]()|:#': + if c in '.#' and preceding_whitespace_pos > 0: + yield Token(' ', preceding_whitespace_pos) yield Token(c, pos) pos += 1 continue |
