# HG changeset patch # User Denis Laxalde # Date 2019-10-09 13:28:16 # Node ID 57efd5bd2ca246adb68d2dc52ce2a5500d95728f # Parent 8ff1ecfadcd110849c47c77e31c92809eea466ab py3: decode prompt string before calling rawinput Calling input() (aka pycompat.rawinput() on python3) with a byte string displays a byte string in the console. E.g. in interactive commit, we get: b"examine changes to ''?\n(enter ? for help) [Ynesfdaq?]". Similarly, "hg email" prompts are messed up. We thus decode the prompt string before running rawinput(). diff --git a/mercurial/ui.py b/mercurial/ui.py --- a/mercurial/ui.py +++ b/mercurial/ui.py @@ -1555,6 +1555,7 @@ class ui(object): # - http://bugs.python.org/issue12833 with self.timeblockedsection(b'stdio'): if usereadline: + prompt = encoding.strfromlocal(prompt) line = encoding.strtolocal(pycompat.rawinput(prompt)) # When stdin is in binary mode on Windows, it can cause # raw_input() to emit an extra trailing carriage return