--- a/mercurial/color.py Thu Dec 22 02:30:03 2016 +0100
+++ b/mercurial/color.py Thu Dec 22 02:34:22 2016 +0100
@@ -7,6 +7,8 @@
from __future__ import absolute_import
+from .i18n import _
+
try:
import curses
# Mapping from effect name to terminfo attribute name (or raw code) or
@@ -114,6 +116,22 @@
def loadcolortable(ui, extname, colortable):
_styles.update(colortable)
+def configstyles(ui):
+ for status, cfgeffects in ui.configitems('color'):
+ if '.' not in status or status.startswith(('color.', 'terminfo.')):
+ continue
+ cfgeffects = ui.configlist('color', status)
+ if cfgeffects:
+ good = []
+ for e in cfgeffects:
+ if valideffect(e):
+ good.append(e)
+ else:
+ ui.warn(_("ignoring unknown color/effect %r "
+ "(configured in color.%s)\n")
+ % (e, status))
+ _styles[status] = ' '.join(good)
+
def valideffect(effect):
'Determine if the effect is valid or not.'
return ((not _terminfo_params and effect in _effects)