Re: [PATCH 4 of 4] ui: rerun color.setup() once the pager has spawned to honor 'color.pagermode'

2017-03-26 Thread Matt Harbison

On Sun, 26 Mar 2017 10:44:01 -0400, Yuya Nishihara  wrote:


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'

2017-03-26 Thread Yuya Nishihara
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