Allow quotes in editor command on Windows

This change allows setting the EDITOR env. variable to point to a
program location that contains quotes and spaces.

For example:

> set EDITOR="C:\Program Files (x86)\Notepad++\notepad++.exe" -multiInst -nosession
> repo upload

Change-Id: Ic95b00f7443982b1956a2992d0220e50b1cf6bbb
This commit is contained in:
Renaud Paquay 2016-11-03 15:59:05 -07:00
parent 010fed7711
commit cd892a38a6

View File

@ -83,7 +83,12 @@ least one of these before using this command.""", file=sys.stderr)
os.close(fd)
fd = None
if re.compile("^.*[$ \t'].*$").match(editor):
if platform_utils.isWindows():
# Split on spaces, respecting quoted strings
import shlex
args = shlex.split(editor)
shell = False
elif re.compile("^.*[$ \t'].*$").match(editor):
args = [editor + ' "$@"', 'sh']
shell = True
else: