comparison mercurial/windows.py @ 24108:d65ecb814fc0 stable

shellquote: fix missing quotes for empty string "hg kdiff3 -rREV" did not work because 1642eb429536 and 5edb387158a1 failed to handle empty argument.
author Yuya Nishihara <yuya@tcha.org>
date Wed, 11 Feb 2015 19:57:07 +0900
parents 1642eb429536
children 7a2194473155
comparison
equal deleted inserted replaced
24013:942a5a34b2d0 24108:d65ecb814fc0
157 if _needsshellquote is None: 157 if _needsshellquote is None:
158 # ":" and "\\" are also treated as "safe character", because 158 # ":" and "\\" are also treated as "safe character", because
159 # they are used as a part of path name (and the latter doesn't 159 # they are used as a part of path name (and the latter doesn't
160 # work as "escape character", like one on posix) on Windows 160 # work as "escape character", like one on posix) on Windows
161 _needsshellquote = re.compile(r'[^a-zA-Z0-9._:/\\-]').search 161 _needsshellquote = re.compile(r'[^a-zA-Z0-9._:/\\-]').search
162 if not _needsshellquote(s) and not _quotere.search(s): 162 if s and not _needsshellquote(s) and not _quotere.search(s):
163 # "s" shouldn't have to be quoted 163 # "s" shouldn't have to be quoted
164 return s 164 return s
165 return '"%s"' % _quotere.sub(r'\1\1\\\2', s) 165 return '"%s"' % _quotere.sub(r'\1\1\\\2', s)
166 166
167 def quotecommand(cmd): 167 def quotecommand(cmd):