# HG changeset patch # User Pierre-Yves David # Date 1482370638 -3600 # Node ID a3c7e42c7a1f49e16152f629b2766513cbf93949 # Parent bb6385882cfa32cd8cedaea41f74cc6a948fcf22 color: move '_effect_str' function into the core module diff -r bb6385882cfa -r a3c7e42c7a1f hgext/color.py --- a/hgext/color.py Thu Dec 22 02:34:22 2016 +0100 +++ b/hgext/color.py Thu Dec 22 02:37:18 2016 +0100 @@ -297,27 +297,6 @@ return realmode return None -def _effect_str(effect): - '''Helper function for render_effects().''' - - bg = False - if effect.endswith('_background'): - bg = True - effect = effect[:-11] - try: - attr, val, termcode = color._terminfo_params[effect] - except KeyError: - return '' - if attr: - if termcode: - return termcode - else: - return curses.tigetstr(val) - elif bg: - return curses.tparm(curses.tigetstr('setab'), val) - else: - return curses.tparm(curses.tigetstr('setaf'), val) - def render_effects(text, effects): 'Wrap text in commands to turn on each effect.' if not text: @@ -327,9 +306,9 @@ start = '\033[' + ';'.join(start) + 'm' stop = '\033[' + str(color._effects['none']) + 'm' else: - start = ''.join(_effect_str(effect) + start = ''.join(color._effect_str(effect) for effect in ['none'] + effects.split()) - stop = _effect_str('none') + stop = color._effect_str('none') return ''.join([start, text, stop]) class colorui(uimod.ui): diff -r bb6385882cfa -r a3c7e42c7a1f mercurial/color.py --- a/mercurial/color.py Thu Dec 22 02:34:22 2016 +0100 +++ b/mercurial/color.py Thu Dec 22 02:37:18 2016 +0100 @@ -137,3 +137,24 @@ return ((not _terminfo_params and effect in _effects) or (effect in _terminfo_params or effect[:-11] in _terminfo_params)) + +def _effect_str(effect): + '''Helper function for render_effects().''' + + bg = False + if effect.endswith('_background'): + bg = True + effect = effect[:-11] + try: + attr, val, termcode = _terminfo_params[effect] + except KeyError: + return '' + if attr: + if termcode: + return termcode + else: + return curses.tigetstr(val) + elif bg: + return curses.tparm(curses.tigetstr('setab'), val) + else: + return curses.tparm(curses.tigetstr('setaf'), val)