# HG changeset patch # User Pierre-Yves David # Date 1487590943 -3600 # Node ID 0c003943134f8c482267e05db823632d18d91dbb # Parent 15d6488554b98ee0aea47ecfb45e231ac4dc9220 color: move 'write-err' logic to the core ui class This is similar to what we needed for 'write', we move the logic from the extension to the core class. Beside the dispatch to 'win32print', we just apply label to the argument. diff -r 15d6488554b9 -r 0c003943134f hgext/color.py --- a/hgext/color.py Fri Feb 24 19:53:41 2017 +0100 +++ b/hgext/color.py Mon Feb 20 12:42:23 2017 +0100 @@ -297,19 +297,7 @@ return None class colorui(uimod.ui): - - def write_err(self, *args, **opts): - if self._colormode is None: - return super(colorui, self).write_err(*args, **opts) - - label = opts.get('label', '') - if self._bufferstates and self._bufferstates[-1][0]: - return self.write(*args, **opts) - if self._colormode == 'win32': - color.win32print(super(colorui, self).write_err, *args, **opts) - else: - return super(colorui, self).write_err( - *[self.label(a, label) for a in args], **opts) + pass def uisetup(ui): if ui.plain(): diff -r 15d6488554b9 -r 0c003943134f mercurial/ui.py --- a/mercurial/ui.py Fri Feb 24 19:53:41 2017 +0100 +++ b/mercurial/ui.py Mon Feb 20 12:42:23 2017 +0100 @@ -823,8 +823,17 @@ def write_err(self, *args, **opts): self._progclear() if self._bufferstates and self._bufferstates[-1][0]: - return self.write(*args, **opts) - self._write_err(*args, **opts) + self.write(*args, **opts) + elif self._colormode == 'win32': + # windows color printing is its own can of crab, defer to + # the color module and that is it. + color.win32print(self._write_err, *args, **opts) + else: + msgs = args + if self._colormode is not None: + label = opts.get('label', '') + msgs = [self.label(a, label) for a in args] + self._write_err(*msgs, **opts) def _write_err(self, *msgs, **opts): try: