Fixed #10675 -- Added unicode paragraph and line-sep handling to escapejs.

There were a couple of line breaking Unicode characters (\u2028 and
\u2029) that cause Javascript errors, at least in Firefox, if not
escaped. So now we do so. Based on a patch from rleland.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@10543 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Malcolm Tredinnick 2009-04-12 04:55:41 +00:00
parent 499a8ac331
commit 8931d8d688
2 changed files with 6 additions and 1 deletions

View File

@ -76,7 +76,9 @@ _base_js_escapes = (
('&', r'\x26'), ('&', r'\x26'),
('=', r'\x3D'), ('=', r'\x3D'),
('-', r'\x2D'), ('-', r'\x2D'),
(';', r'\x3B') (';', r'\x3B'),
(u'\u2028', r'\u2028'),
(u'\u2029', r'\u2029')
) )
# Escape every ASCII character with a value less than 32. # Escape every ASCII character with a value less than 32.

View File

@ -83,6 +83,9 @@ u'and lots of whitespace: \\x0D\\x0A\\x09\\x0B\\x0C\\x08'
>>> escapejs(ur'<script>and this</script>') >>> escapejs(ur'<script>and this</script>')
u'\\x3Cscript\\x3Eand this\\x3C/script\\x3E' u'\\x3Cscript\\x3Eand this\\x3C/script\\x3E'
>>> escapejs(u'paragraph separator:\u2029and line separator:\u2028')
u'paragraph separator:\\u2029and line separator:\\u2028'
>>> fix_ampersands(u'Jack & Jill & Jeroboam') >>> fix_ampersands(u'Jack & Jill & Jeroboam')
u'Jack &amp; Jill &amp; Jeroboam' u'Jack &amp; Jill &amp; Jeroboam'