Re: [PATCH 4 of 4] ui: rerun color.setup() once the pager has spawned to honor 'color.pagermode'
On Sun, 26 Mar 2017 10:44:01 -0400, Yuya Nishiharawrote: On Sun, 26 Mar 2017 00:41:07 -0400, Matt Harbison wrote: # HG changeset patch # User Matt Harbison # 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) Is a follow up OK? There are some warnings being printed in _modesetup() that I don't think we want firing more than once, so it may not be a trivial refactoring. ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Re: [PATCH 4 of 4] ui: rerun color.setup() once the pager has spawned to honor 'color.pagermode'
On Sun, 26 Mar 2017 00:41:07 -0400, Matt Harbison wrote: > # HG changeset patch > # User Matt Harbison> # 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) ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel