diff -r c49283e740da -r 83e571ea06a9 mercurial/ui.py --- a/mercurial/ui.py Thu Nov 08 22:25:04 2018 +0900 +++ b/mercurial/ui.py Sun Nov 04 12:17:20 2018 +0900 @@ -1390,12 +1390,16 @@ """Prompt user with msg, read response. If ui is not interactive, the default is returned. """ + return self._prompt(msg, default=default) + + def _prompt(self, msg, **opts): + default = opts[r'default'] if not self.interactive(): - self._writemsg(self._fmsgout, msg, ' ', type='prompt') + self._writemsg(self._fmsgout, msg, ' ', type='prompt', **opts) self._writemsg(self._fmsgout, default or '', "\n", type='promptecho') return default - self._writemsgnobuf(self._fmsgout, msg, type='prompt') + self._writemsgnobuf(self._fmsgout, msg, type='prompt', **opts) self.flush() try: r = self._readline() @@ -1449,7 +1453,7 @@ msg, choices = self.extractchoices(prompt) resps = [r for r, t in choices] while True: - r = self.prompt(msg, resps[default]) + r = self._prompt(msg, default=resps[default], choices=choices) if r.lower() in resps: return resps.index(r.lower()) # TODO: shouldn't it be a warning?