##// END OF EJS Templates
color: stop mutating the default effects map...
Matt Harbison -
r31689:57a22f69 default
parent child Browse files
Show More
@@ -238,7 +238,6 def _modesetup(ui):
238 if not w32effects:
238 if not w32effects:
239 modewarn()
239 modewarn()
240 return None
240 return None
241 _effects.update(w32effects)
242 elif realmode == 'ansi':
241 elif realmode == 'ansi':
243 ui._terminfoparams.clear()
242 ui._terminfoparams.clear()
244 elif realmode == 'terminfo':
243 elif realmode == 'terminfo':
@@ -271,9 +270,17 def configstyles(ui):
271 % (e, status))
270 % (e, status))
272 ui._styles[status] = ' '.join(good)
271 ui._styles[status] = ' '.join(good)
273
272
273 def _activeeffects(ui):
274 '''Return the effects map for the color mode set on the ui.'''
275 if ui._colormode == 'win32':
276 return w32effects
277 elif ui._colormode is not None:
278 return _effects
279 return {}
280
274 def valideffect(ui, effect):
281 def valideffect(ui, effect):
275 'Determine if the effect is valid or not.'
282 'Determine if the effect is valid or not.'
276 return ((not ui._terminfoparams and effect in _effects)
283 return ((not ui._terminfoparams and effect in _activeeffects(ui))
277 or (effect in ui._terminfoparams
284 or (effect in ui._terminfoparams
278 or effect[:-11] in ui._terminfoparams))
285 or effect[:-11] in ui._terminfoparams))
279
286
@@ -324,9 +331,10 def _render_effects(ui, text, effects):
324 for effect in ['none'] + effects.split())
331 for effect in ['none'] + effects.split())
325 stop = _effect_str(ui, 'none')
332 stop = _effect_str(ui, 'none')
326 else:
333 else:
327 start = [str(_effects[e]) for e in ['none'] + effects.split()]
334 activeeffects = _activeeffects(ui)
335 start = [str(activeeffects[e]) for e in ['none'] + effects.split()]
328 start = '\033[' + ';'.join(start) + 'm'
336 start = '\033[' + ';'.join(start) + 'm'
329 stop = '\033[' + str(_effects['none']) + 'm'
337 stop = '\033[' + str(activeeffects['none']) + 'm'
330 return _mergeeffects(text, start, stop)
338 return _mergeeffects(text, start, stop)
331
339
332 _ansieffectre = re.compile(br'\x1b\[[0-9;]*m')
340 _ansieffectre = re.compile(br'\x1b\[[0-9;]*m')
@@ -360,7 +360,7 def debugcolor(ui, repo, **opts):
360 def _debugdisplaycolor(ui):
360 def _debugdisplaycolor(ui):
361 ui = ui.copy()
361 ui = ui.copy()
362 ui._styles.clear()
362 ui._styles.clear()
363 for effect in color._effects.keys():
363 for effect in color._activeeffects(ui).keys():
364 ui._styles[effect] = effect
364 ui._styles[effect] = effect
365 if ui._terminfoparams:
365 if ui._terminfoparams:
366 for k, v in ui.configitems('color'):
366 for k, v in ui.configitems('color'):
General Comments 0
You need to be logged in to leave comments. Login now