[Python-Dev] subprocess shell=True on Windows doesn't escape ^ character (original) (raw)
anatoly techtonik techtonik at gmail.com
Wed Jun 11 22:26:26 CEST 2014
- Previous message: [Python-Dev] Issue #21205: add __qualname__ to generators
- Next message: [Python-Dev] subprocess shell=True on Windows doesn't escape ^ character
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
I am banned from tracker, so I post the bug here:
Normal Windows behavior:
hg status --rev ".^1" M mercurial\commands.py ? pysptest.py
hg status --rev .^1 abort: unknown revision '.1'!
So, ^ is an escape character. See http://www.tomshardware.co.uk/forum/35565-45-when-special-command-line
But subprocess doesn't escape it, making cross-platform command fail on Windows.
---[cut pysptest.py]-- import subprocess as sp
this fails with
abort: unknown revision '.1'!
cmd = ['hg', 'status', '--rev', '.^1']
this works
#cmd = 'hg status --rev ".^1"'
this works too
#cmd = ['hg', 'status', '--rev', '.^^1']
try: print sp.check_output(cmd, stderr=sp.STDOUT, shell=True) except Exception as e: print e.output
-- anatoly t. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20140611/57620b52/attachment.html>
- Previous message: [Python-Dev] Issue #21205: add __qualname__ to generators
- Next message: [Python-Dev] subprocess shell=True on Windows doesn't escape ^ character
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]