diff --git a/mercurial/color.py b/mercurial/color.py --- a/mercurial/color.py +++ b/mercurial/color.py @@ -487,11 +487,7 @@ if pycompat.iswindows: ansire = re.compile(b'\033\[([^m]*)m([^\033]*)(.*)', re.MULTILINE | re.DOTALL) - def win32print(ui, writefunc, *msgs, **opts): - for text in msgs: - _win32print(ui, text, writefunc, **opts) - - def _win32print(ui, text, writefunc, **opts): + def win32print(ui, writefunc, text, **opts): label = opts.get(r'label', '') attr = origattr diff --git a/mercurial/ui.py b/mercurial/ui.py --- a/mercurial/ui.py +++ b/mercurial/ui.py @@ -951,16 +951,16 @@ class ui(object): def _writenobuf(self, write, *args, **opts): self._progclear() + msg = b''.join(args) if 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, *args, **opts) + color.win32print(self, write, msg, **opts) else: - msgs = args if self._colormode is not None: label = opts.get(r'label', '') - msgs = [self.label(a, label) for a in args] - write(b''.join(msgs)) + msg = self.label(msg, label) + write(msg) def _write(self, data): # opencode timeblockedsection because this is a critical path