Mercurial > genshi > mirror
changeset 1030:c5c5cbadde37 stable-0.7.x
Merge r1255 from trunk (fix slash escaping of CRLF newlines).
author | hodgestar |
---|---|
date | Wed, 19 Mar 2014 13:41:53 +0000 |
parents | 4cbbf894c800 |
children | 56fd1ca051af |
files | genshi/template/tests/text.py genshi/template/text.py |
diffstat | 2 files changed, 30 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/genshi/template/tests/text.py +++ b/genshi/template/tests/text.py @@ -171,6 +171,19 @@ * 2 """, tmpl.generate(items=range(3)).render(encoding=None)) + def test_empty_lines1_with_crlf(self): + tmpl = NewTextTemplate('Your items:\r\n' +'\r\n' +'{% for item in items %}\\\r\n' +' * ${item}\r\n' +'{% end %}') + + self.assertEqual('Your items:\r\n' +'\r\n' +' * 0\r\n' +' * 1\r\n' +' * 2\r\n', tmpl.generate(items=range(3)).render(encoding=None)) + def test_empty_lines2(self): tmpl = NewTextTemplate("""Your items: @@ -188,6 +201,22 @@ """, tmpl.generate(items=range(3)).render(encoding=None)) + def test_empty_lines2_with_crlf(self): + tmpl = NewTextTemplate('Your items:\r\n' +'\r\n' +'{% for item in items %}\\\r\n' +' * ${item}\r\n' +'\r\n' +'{% end %}') + self.assertEqual('Your items:\r\n' +'\r\n' +' * 0\r\n' +'\r\n' +' * 1\r\n' +'\r\n' +' * 2\r\n' +'\r\n', tmpl.generate(items=range(3)).render(encoding=None)) + def test_exec_with_trailing_space(self): """ Verify that a code block with trailing space does not cause a syntax
--- a/genshi/template/text.py +++ b/genshi/template/text.py @@ -128,7 +128,7 @@ serializer = 'text' _DIRECTIVE_RE = r'((?<!\\)%s\s*(\w+)\s*(.*?)\s*%s|(?<!\\)%s.*?%s)' - _ESCAPE_RE = r'\\\n|\\(\\)|\\(%s)|\\(%s)' + _ESCAPE_RE = r'\\\n|\\\r\n|\\(\\)|\\(%s)|\\(%s)' def __init__(self, source, filepath=None, filename=None, loader=None, encoding=None, lookup='strict', allow_exec=False,