[PATCH 4 of 4] ui: rerun color.setup() once the pager has spawned to honor 'color.pagermode'
Yuya Nishihara
yuya at tcha.org
Sun Mar 26 10:44:01 EDT 2017
On Sun, 26 Mar 2017 00:41:07 -0400, Matt Harbison wrote:
> # HG changeset patch
> # User Matt Harbison <matt_harbison at yahoo.com>
> # Date 1490483831 14400
> # Sat Mar 25 19:17:11 2017 -0400
> # Node ID 4713a38672f2d0790477b6c22180bd453f61851d
> # Parent 84bda5db69dbe3d550f45ccd6d6eda2aad760ee4
> ui: rerun color.setup() once the pager has spawned to honor 'color.pagermode'
>
> Otherwise, ui.pageractive is False when color is setup in dispatch.py (without
> --pager=on), and this config option is ignored.
>
> diff --git a/mercurial/ui.py b/mercurial/ui.py
> --- a/mercurial/ui.py
> +++ b/mercurial/ui.py
> @@ -861,6 +861,12 @@
> # auto-detection of things being formatted.
> self.setconfig('ui', 'formatted', wasformatted, 'pager')
> self.setconfig('ui', 'interactive', False, 'pager')
> +
> + # If pagermode differs from color.mode, reconfigure color now that
> + # pageractive is set.
> + cm = self._colormode
> + if cm != self.config('color', 'pagermode', cm):
> + color.setup(self)
This also looks good. Maybe we can refactor color._modesetup() further so that
we can do something like
newmode = color.mode(self)
if self._colormode != newmode:
color.setup(self, newmode)
More information about the Mercurial-devel
mailing list