# HG changeset patch # User Gábor Stefanik <gabor.stefa...@nng.com> # Date 1475667922 -7200 # Wed Oct 05 13:45:22 2016 +0200 # Node ID 85a6a72d4868c20c066ae4add380b70d13c1c2df # Parent 1779dde4c9ef97cb242f8d501655f236f66e5439 mail: Take --encoding and HGENCODING into account
Fall back to our encoding strategy for sending MIME text that's neither ASCII nor UTF-8. diff -r 1779dde4c9ef -r 85a6a72d4868 mercurial/mail.py --- a/mercurial/mail.py Sun Oct 02 22:34:40 2016 -0700 +++ b/mercurial/mail.py Wed Oct 05 13:45:22 2016 +0200 @@ -205,9 +205,17 @@ def mimetextpatch(s, subtype='plain', display=False): '''Return MIME message suitable for a patch. - Charset will be detected as utf-8 or (possibly fake) us-ascii. + Charset will be detected as us-ascii or utf-8, falling back to hg's + current encoding if neither of those works. Transfer encodings will be used if necessary.''' + def codec2iana(encoding): + encoding = email.charset.Charset(encoding).input_charset + + if encoding.startswith("iso") and not encoding.startswith("iso-"): + return "iso-" + encoding[3:] + return encoding + cs = 'us-ascii' if not display: try: @@ -217,10 +225,10 @@ s.decode('utf-8') cs = 'utf-8' except UnicodeDecodeError: - # We'll go with us-ascii as a fallback. - pass + # We'll go with HGENCODING as a fallback. + cs = encoding.encoding - return mimetextqp(s, subtype, cs) + return mimetextqp(s, subtype, codec2iana(cs)) def mimetextqp(body, subtype, charset): '''Return MIME message. _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel