summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2006-11-16 17:08:45 (GMT)
committerGeorg Brandl <georg@python.org>2006-11-16 17:08:45 (GMT)
commit25aabf4cbb7ff8d1a38f8ef4602a409c00474a30 (patch)
tree507c752da3d870c6e4effd4cbae4f9df9ec287da
parent540821183b0a6105d5cf262db837332b14e0e259 (diff)
downloadcpython-25aabf4cbb7ff8d1a38f8ef4602a409c00474a30.zip
cpython-25aabf4cbb7ff8d1a38f8ef4602a409c00474a30.tar.gz
cpython-25aabf4cbb7ff8d1a38f8ef4602a409c00474a30.tar.bz2
Bug #1588217: don't parse "= " as a soft line break in binascii's
a2b_qp() function, instead leave it in the string as quopri.decode() does.
-rwxr-xr-xLib/test/test_binascii.py2
-rw-r--r--Misc/NEWS4
-rw-r--r--Modules/binascii.c3
3 files changed, 6 insertions, 3 deletions
diff --git a/Lib/test/test_binascii.py b/Lib/test/test_binascii.py
index 8df4504..8272ad9 100755
--- a/Lib/test/test_binascii.py
+++ b/Lib/test/test_binascii.py
@@ -134,7 +134,7 @@ class BinASCIITest(unittest.TestCase):
pass
else:
self.fail("binascii.a2b_qp(**{1:1}) didn't raise TypeError")
- self.assertEqual(binascii.a2b_qp("= "), "")
+ self.assertEqual(binascii.a2b_qp("= "), "= ")
self.assertEqual(binascii.a2b_qp("=="), "=")
self.assertEqual(binascii.a2b_qp("=AX"), "=AX")
self.assertRaises(TypeError, binascii.b2a_qp, foo="bar")
diff --git a/Misc/NEWS b/Misc/NEWS
index 32cdb1f..8c93519 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -219,6 +219,10 @@ Library
Extension Modules
-----------------
+- Bug #1588217: don't parse "= " as a soft line break in binascii's
+ a2b_qp() function, instead leave it in the string as quopri.decode()
+ does.
+
- Bug #1567666: Emulate GetFileAttributesExA for Win95.
- Patch #1576166: Support os.utime for directories on Windows NT+.
diff --git a/Modules/binascii.c b/Modules/binascii.c
index 3b2c8b2..4dee451 100644
--- a/Modules/binascii.c
+++ b/Modules/binascii.c
@@ -1057,8 +1057,7 @@ binascii_a2b_qp(PyObject *self, PyObject *args, PyObject *kwargs)
in++;
if (in >= datalen) break;
/* Soft line breaks */
- if ((data[in] == '\n') || (data[in] == '\r') ||
- (data[in] == ' ') || (data[in] == '\t')) {
+ if ((data[in] == '\n') || (data[in] == '\r')) {
if (data[in] != '\n') {
while (in < datalen && data[in] != '\n') in++;
}