Mercurial > hg
changeset 30994:3ed6e43998df
ui: introduce neverpager() call
I'm about to add direct paging support to some commands, and as a
result we need a way to communicate from the higher layers of dispatch
that paging is explicitly disabled.
author | Augie Fackler <augie@google.com> |
---|---|
date | Wed, 15 Feb 2017 17:48:03 -0500 |
parents | 9c2977ceaa46 |
children | 5e85bab867a7 |
files | mercurial/dispatch.py mercurial/ui.py |
diffstat | 2 files changed, 10 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/dispatch.py Wed Feb 15 17:47:57 2017 -0500 +++ b/mercurial/dispatch.py Wed Feb 15 17:48:03 2017 -0500 @@ -749,6 +749,9 @@ for ui_ in uis: ui_.setconfig('ui', 'interactive', 'off', '-y') + if options['pager'] != 'auto' and not util.parsebool(options['pager']): + ui.neverpager() + if cmdoptions.get('insecure', False): for ui_ in uis: ui_.insecureconnections = True
--- a/mercurial/ui.py Wed Feb 15 17:47:57 2017 -0500 +++ b/mercurial/ui.py Wed Feb 15 17:48:03 2017 -0500 @@ -155,6 +155,7 @@ self.ferr = src.ferr self.fin = src.fin self.pageractive = src.pageractive + self._neverpager = src._neverpager self._tcfg = src._tcfg.copy() self._ucfg = src._ucfg.copy() @@ -173,6 +174,7 @@ self.ferr = util.stderr self.fin = util.stdin self.pageractive = False + self._neverpager = False # shared read-only environment self.environ = encoding.environ @@ -831,6 +833,9 @@ return False return util.isatty(fh) + def neverpager(self): + self._neverpager = True + def pager(self, command): """Start a pager for subsequent command output. @@ -844,7 +849,8 @@ command: The full, non-aliased name of the command. That is, "log" not "history, "summary" not "summ", etc. """ - if (self.pageractive + if (self._neverpager + or self.pageractive # TODO: if we want to allow HGPLAINEXCEPT=pager, # formatted() will need some adjustment. or not self.formatted()