Mercurial > genshi > mirror
changeset 219:ebceef564b79 trunk
Minor improvements to `WhitespaceFilter`.
author | cmlenz |
---|---|
date | Tue, 05 Sep 2006 13:35:53 +0000 |
parents | 6eff1d2b394a |
children | f4943d2babda |
files | markup/output.py |
diffstat | 1 files changed, 6 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/markup/output.py +++ b/markup/output.py @@ -450,10 +450,6 @@ """A filter that removes extraneous ignorable white space from the stream.""" - _TRAILING_SPACE = re.compile('[ \t]+(?=\n)') - _LINE_COLLAPSE = re.compile('\n{2,}') - _XML_SPACE = XML_NAMESPACE['space'] - def __init__(self, preserve=None, noescape=None, escape_cdata=False): """Initialize the filter. @@ -473,10 +469,9 @@ self.noescape = frozenset(noescape) self.escape_cdata = escape_cdata - def __call__(self, stream, ctxt=None): - trim_trailing_space = self._TRAILING_SPACE.sub - collapse_lines = self._LINE_COLLAPSE.sub - xml_space = self._XML_SPACE + def __call__(self, stream, ctxt=None, space=XML_NAMESPACE['space'], + trim_trailing_space=re.compile('[ \t]+(?=\n)').sub, + collapse_lines=re.compile('\n{2,}').sub): mjoin = Markup('').join preserve_elems = self.preserve preserve = False @@ -505,11 +500,10 @@ if kind is START: tag, attrib = data - if tag.localname in preserve_elems or \ - data[1].get(xml_space) == 'preserve': + if not preserve and (tag in preserve_elems or + attrib.get(space) == 'preserve'): preserve = True - - if tag.localname in noescape_elems: + if not noescape and tag in noescape_elems: noescape = True elif kind is END: