# HG changeset patch # User athomas # Date 1185164540 0 # Node ID d2e7fc3673842d1cef26ffdd0cf3d801056fd45d # Parent 3014f14fc83db73b1f0a52c3630d0796f6efa01e Ensure that content gets added after the end of a stream. diff --git a/genshi/filters/transform.py b/genshi/filters/transform.py --- a/genshi/filters/transform.py +++ b/genshi/filters/transform.py @@ -146,9 +146,9 @@ :param path: an XPath expression (as string) or a `Path` instance """ - self.transforms = [] - if path: - self.transforms.append(SelectTransformation(path)) + if path is None: + path = '.' + self.transforms = [SelectTransformation(path)] def __call__(self, stream): """Apply the transform filter to the marked stream. @@ -732,7 +732,10 @@ yield None, prefix yield mark, event while True: - mark, event = stream.next() + try: + mark, event = stream.next() + except StopIteration: + yield None, element[-1] if not mark: break yield mark, event @@ -912,9 +915,15 @@ :param stream: The marked event stream to filter """ for mark, event in stream: - if mark in (ENTER, OUTSIDE): + if mark is not None: for subevent in self._inject(): yield subevent + yield mark, event + while True: + mark, event = stream.next() + if not mark: + break + yield mark, event yield mark, event @@ -930,7 +939,10 @@ yield mark, event if mark: while True: - mark, event = stream.next() + try: + mark, event = stream.next() + except StopIteration: + break if not mark: break yield mark, event