[PATCH 3 of 6] ui: simplify interface of low-level write() functions

Yuya Nishihara yuya at tcha.org
Sun Nov 4 07:55:23 EST 2018


# HG changeset patch
# User Yuya Nishihara <yuya at tcha.org>
# Date 1541234170 -32400
#      Sat Nov 03 17:36:10 2018 +0900
# Node ID 5825c9e9abddbe48b4635178eaac5571e587f9c3
# Parent  27823240c017e4a7d474c93013c149d9c84d73c9
ui: simplify interface of low-level write() functions

_write() and _write_err() will be replaced with fout.write() and ferr.write()
respectively. This is the first step.

diff --git a/mercurial/color.py b/mercurial/color.py
--- a/mercurial/color.py
+++ b/mercurial/color.py
@@ -529,7 +529,7 @@ if pycompat.iswindows:
                         attr = mapcolor(int(sattr), attr)
                 ui.flush()
                 _kernel32.SetConsoleTextAttribute(stdout, attr)
-                writefunc(m.group(2), **opts)
+                writefunc(m.group(2))
                 m = re.match(ansire, m.group(3))
         finally:
             # Explicitly reset original attributes
diff --git a/mercurial/ui.py b/mercurial/ui.py
--- a/mercurial/ui.py
+++ b/mercurial/ui.py
@@ -960,13 +960,13 @@ class ui(object):
             if self._colormode is not None:
                 label = opts.get(r'label', '')
                 msgs = [self.label(a, label) for a in args]
-            write(*msgs, **opts)
+            write(b''.join(msgs))
 
-    def _write(self, *msgs, **opts):
+    def _write(self, data):
         # opencode timeblockedsection because this is a critical path
         starttime = util.timer()
         try:
-            self.fout.write(''.join(msgs))
+            self.fout.write(data)
         except IOError as err:
             raise error.StdioError(err)
         finally:
@@ -979,13 +979,12 @@ class ui(object):
         else:
             self._writenobuf(self._write_err, *args, **opts)
 
-    def _write_err(self, *msgs, **opts):
+    def _write_err(self, data):
         try:
             with self.timeblockedsection('stdio'):
                 if not getattr(self.fout, 'closed', False):
                     self.fout.flush()
-                for a in msgs:
-                    self.ferr.write(a)
+                self.ferr.write(data)
                 # stderr may be buffered under win32 when redirected to files,
                 # including stdout.
                 if not getattr(self.ferr, 'closed', False):


More information about the Mercurial-devel mailing list