summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXie Shi <xieshi@douban.com>2013-03-21 12:08:49 +0800
committerXie Shi <xieshi@douban.com>2013-03-21 12:08:49 +0800
commitf4a2915a7adacfad36cb2aedfcfab3cc0fde0918 (patch)
treea11d10fef253f903f720c8f118d422505d5e58cd
parent779e1f330ee112500f862d5fdf056654abd48d37 (diff)
downloadmako-f4a2915a7adacfad36cb2aedfcfab3cc0fde0918.tar.gz
legacy_html_escape use string replace, which is faster than regex
-rw-r--r--mako/filters.py13
1 files changed, 8 insertions, 5 deletions
diff --git a/mako/filters.py b/mako/filters.py
index 428c926..b1ce924 100644
--- a/mako/filters.py
+++ b/mako/filters.py
@@ -24,12 +24,15 @@ xml_escapes = {
# XXX: &quot; is valid in HTML and XML
# &apos; is not valid HTML, but is valid XML
-LEGACY_HTML_ESCAPE_RE = re.compile(r'([&<"\'>])')
-
-def legacy_html_escape(string):
+def legacy_html_escape(s):
"""legacy HTML escape for non-unicode mode."""
-
- return LEGACY_HTML_ESCAPE_RE.sub(lambda m: xml_escapes[m.group()], string)
+ s = s.replace("&", "&amp;")
+ s = s.replace(">", "&gt;")
+ s = s.replace("<", "&lt;")
+ s = s.replace('"', "&#34;")
+ s = s.replace("'", "&#39;")
+ return s
+
try:
import markupsafe