diff options
-rw-r--r-- | Modules/binascii.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/Modules/binascii.c b/Modules/binascii.c index 5e0f86dc13..91309f673b 100644 --- a/Modules/binascii.c +++ b/Modules/binascii.c @@ -1160,13 +1160,14 @@ binascii_b2a_qp (PyObject *self, PyObject *args, PyObject *kwargs) if ((data[in] > 126) || (data[in] == '=') || (header && data[in] == '_') || - ((data[in] == '.') && (linelen == 1)) || + ((data[in] == '.') && (linelen == 0) && + (data[in+1] == '\n' || data[in+1] == '\r' || data[in+1] == 0)) || (!istext && ((data[in] == '\r') || (data[in] == '\n'))) || ((data[in] == '\t' || data[in] == ' ') && (in + 1 == datalen)) || ((data[in] < 33) && (data[in] != '\r') && (data[in] != '\n') && - (!quotetabs || - (quotetabs && ((data[in] != '\t') && (data[in] != ' ')))))) + (quotetabs || + (!quotetabs && ((data[in] != '\t') && (data[in] != ' ')))))) { if ((linelen + 3) >= MAXLINESIZE) { linelen = 0; @@ -1231,13 +1232,14 @@ binascii_b2a_qp (PyObject *self, PyObject *args, PyObject *kwargs) if ((data[in] > 126) || (data[in] == '=') || (header && data[in] == '_') || - ((data[in] == '.') && (linelen == 1)) || + ((data[in] == '.') && (linelen == 0) && + (data[in+1] == '\n' || data[in+1] == '\r' || data[in+1] == 0)) || (!istext && ((data[in] == '\r') || (data[in] == '\n'))) || ((data[in] == '\t' || data[in] == ' ') && (in + 1 == datalen)) || ((data[in] < 33) && (data[in] != '\r') && (data[in] != '\n') && - (!quotetabs || - (quotetabs && ((data[in] != '\t') && (data[in] != ' ')))))) + (quotetabs || + (!quotetabs && ((data[in] != '\t') && (data[in] != ' ')))))) { if ((linelen + 3 )>= MAXLINESIZE) { odata[out++] = '='; |