fix comment typos, use not arg instead of arg == "", add test coverage

for inside of the final if needquotes: within subprocess.list2cmdline().
This commit is contained in:
Gregory P. Smith 2008-01-19 20:49:02 +00:00
parent 060e6855a8
commit e047e6dd09
2 changed files with 5 additions and 3 deletions

View File

@ -497,7 +497,7 @@ def list2cmdline(seq):
if result:
result.append(' ')
needquote = (" " in arg) or ("\t" in arg) or arg == ""
needquote = (" " in arg) or ("\t" in arg) or not arg
if needquote:
result.append('"')
@ -506,7 +506,7 @@ def list2cmdline(seq):
# Don't know if we need to double yet.
bs_buf.append(c)
elif c == '"':
# Double backspaces.
# Double backslashes.
result.append('\\' * len(bs_buf)*2)
bs_buf = []
result.append('\\"')
@ -517,7 +517,7 @@ def list2cmdline(seq):
bs_buf = []
result.append(c)
# Add remaining backspaces, if any.
# Add remaining backslashes, if any.
if bs_buf:
result.extend(bs_buf)

View File

@ -422,6 +422,8 @@ class ProcessTestCase(unittest.TestCase):
'"a b c" d e')
self.assertEqual(subprocess.list2cmdline(['ab"c', '\\', 'd']),
'ab\\"c \\ d')
self.assertEqual(subprocess.list2cmdline(['ab"c', ' \\', 'd']),
'ab\\"c " \\\\" d')
self.assertEqual(subprocess.list2cmdline(['a\\\\\\b', 'de fg', 'h']),
'a\\\\\\b "de fg" h')
self.assertEqual(subprocess.list2cmdline(['a\\"b', 'c', 'd']),