[PATCH 1 of 5 STABLE] color: avoid win32 side effect on unrelated mapping
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Mon May 1 14:03:31 UTC 2017
# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at ens-lyon.org>
# Date 1487714323 -3600
# Tue Feb 21 22:58:43 2017 +0100
# Node ID aac8744576ced029e5f858dbdd02819f9f942732
# Parent 8fc55bbd2235fca1986b2fbd834c4bf8d0aa955f
# EXP-Topic color
# Available At https://www.mercurial-scm.org/repo/users/marmoute/mercurial/
# hg pull https://www.mercurial-scm.org/repo/users/marmoute/mercurial/ -r aac8744576ce
color: avoid win32 side effect on unrelated mapping
The '_effect' and the 'w32effects' mapping seems unrelated. Yet in 'win32' mode,
they were mixed to make sure some other code were using the 'win32effects' value
through the '_effect' mapping. Instead, we simply dispatch to the right mapping
according to the color mode.
diff --git a/mercurial/color.py b/mercurial/color.py
--- a/mercurial/color.py
+++ b/mercurial/color.py
@@ -237,7 +237,6 @@ def _modesetup(ui):
if not w32effects:
modewarn()
return None
- _effects.update(w32effects)
elif realmode == 'ansi':
ui._terminfoparams.clear()
elif realmode == 'terminfo':
@@ -272,7 +271,10 @@ def configstyles(ui):
def valideffect(ui, effect):
'Determine if the effect is valid or not.'
- return ((not ui._terminfoparams and effect in _effects)
+ knowneffect = _effects
+ if ui._colormode == 'win32':
+ knowneffect = w32effects
+ return ((not ui._terminfoparams and effect in knowneffect)
or (effect in ui._terminfoparams
or effect[:-11] in ui._terminfoparams))
More information about the Mercurial-devel
mailing list