summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWalter Dörwald <walter@livinglogic.de>2006-11-23 05:06:31 (GMT)
committerWalter Dörwald <walter@livinglogic.de>2006-11-23 05:06:31 (GMT)
commit9ff1d394027c1ae08d15df149bb1ee5a62f566de (patch)
tree6d96978cdb6e7bda8064fc67faf14d1489f882c9
parent2396f4c3b1b54a7749d4fa7a6cabac389bff6a21 (diff)
downloadcpython-9ff1d394027c1ae08d15df149bb1ee5a62f566de.zip
cpython-9ff1d394027c1ae08d15df149bb1ee5a62f566de.tar.gz
cpython-9ff1d394027c1ae08d15df149bb1ee5a62f566de.tar.bz2
Backport checkin:
Change decode() so that it works with a buffer (i.e. unicode(..., 'utf-8-sig')) SF bug #1601501.
-rw-r--r--Lib/encodings/utf_8_sig.py2
-rw-r--r--Lib/test/test_codecs.py4
2 files changed, 5 insertions, 1 deletions
diff --git a/Lib/encodings/utf_8_sig.py b/Lib/encodings/utf_8_sig.py
index f05f6b8..d751da6 100644
--- a/Lib/encodings/utf_8_sig.py
+++ b/Lib/encodings/utf_8_sig.py
@@ -16,7 +16,7 @@ def encode(input, errors='strict'):
def decode(input, errors='strict'):
prefix = 0
- if input.startswith(codecs.BOM_UTF8):
+ if input[:3] == codecs.BOM_UTF8:
input = input[3:]
prefix = 3
(output, consumed) = codecs.utf_8_decode(input, errors, True)
diff --git a/Lib/test/test_codecs.py b/Lib/test/test_codecs.py
index 62cd163..185670b 100644
--- a/Lib/test/test_codecs.py
+++ b/Lib/test/test_codecs.py
@@ -426,6 +426,10 @@ class UTF8SigTest(ReadTest):
]
)
+ def test_bug1601501(self):
+ # SF bug #1601501: check that the codec works with a buffer
+ unicode("\xef\xbb\xbf", "utf-8-sig")
+
class EscapeDecodeTest(unittest.TestCase):
def test_empty(self):
self.assertEquals(codecs.escape_decode(""), ("", 0))