[Python-checkins] cpython (3.2): Issue #7163: Propagate return value of sys.stdout.write.
martin.v.loewis
python-checkins at python.org
Wed Jul 25 11:33:15 CEST 2012
http://hg.python.org/cpython/rev/f72965374b2a
changeset: 78276:f72965374b2a
branch: 3.2
parent: 78273:a82fd35e28be
user: Martin v. Löwis <martin at v.loewis.de>
date: Wed Jul 25 11:32:26 2012 +0200
summary:
Issue #7163: Propagate return value of sys.stdout.write.
Patch by Roger Serwy.
files:
Lib/idlelib/NEWS.txt | 2 ++
Lib/idlelib/OutputWindow.py | 1 +
Lib/idlelib/PyShell.py | 7 ++++---
3 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt
--- a/Lib/idlelib/NEWS.txt
+++ b/Lib/idlelib/NEWS.txt
@@ -1,6 +1,8 @@
What's New in IDLE 3.2.4?
=========================
+- Issue #7163: Propagate return value of sys.stdout.write.
+
- Issue #15318: Prevent writing to sys.stdin.
- Issue #13532, #15319: Check that arguments to sys.stdout.write are strings.
diff --git a/Lib/idlelib/OutputWindow.py b/Lib/idlelib/OutputWindow.py
--- a/Lib/idlelib/OutputWindow.py
+++ b/Lib/idlelib/OutputWindow.py
@@ -40,6 +40,7 @@
self.text.insert(mark, s, tags)
self.text.see(mark)
self.text.update()
+ return len(s)
def writelines(self, lines):
for line in lines:
diff --git a/Lib/idlelib/PyShell.py b/Lib/idlelib/PyShell.py
--- a/Lib/idlelib/PyShell.py
+++ b/Lib/idlelib/PyShell.py
@@ -760,7 +760,7 @@
def write(self, s):
"Override base class method"
- self.tkconsole.stderr.write(s)
+ return self.tkconsole.stderr.write(s)
def display_port_binding_error(self):
tkMessageBox.showerror(
@@ -1229,7 +1229,7 @@
def write(self, s, tags=()):
try:
self.text.mark_gravity("iomark", "right")
- OutputWindow.write(self, s, tags, "iomark")
+ count = OutputWindow.write(self, s, tags, "iomark")
self.text.mark_gravity("iomark", "left")
except:
raise ###pass # ### 11Aug07 KBK if we are expecting exceptions
@@ -1238,6 +1238,7 @@
self.canceled = 0
if not use_subprocess:
raise KeyboardInterrupt
+ return count
class PseudoFile(object):
@@ -1249,7 +1250,7 @@
def write(self, s):
if not isinstance(s, str):
raise TypeError('must be str, not ' + type(s).__name__)
- self.shell.write(s, self.tags)
+ return self.shell.write(s, self.tags)
def writelines(self, lines):
for line in lines:
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list