[PATCH v2] patch: when importing from email, RFC2047-decode From/Subject headers

Yuya Nishihara yuya at tcha.org
Sat Mar 5 04:29:25 EST 2016


On Thu, 3 Mar 2016 21:44:26 +0100, Julien Cristau wrote:
> # HG changeset patch
> # User Julien Cristau <julien.cristau at logilab.fr>
> # Date 1457026459 -3600
> #      Thu Mar 03 18:34:19 2016 +0100
> # Node ID 981e5fd56a9973e0069173b5f6c03639d9e176aa
> # Parent  e00e57d836535aadcb13337613d2f891492d8e04
> patch: when importing from email, RFC2047-decode From/Subject headers

Looks good. Pushed to the clowncopter, thanks.

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

FWIW, email.charsets might be useful as a fallback charset.

https://www.selenic.com/mercurial/hgrc.5.html#email


More information about the Mercurial-devel mailing list