windows: don’t set `softspace` attribute in `winstdout`
authorManuel Jacob <me@manueljacob.de>
Sat, 18 Jul 2020 12:35:55 +0200
changeset 45158 ed58ecd59030
parent 45157 74b486226480
child 45159 e05a488cbed0
windows: don’t set `softspace` attribute in `winstdout` Python 2 file objects have the `softspace` attribute (https://docs.python.org/2/library/stdtypes.html#file.softspace), which is used by the print statement to track its internal state. The documentation demands from file-like objects only that the attribute is writable and initialized to 0. Method `file.write()` sets it to 0, but this is not documented. Historically, sys.stdout was replaced by an instance of the `winstdout` class, so it needed to behave exactly the same (the softspace fix was introduced in 705278e70457). Nowadays we don’t replace sys.stdout and don’t use the print statement on `winstdout` instances, so we can safely drop it.
mercurial/windows.py
--- a/mercurial/windows.py	Fri Jul 17 14:58:22 2020 +0200
+++ b/mercurial/windows.py	Sat Jul 18 12:35:55 2020 +0200
@@ -217,8 +217,6 @@
             pass
 
     def write(self, s):
-        if not pycompat.ispy3:
-            self.softspace = 0
         try:
             if not self.throttle:
                 return self.fp.write(s)