]> git.ipfire.org Git - thirdparty/git.git/commitdiff
git-p4: rewrite prompt to be Windows compatible
authorBen Keene <seraphire@gmail.com>
Tue, 11 Feb 2020 18:57:58 +0000 (18:57 +0000)
committerJunio C Hamano <gitster@pobox.com>
Tue, 11 Feb 2020 20:04:05 +0000 (12:04 -0800)
The existing function prompt(prompt_text) does not work correctly when
run on Windows 10 bash terminal when launched from the sourcetree
GUI application. The stdout is not flushed properly so the prompt text
is not displayed to the user until the next flush of stdout, which is
quite confusing.

Change this method by:
* Adding flush to stderr, stdout, and stdin
* Use readline from sys.stdin instead of raw_input.

The existing strip().lower() are retained.

Signed-off-by: Ben Keene <seraphire@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-p4.py

index 40d9e7c594e590bd97069e29096dc34f3e642ed9..65b6d4dca08d4607048ee0d21ad821f01ef196a7 100755 (executable)
--- a/git-p4.py
+++ b/git-p4.py
@@ -175,7 +175,10 @@ def prompt(prompt_text):
     """
     choices = set(m.group(1) for m in re.finditer(r"\[(.)\]", prompt_text))
     while True:
-        response = raw_input(prompt_text).strip().lower()
+        sys.stderr.flush()
+        sys.stdout.write(prompt_text)
+        sys.stdout.flush()
+        response=sys.stdin.readline().strip().lower()
         if not response:
             continue
         response = response[0]