Force use of non-unicode constants in compiled templates. Fixes a problem with regular expression character classes and probably other things.

This commit is contained in:
Charles Haley 2013-01-02 11:21:26 +01:00
parent 06ae93270f
commit 3c04f699c3

View File

@ -294,11 +294,11 @@ class _CompileParser(_Parser):
self.parent_book, self.parent_locals, *args)
elif self.token_is_constant():
# String or number
v = self.token()
v = unicode(self.token())
if self.compile_text:
tv = v.replace("\\", "\\\\")
tv = tv.replace("'", "\\'")
self.compile_text += "\targs[%d].append('%s')\n"%(level, tv)
self.compile_text += "\targs[%d].append(unicode('%s'))\n"%(level, tv)
return v
else:
self.error(_('expression is not function or constant'))