Mercurial > hg
changeset 11542:594b98846ce1 stable
mail: ensure that Python2.4 to 2.7 use the same header format
Wrapping format for long headers changed in Python2.7 (see Python issue1974).
Adopt the Python2.7 behaviour and backport it for 2.4-2.6
author | Nicolas Dumazet <nicdumz.commits@gmail.com> |
---|---|
date | Tue, 06 Jul 2010 18:24:04 +0900 |
parents | ab9fa7a85dd9 |
children | 0a2762d83c53 |
files | mercurial/mail.py tests/test-patchbomb.out |
diffstat | 2 files changed, 23 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/mail.py Mon Jul 05 19:49:54 2010 +0900 +++ b/mercurial/mail.py Tue Jul 06 18:24:04 2010 +0900 @@ -10,6 +10,26 @@ import os, smtplib, socket, quopri import email.Header, email.MIMEText, email.Utils +_oldheaderinit = email.Header.Header.__init__ +def _unifiedheaderinit(self, *args, **kw): + """ + Python2.7 introduces a backwards incompatible change + (Python issue1974, r70772) in email.Generator.Generator code: + pre-2.7 code passed "continuation_ws='\t'" to the Header + constructor, and 2.7 removed this parameter. + + Default argument is continuation_ws=' ', which means that the + behaviour is different in <2.7 and 2.7 + + We consider the 2.7 behaviour to be preferable, but need + to have an unified behaviour for versions 2.4 to 2.7 + """ + # override continuation_ws + kw['continuation_ws'] = ' ' + _oldheaderinit(self, *args, **kw) + +email.Header.Header.__dict__['__init__'] = _unifiedheaderinit + def _smtp(ui): '''build an smtp connection and return a function to send mail''' local_hostname = ui.config('smtp', 'local_hostname')
--- a/tests/test-patchbomb.out Mon Jul 05 19:49:54 2010 +0900 +++ b/tests/test-patchbomb.out Tue Jul 06 18:24:04 2010 +0900 @@ -573,7 +573,7 @@ Content-Type: multipart/mixed; boundary="=== MIME-Version: 1.0 Subject: [PATCH 3 of 3] charset=utf-8; - content-transfer-encoding: quoted-printable + content-transfer-encoding: quoted-printable X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376 Message-Id: <c655633f8c87700bb38c.63@ In-Reply-To: <patchbomb.60@ @@ -836,7 +836,7 @@ Content-Type: multipart/mixed; boundary="=== MIME-Version: 1.0 Subject: [PATCH 3 of 3] charset=utf-8; - content-transfer-encoding: quoted-printable + content-transfer-encoding: quoted-printable X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376 Message-Id: <c655633f8c87700bb38c.63@ In-Reply-To: <patchbomb.60@ @@ -1730,7 +1730,7 @@ MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Subject: [PATCH 3 of 8] charset=utf-8; - content-transfer-encoding: quoted-printable + content-transfer-encoding: quoted-printable X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376 Message-Id: <c655633f8c87700bb38c.315532863@ In-Reply-To: <patchbomb.315532860@