# HG changeset patch # User Augie Fackler # Date 1531764867 14400 # Node ID b95538a216136c4cd4eca24b6af9b51af044ad35 # Parent 0b5f534df82a8dd97ea34f317e0cd0e9127b50f7 patchbomb: work around email module really wanting to write unicode data Differential Revision: https://phab.mercurial-scm.org/D3951 diff -r 0b5f534df82a -r b95538a21613 hgext/patchbomb.py --- a/hgext/patchbomb.py Thu Aug 09 12:25:06 2018 -0700 +++ b/hgext/patchbomb.py Mon Jul 16 14:14:27 2018 -0400 @@ -139,6 +139,11 @@ default=None, ) +if pycompat.ispy3: + _bytesgenerator = emailgen.BytesGenerator +else: + _bytesgenerator = lambda f: f + # Note for extension authors: ONLY specify testedwith = 'ships-with-hg-core' for # extensions which SHIP WITH MERCURIAL. Non-mainline extensions should # be specifying the version(s) of Mercurial they are tested with, or @@ -793,7 +798,8 @@ if opts.get('test'): ui.status(_('displaying '), subj, ' ...\n') ui.pager('email') - generator = emailgen.Generator(ui, mangle_from_=False) + generator = emailgen.Generator(_bytesgenerator(ui), + mangle_from_=False) try: generator.flatten(m, 0) ui.write('\n') @@ -809,7 +815,8 @@ # Exim does not remove the Bcc field del m['Bcc'] fp = stringio() - generator = emailgen.Generator(fp, mangle_from_=False) + generator = emailgen.Generator(_bytesgenerator(fp), + mangle_from_=False) generator.flatten(m, 0) sendmail(sender_addr, to + bcc + cc, fp.getvalue())