equal
deleted
inserted
replaced
236 if realmode == 'win32': |
236 if realmode == 'win32': |
237 ui._terminfoparams.clear() |
237 ui._terminfoparams.clear() |
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': |
245 _terminfosetup(ui, mode) |
244 _terminfosetup(ui, mode) |
246 if not ui._terminfoparams: |
245 if not ui._terminfoparams: |
269 ui.warn(_("ignoring unknown color/effect %r " |
268 ui.warn(_("ignoring unknown color/effect %r " |
270 "(configured in color.%s)\n") |
269 "(configured in color.%s)\n") |
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 |
280 def _effect_str(ui, effect): |
287 def _effect_str(ui, effect): |
281 '''Helper function for render_effects().''' |
288 '''Helper function for render_effects().''' |
322 if ui._terminfoparams: |
329 if ui._terminfoparams: |
323 start = ''.join(_effect_str(ui, effect) |
330 start = ''.join(_effect_str(ui, effect) |
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') |
333 |
341 |
334 def stripeffects(text): |
342 def stripeffects(text): |