comparison mercurial/mail.py @ 37458:00e4bd97b095

procutil: always popen() in binary mode On Python 3, non-binary stream is useless. Let's convert line ending by ourselves. Note that we don't need fromnativeeol() in patch._externalpatch() since any whitespace characters are rstrip()-ed.
author Yuya Nishihara <yuya@tcha.org>
date Sat, 07 Apr 2018 20:50:38 +0900
parents a8a902d7176e
children bbd240f81ac5
comparison
equal deleted inserted replaced
37457:d83191e9749b 37458:00e4bd97b095
142 '''send mail using sendmail.''' 142 '''send mail using sendmail.'''
143 program = ui.config('email', 'method') 143 program = ui.config('email', 'method')
144 cmdline = '%s -f %s %s' % (program, stringutil.email(sender), 144 cmdline = '%s -f %s %s' % (program, stringutil.email(sender),
145 ' '.join(map(stringutil.email, recipients))) 145 ' '.join(map(stringutil.email, recipients)))
146 ui.note(_('sending mail: %s\n') % cmdline) 146 ui.note(_('sending mail: %s\n') % cmdline)
147 fp = procutil.popen(cmdline, 'w') 147 fp = procutil.popen(cmdline, 'wb')
148 fp.write(msg) 148 fp.write(util.tonativeeol(msg))
149 ret = fp.close() 149 ret = fp.close()
150 if ret: 150 if ret:
151 raise error.Abort('%s %s' % ( 151 raise error.Abort('%s %s' % (
152 os.path.basename(program.split(None, 1)[0]), 152 os.path.basename(program.split(None, 1)[0]),
153 procutil.explainexit(ret)[0])) 153 procutil.explainexit(ret)[0]))