summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2007-10-21 18:15:01 +0000
committerMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2007-10-21 18:15:01 +0000
commitfcbde3cbe5bcfcb88825f28629709b60035d9c9f (patch)
tree90e59ee846873fde5fbc2d467d498bc4eda8a26f
parenta1496b054a2b5182387053952980415543276f8f (diff)
Fixed #5712 -- Added more robustness to source code display in the debug view. Our behaviour is a bit more PEP 263 compliant now, too. Thanks, Thomas Güttler.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@6585 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/views/debug.py9
1 files changed, 4 insertions, 5 deletions
diff --git a/django/views/debug.py b/django/views/debug.py
index cf0b6b5a0b..717de1eb34 100644
--- a/django/views/debug.py
+++ b/django/views/debug.py
@@ -201,16 +201,15 @@ def _get_lines_from_file(filename, lineno, context_lines, loader=None, module_na
if source is None:
return None, [], None, []
- encoding=None
+ encoding = 'ascii'
for line in source[:2]:
- # File coding may be specified (and may not be UTF-8). Match
- # pattern from PEP-263 (http://www.python.org/dev/peps/pep-0263/)
+ # File coding may be specified. Match pattern from PEP-263
+ # (http://www.python.org/dev/peps/pep-0263/)
match = re.search(r'coding[:=]\s*([-\w.]+)', line)
if match:
encoding = match.group(1)
break
- if encoding:
- source = [unicode(sline, encoding) for sline in source]
+ source = [unicode(sline, encoding, 'replace') for sline in source]
lower_bound = max(0, lineno - context_lines)
upper_bound = lineno + context_lines