diff --git a/hgext/color.py b/hgext/color.py --- a/hgext/color.py +++ b/hgext/color.py @@ -296,18 +296,12 @@ def _modesetup(ui, coloropt): return realmode return None -class colorui(uimod.ui): - pass - def uisetup(ui): if ui.plain(): return - if not isinstance(ui, colorui): - colorui.__bases__ = (ui.__class__,) - ui.__class__ = colorui def colorcmd(orig, ui_, opts, cmd, cmdfunc): mode = _modesetup(ui_, opts['color']) - colorui._colormode = mode + uimod.ui._colormode = mode if mode and mode != 'debug': color.configstyles(ui_) return orig(ui_, opts, cmd, cmdfunc) diff --git a/tests/test-ui-color.py b/tests/test-ui-color.py --- a/tests/test-ui-color.py +++ b/tests/test-ui-color.py @@ -1,16 +1,13 @@ from __future__ import absolute_import, print_function import os -from hgext import ( - color, -) from mercurial import ( dispatch, ui as uimod, ) # ensure errors aren't buffered -testui = color.colorui() +testui = uimod.ui() testui.pushbuffer() testui.write(('buffered\n')) testui.warn(('warning\n')) @@ -35,6 +32,7 @@ def runcmd(): dispatch.dispatch(dispatch.request(['version', '-q'], ui_)) runcmd() -print("colored? " + str(issubclass(ui_.__class__, color.colorui))) +print("colored? %s" % (ui_._colormode is not None)) runcmd() -print("colored? " + str(issubclass(ui_.__class__, color.colorui))) +print("colored? %s" % (ui_._colormode is not None)) +