[v6,1/7] git-p4: rewrite prompt to be Windows compatible
diff mbox series

Message ID 013b27760a0372a2a30e380c29919a5ca12ca135.1581691486.git.gitgitgadget@gmail.com
State New
Headers show
Series
  • git-p4: add hooks for p4-changelist
Related show

Commit Message

Garima Singh via GitGitGadget Feb. 14, 2020, 2:44 p.m. UTC
From: Ben Keene <seraphire@gmail.com>

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>
---
 git-p4.py | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Patch
diff mbox series

diff --git a/git-p4.py b/git-p4.py
index 40d9e7c594e..65b6d4dca08 100755
--- 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]