| Index: gclient_utils.py
|
| diff --git a/gclient_utils.py b/gclient_utils.py
|
| index 97c8227c097370f2e933f759a5a268e752d72020..7af11636e23982bd83d1a5f3dc33373a605b3f91 100644
|
| --- a/gclient_utils.py
|
| +++ b/gclient_utils.py
|
| @@ -12,6 +12,7 @@ import re
|
| import stat
|
| import subprocess
|
| import sys
|
| +import tempfile
|
| import threading
|
| import time
|
| import xml.dom.minidom
|
| @@ -710,3 +711,37 @@ class ExecutionQueue(object):
|
| work_queue.ready_cond.notifyAll()
|
| finally:
|
| work_queue.ready_cond.release()
|
| +
|
| +
|
| +def GetEditor():
|
| + editor = os.environ.get("SVN_EDITOR")
|
| + if not editor:
|
| + editor = os.environ.get("EDITOR")
|
| +
|
| + if not editor:
|
| + if sys.platform.startswith("win"):
|
| + editor = "notepad"
|
| + else:
|
| + editor = "vi"
|
| +
|
| + return editor
|
| +
|
| +
|
| +def UserEdit(text):
|
| + """Open an editor, edit the text, and return the result."""
|
| + (file_handle, filename) = tempfile.mkstemp()
|
| + fileobj = os.fdopen(file_handle, 'w')
|
| + fileobj.write(text)
|
| + fileobj.close()
|
| +
|
| + # Open up the default editor in the system to get the CL description.
|
| + try:
|
| + cmd = '%s %s' % (GetEditor(), filename)
|
| + if sys.platform == 'win32' and os.environ.get('TERM') == 'msys':
|
| + # Msysgit requires the usage of 'env' to be present.
|
| + cmd = 'env ' + cmd
|
| + # shell=True to allow the shell to handle all forms of quotes in $EDITOR.
|
| + subprocess.check_call(cmd, shell=True)
|
| + return FileRead(filename, 'r')
|
| + finally:
|
| + os.remove(filename)
|
|
|