patchbomb: use procutil.shellquote() instead of shlex to escape email address
This basically backs out
2cc453284d5c, and inserts procutil.shellquote()
instead. I don't care about Windows compatibility here, but shlex.quote()
can't handle byte strings on Python 3.
--- a/mercurial/mail.py Mon Oct 07 11:52:58 2019 -0400
+++ b/mercurial/mail.py Wed Oct 02 07:35:22 2019 +0900
@@ -168,9 +168,10 @@
def _sendmail(ui, sender, recipients, msg):
'''send mail using sendmail.'''
program = ui.config(b'email', b'method')
- stremail = lambda x: (
- procutil.quote(stringutil.email(encoding.strtolocal(x)))
- )
+
+ def stremail(x):
+ return procutil.shellquote(stringutil.email(encoding.strtolocal(x)))
+
cmdline = b'%s -f %s %s' % (
program,
stremail(sender),
--- a/mercurial/pycompat.py Mon Oct 07 11:52:58 2019 -0400
+++ b/mercurial/pycompat.py Wed Oct 02 07:35:22 2019 +0900
@@ -337,11 +337,9 @@
ret = shlex.split(s.decode('latin-1'), comments, posix)
return [a.encode('latin-1') for a in ret]
- shlexquote = shlex.quote
else:
import cStringIO
- import pipes
xrange = xrange
unicode = unicode
@@ -408,7 +406,6 @@
sysplatform = sys.platform
sysexecutable = sys.executable
shlexsplit = shlex.split
- shlexquote = pipes.quote
bytesio = cStringIO.StringIO
stringio = bytesio
maplist = map
--- a/mercurial/utils/procutil.py Mon Oct 07 11:52:58 2019 -0400
+++ b/mercurial/utils/procutil.py Wed Oct 02 07:35:22 2019 +0900
@@ -77,7 +77,6 @@
spawndetached = platform.spawndetached
sshargs = platform.sshargs
testpid = platform.testpid
-quote = pycompat.shlexquote
try:
setprocname = osutil.setprocname