[PATCH] ui: disable echo back of prompt input if ui is set to non-tty purposely
yuya at tcha.org
Thu Oct 9 10:31:00 CDT 2014
On Thu, 09 Oct 2014 16:50:27 +0200, Mads Kiilerich wrote:
> On 10/09/2014 04:30 PM, Yuya Nishihara wrote:
> > On Thu, 9 Oct 2014 10:05:20 -0400, Augie Fackler wrote:
> >> On Wed, Oct 08, 2014 at 11:48:53PM +0900, Yuya Nishihara wrote:
> >>> # HG changeset patch
> >>> # User Yuya Nishihara <yuya at tcha.org>
> >>> # Date 1412769061 -32400
> >>> # Wed Oct 08 20:51:01 2014 +0900
> >>> # Node ID 49193989bbd88445b156f0c6891610f34a56447f
> >>> # Parent a1eb21f5caea4366310e32aa85248791d5bbfa0c
> >>> ui: disable echo back of prompt input if ui is set to non-tty purposely
> >>> 9ab18a912c44 is nice for test output, but it also affects command-server
> >>> channel. Command-server client shouldn't receive echo-back message, which
> >>> makes it harder to parse the output.
> >>> diff --git a/mercurial/ui.py b/mercurial/ui.py
> >>> --- a/mercurial/ui.py
> >>> +++ b/mercurial/ui.py
> >>> @@ -684,7 +684,9 @@ class ui(object):
> >>> r = default
> >>> # sometimes self.interactive disagrees with isatty,
> >>> # show response provided on stdin when simulating
> >>> - if not util.isatty(self.fin):
> >>> + # but commandserver
> >> Should there be more of a thought here? Or is "but" a typo?
> > It seemed noisy to write long comment about commandserver here.
> It could perhaps be more of a full sentence:
> # sometimes self.interactive disagrees with isatty,
> # show response provided on stdin when simulating
> # but not for commandserver and other scripting
Sounds nice, thanks.
> > Instead, I'm thinking of new internal flag to control the echo, and set
> > this flag off by commandserver.
> > if self.configbool('ui', 'promptecho', not util.isatty(self.fin)):
> > self.write(r, "\n")
> I assume command server uses plain? How about
> if not util.isatty(self.fin) and not self.plain():
It depends. Libraries that have to parse the output will set HGPLAIN, but
there's a weird client that tries to mimic all behaviors of hg command.
More information about the Mercurial-devel