]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Merged revisions 82076 via svnmerge from
authorJean-Paul Calderone <exarkun@divmod.com>
Fri, 18 Jun 2010 20:11:43 +0000 (20:11 +0000)
committerJean-Paul Calderone <exarkun@divmod.com>
Fri, 18 Jun 2010 20:11:43 +0000 (20:11 +0000)
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r82076 | jean-paul.calderone | 2010-06-18 16:03:54 -0400 (Fri, 18 Jun 2010) | 19 lines

  Merged revisions 82075 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r82075 | jean-paul.calderone | 2010-06-18 16:00:17 -0400 (Fri, 18 Jun 2010) | 12 lines

    Revert r60115

    This revision introduced quoting for strings containing | based
    on a misunderstanding of the commonly used quoting rules used
    on Windows.

    | is interpreted by cmd.exe, not by the MS C runtime argv initializer.
    It only needs to be quoted if it is part of an argument passed through
    cmd.exe.

    See issue1300, issue7839, and issue8972.
  ........
................

Lib/subprocess.py
Lib/test/test_subprocess.py

index 74b049fde64d4bef4218c231cf78fcdeb6aac150..1b774bc65298a1b19d523f83ca028599760a9102 100644 (file)
@@ -479,8 +479,8 @@ def list2cmdline(seq):
 
     2) A string surrounded by double quotation marks is
        interpreted as a single argument, regardless of white space
-       or pipe characters contained within.  A quoted string can be
-       embedded in an argument.
+       contained within.  A quoted string can be embedded in an
+       argument.
 
     3) A double quotation mark preceded by a backslash is
        interpreted as a literal double quotation mark.
@@ -508,7 +508,7 @@ def list2cmdline(seq):
         if result:
             result.append(' ')
 
-        needquote = (" " in arg) or ("\t" in arg) or ("|" in arg) or not arg
+        needquote = (" " in arg) or ("\t" in arg) or not arg
         if needquote:
             result.append('"')
 
index f69172a5af47d9b8d4fb0b4f3ccb3119444d4de3..0f3f35d1868329a9977a9953023f2f3ec593304b 100644 (file)
@@ -477,8 +477,6 @@ class ProcessTestCase(unittest.TestCase):
                          '"a\\\\b\\ c" d e')
         self.assertEqual(subprocess.list2cmdline(['ab', '']),
                          'ab ""')
-        self.assertEqual(subprocess.list2cmdline(['echo', 'foo|bar']),
-                         'echo "foo|bar"')
 
 
     def test_poll(self):