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'))