# HG changeset patch # User Benoit Boissinot # Date 1207093769 -7200 # Node ID 9d2ce19bdacd8f32ba8a4b5923c0ad74272ab8f9 # Parent ee5313bc3c0c6d4c4963f01aeb1bfc639d91367b patchbomb: Fix mangling of lines beginning with From we should mangle the lines beginning with From only when writing to mbox format. diff -r ee5313bc3c0c -r 9d2ce19bdacd hgext/patchbomb.py --- a/hgext/patchbomb.py Tue Apr 01 14:35:35 2008 +0200 +++ b/hgext/patchbomb.py Wed Apr 02 01:49:29 2008 +0200 @@ -66,7 +66,8 @@ import os, errno, socket, tempfile import email.MIMEMultipart, email.MIMEText, email.MIMEBase -import email.Utils, email.Encoders +import email.Utils, email.Encoders, email.Generator +import cStringIO.StringIO from mercurial import cmdutil, commands, hg, mail, patch, util from mercurial.i18n import _ from mercurial.node import bin @@ -407,8 +408,9 @@ fp = os.popen(os.environ['PAGER'], 'w') else: fp = ui + generator = email.Generator.Generator(fp, mangle_from_=False) try: - fp.write(m.as_string(0)) + generator.flatten(m, 0) fp.write('\n') except IOError, inst: if inst.errno != errno.EPIPE: @@ -418,9 +420,10 @@ elif opts.get('mbox'): ui.status('Writing ', m['Subject'], ' ...\n') fp = open(opts.get('mbox'), 'In-Reply-To' in m and 'ab+' or 'wb+') + generator = email.Generator.Generator(fp, mangle_from_=True) date = util.datestr(start_time, '%a %b %d %H:%M:%S %Y') fp.write('From %s %s\n' % (sender_addr, date)) - fp.write(m.as_string(0)) + generator.flatten(m, 0) fp.write('\n\n') fp.close() else: @@ -429,7 +432,10 @@ ui.status('Sending ', m['Subject'], ' ...\n') # Exim does not remove the Bcc field del m['Bcc'] - sendmail(sender, to + bcc + cc, m.as_string(0)) + fp = cStringIO.StringIO() + generator = email.Generator.Generator(fp, mangle_from_=False) + generator.flatten(m, 0) + sendmail(sender, to + bcc + cc, fp.getvalue()) cmdtable = { "email":