[pypy-svn] pypy fast-forward: Fix a "normalization" that transformed iso-8859-15 (latin9 = latin1+EURO SIGN) into iso-8859-1 (latin1)!
amauryfa
commits-noreply at bitbucket.org
Wed Jan 12 01:23:26 CET 2011
Author: Amaury Forgeot d'Arc <amauryfa at gmail.com>
Branch: fast-forward
Changeset: r40613:2f57c8e31d80
Date: 2011-01-12 01:23 +0100
http://bitbucket.org/pypy/pypy/changeset/2f57c8e31d80/
Log: Fix a "normalization" that transformed iso-8859-15 (latin9 =
latin1+EURO SIGN) into iso-8859-1 (latin1)! Fixes last failure in
test_tarfile
diff --git a/pypy/interpreter/pyparser/test/test_pyparse.py b/pypy/interpreter/pyparser/test/test_pyparse.py
--- a/pypy/interpreter/pyparser/test/test_pyparse.py
+++ b/pypy/interpreter/pyparser/test/test_pyparse.py
@@ -42,6 +42,9 @@
input = (u"# coding: utf-7\nstuff = %s" % (sentence,)).encode("utf-7")
tree = self.parse(input, info=info)
assert info.encoding == "utf-7"
+ input = "# coding: iso-8859-15\nx"
+ self.parse(input, info=info)
+ assert info.encoding == "iso-8859-15"
input = "\xEF\xBB\xBF# coding: utf-8\nx"
self.parse(input, info=info)
assert info.encoding == "utf-8"
diff --git a/pypy/interpreter/pyparser/pyparse.py b/pypy/interpreter/pyparser/pyparse.py
--- a/pypy/interpreter/pyparser/pyparse.py
+++ b/pypy/interpreter/pyparser/pyparse.py
@@ -25,10 +25,11 @@
return None
# lower() + '_' / '-' conversion
encoding = encoding.replace('_', '-').lower()
- if encoding.startswith('utf-8'):
+ if encoding == 'utf-8' or encoding.startswith('utf-8-'):
return 'utf-8'
for variant in ['latin-1', 'iso-latin-1', 'iso-8859-1']:
- if encoding.startswith(variant):
+ if (encoding == variant or
+ encoding.startswith(variant + '-')):
return 'iso-8859-1'
return encoding
More information about the Pypy-commit
mailing list