[PATCH STABLE] ui: flush before prompting for input with readline
Gregory Szorc
gregory.szorc at gmail.com
Sat Nov 2 22:35:18 UTC 2019
# HG changeset patch
# User Gregory Szorc <gregory.szorc at gmail.com>
# Date 1572734019 25200
# Sat Nov 02 15:33:39 2019 -0700
# Branch stable
# Node ID 584cfb5d3d3c5cc78514e8ed8f688b52fd60cf47
# Parent 5fae970ebefab080585d06d7783e9bcb424b09e9
ui: flush before prompting for input with readline
I was using `hg absorb` with Python 3 and noticed that the
prompt was appearing without any output about what would be
done. After I answered the prompt, the output was printed
to stdout.
This appears to be a buffering difference between Python 2
and Python 3.
To work around it, this commit adds an explicit flush() before
calling the raw input function when readline is used.
diff --git a/mercurial/ui.py b/mercurial/ui.py
--- a/mercurial/ui.py
+++ b/mercurial/ui.py
@@ -1564,6 +1564,7 @@ class ui(object):
# - http://bugs.python.org/issue12833
with self.timeblockedsection(b'stdio'):
if usereadline:
+ self.flush()
prompt = encoding.strfromlocal(prompt)
line = encoding.strtolocal(pycompat.rawinput(prompt))
# When stdin is in binary mode on Windows, it can cause
More information about the Mercurial-devel
mailing list