Mercurial > genshi > genshi-test
diff genshi/template/eval.py @ 716:fe05ebf91775
fix ticket [209] - make sure py:with is valid, and add a test to make sure empty py:for is invalid
author | aflett |
---|---|
date | Tue, 08 Apr 2008 22:38:43 +0000 |
parents | 09715f868a73 |
children | 09a90feb9269 |
line wrap: on
line diff
--- a/genshi/template/eval.py +++ b/genshi/template/eval.py @@ -387,11 +387,12 @@ source = source.strip() if mode == 'exec': lines = [line.expandtabs() for line in source.splitlines()] - first = lines[0] - rest = dedent('\n'.join(lines[1:])).rstrip() - if first.rstrip().endswith(':') and not rest[0].isspace(): - rest = '\n'.join([' %s' % line for line in rest.splitlines()]) - source = '\n'.join([first, rest]) + if lines: + first = lines[0] + rest = dedent('\n'.join(lines[1:])).rstrip() + if first.rstrip().endswith(':') and not rest[0].isspace(): + rest = '\n'.join([' %s' % line for line in rest.splitlines()]) + source = '\n'.join([first, rest]) if isinstance(source, unicode): source = '\xef\xbb\xbf' + source.encode('utf-8') return parse(source, mode) @@ -417,7 +418,10 @@ else: gen = ModuleCodeGenerator(tree) lines = source.splitlines() - extract = lines[0] + if not lines: + extract = '' + else: + extract = lines[0] if len(lines) > 1: extract += ' ...' name = '<Suite %r>' % (extract)