Mercurial > public > mercurial-scm > hg-stable
diff mercurial/patch.py @ 36083:04984f2e50ae
py3: use email parser that operates on bytes
email.parser.Parser() operates on str in both Python 2 and 3.
Python 3.2 introduced the email.parser.BytesParser(), which works
like Parser except it accepts bytes.
We implement the pycompat helper as a function so we lazily
import the "email" module.
Differential Revision: https://phab.mercurial-scm.org/D2147
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sun, 11 Feb 2018 14:17:23 -0800 |
parents | 95791b275b73 |
children | a5cf79755eff |
line wrap: on
line diff
--- a/mercurial/patch.py Sun Feb 11 13:32:18 2018 -0800 +++ b/mercurial/patch.py Sun Feb 11 14:17:23 2018 -0800 @@ -12,7 +12,6 @@ import copy import difflib import email -import email.parser as emailparser import errno import hashlib import os @@ -109,7 +108,7 @@ cur.append(line) c = chunk(cur) - m = emailparser.Parser().parse(c) + m = pycompat.emailparser().parse(c) if not m.is_multipart(): yield msgfp(m) else: @@ -218,7 +217,7 @@ fd, tmpname = tempfile.mkstemp(prefix='hg-patch-') tmpfp = os.fdopen(fd, pycompat.sysstr('w')) try: - msg = emailparser.Parser().parse(fileobj) + msg = pycompat.emailparser().parse(fileobj) subject = msg['Subject'] and mail.headdecode(msg['Subject']) data['user'] = msg['From'] and mail.headdecode(msg['From'])