diff mercurial/ui.py @ 31691:c3ca0ad8ab9c

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.
author Matt Harbison <matt_harbison@yahoo.com>
date Sat, 25 Mar 2017 19:17:11 -0400
parents 2d11d278279a
children 8181f378b073
line wrap: on
line diff
--- a/mercurial/ui.py	Sat Mar 25 21:12:00 2017 -0400
+++ b/mercurial/ui.py	Sat Mar 25 19:17:11 2017 -0400
@@ -867,6 +867,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)
         else:
             # If the pager can't be spawned in dispatch when --pager=on is
             # given, don't try again when the command runs, to avoid a duplicate