Mercurial > public > mercurial-scm > hg-stable
diff mercurial/mail.py @ 28341:8286f551b7ee
patch: when importing from email, RFC2047-decode From/Subject headers
Reported at https://bugs.debian.org/737498
author | Julien Cristau <julien.cristau@logilab.fr> |
---|---|
date | Thu, 03 Mar 2016 18:34:19 +0100 |
parents | 10bed65ef209 |
children | a4c5c23de1d3 |
line wrap: on
line diff
--- a/mercurial/mail.py Wed Mar 02 22:39:03 2016 +0000 +++ b/mercurial/mail.py Thu Mar 03 18:34:19 2016 +0100 @@ -332,3 +332,21 @@ if not display: s, cs = _encode(ui, s, charsets) return mimetextqp(s, 'plain', cs) + +def headdecode(s): + '''Decodes RFC-2047 header''' + uparts = [] + for part, charset in email.Header.decode_header(s): + if charset is not None: + try: + uparts.append(part.decode(charset)) + continue + except UnicodeDecodeError: + pass + try: + uparts.append(part.decode('UTF-8')) + continue + except UnicodeDecodeError: + pass + uparts.append(part.decode('ISO-8859-1')) + return encoding.tolocal(u' '.join(uparts).encode('UTF-8'))