diff options
Diffstat (limited to 'sphinx/cmd/quickstart.py')
-rw-r--r-- | sphinx/cmd/quickstart.py | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/sphinx/cmd/quickstart.py b/sphinx/cmd/quickstart.py index 68718eeaf..8b928b478 100644 --- a/sphinx/cmd/quickstart.py +++ b/sphinx/cmd/quickstart.py @@ -38,7 +38,7 @@ from six.moves.urllib.parse import quote as urlquote from sphinx import __display_version__, package_dir from sphinx.util import texescape from sphinx.util.console import ( # type: ignore - purple, bold, red, turquoise, nocolor, color_terminal + colorize, bold, red, turquoise, nocolor, color_terminal ) from sphinx.util.osutil import ensuredir, make_filename from sphinx.util.template import SphinxRenderer @@ -82,8 +82,14 @@ PROMPT_PREFIX = '> ' # function to get input from terminal -- overridden by the test suite def term_input(prompt): # type: (unicode) -> unicode - print(prompt, end='') - return input('') + if sys.platform == 'win32': + # Important: On windows, readline is not enabled by default. In these + # environment, escape sequences have been broken. To avoid the + # problem, quickstart uses ``print()`` to show prompt. + print(prompt, end='') + return input('') + else: + return input(prompt) class ValidationError(Exception): @@ -183,7 +189,7 @@ def do_prompt(text, default=None, validator=nonempty): prompt = prompt.encode('utf-8') except UnicodeEncodeError: prompt = prompt.encode('latin1') - prompt = purple(prompt) + prompt = colorize('purple', prompt, input_mode=True) x = term_input(prompt).strip() if default and not x: x = default |