dispatch: replace mayberepr with shellquote
authorAugie Fackler <augie@google.com>
Sun, 19 Mar 2017 14:23:30 -0400
changeset 31500 bc315e669a32
parent 31499 31d2ddfd338c
child 31501 a1e40ceee640
dispatch: replace mayberepr with shellquote The quoting logic here was actually insufficient, and would have had bogus b-prefixes on Python 3. shellquote seems more appropriate anyway. Surprisingly, only two tests have output changes, and both of them look reasonable to me (both are in blackbox logs). Spotted by Yuya during review.
mercurial/dispatch.py
tests/test-blackbox.t
tests/test-devel-warnings.t
--- a/mercurial/dispatch.py	Sun Mar 19 12:44:45 2017 -0400
+++ b/mercurial/dispatch.py	Sun Mar 19 14:23:30 2017 -0400
@@ -92,13 +92,8 @@
     if inst.hint:
         write(_("(%s)\n") % inst.hint)
 
-def _mayberepr(a):
-    if ' ' in a:
-        return encoding.strtolocal(repr(a))
-    return a
-
 def _formatargs(args):
-    return ' '.join(_mayberepr(a) for a in args)
+    return ' '.join(util.shellquote(a) for a in args)
 
 def dispatch(req):
     "run the command specified in req.args"
--- a/tests/test-blackbox.t	Sun Mar 19 12:44:45 2017 -0400
+++ b/tests/test-blackbox.t	Sun Mar 19 14:23:30 2017 -0400
@@ -25,7 +25,7 @@
   1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> add a
   1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> add a exited 0 after * seconds (glob)
   1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000+ (5000)> blackbox
-  1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000+ (5000)> blackbox --config blackbox.dirty=True exited 0 after * seconds (glob)
+  1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000+ (5000)> blackbox --config 'blackbox.dirty=True' exited 0 after * seconds (glob)
   1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> confuse
   1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> alias 'confuse' expands to 'log --limit 3'
   1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> confuse exited 0 after * seconds (glob)
--- a/tests/test-devel-warnings.t	Sun Mar 19 12:44:45 2017 -0400
+++ b/tests/test-devel-warnings.t	Sun Mar 19 14:23:30 2017 -0400
@@ -139,7 +139,7 @@
   $ hg blackbox -l 9
   1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> devel-warn: revset "oldstyle" uses list instead of smartset
   (compatibility will be dropped after Mercurial-3.9, update your code.) at: *mercurial/revset.py:* (mfunc) (glob)
-  1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> log -r oldstyle() -T {rev}\n exited 0 after * seconds (glob)
+  1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> log -r 'oldstyle()' -T '{rev}\n' exited 0 after * seconds (glob)
   1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> oldanddeprecated
   1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> devel-warn: foorbar is deprecated, go shopping
   (compatibility will be dropped after Mercurial-42.1337, update your code.) at: $TESTTMP/buggylocking.py:* (oldanddeprecated) (glob)