Mercurial > public > mercurial-scm > hg-stable
diff mercurial/dispatch.py @ 11555:d8d0fc3988ca stable
color/progress: subclass ui instead of using wrapfunction (issue2096)
This resolves the issue of hg cmd --mq not being colorized. This was due
to color wrapping only the instance of ui passed to dispatch._runcommand(),
which isn't the same ui object that mq.mqcommand() receives. After dispatch
calls extensions.loadall(), it makes sure any changes to ui.__class__ in
uisetup are propagated.
progress is updated to wrap ui in the same manner because wrapfunction
doesn't play well when ui.__class__ has been replaced by another extension
(orig will point to the old class method instead of color's).
author | Brodie Rao <brodie@bitheap.org> |
---|---|
date | Thu, 01 Jul 2010 19:23:26 -0500 |
parents | 713ae78bb583 |
children | c20c2c4c0c63 76454cbc11e4 |
line wrap: on
line diff
--- a/mercurial/dispatch.py Wed Jul 14 19:43:31 2010 +0200 +++ b/mercurial/dispatch.py Thu Jul 01 19:23:26 2010 -0500 @@ -388,6 +388,8 @@ # times so we keep track of configured extensions in _loaded. extensions.loadall(lui) exts = [ext for ext in extensions.extensions() if ext[0] not in _loaded] + # Propagate any changes to lui.__class__ by extensions + ui.__class__ = lui.__class__ # (uisetup and extsetup are handled in extensions.loadall)