[issue11395] print(s) fails on Windows with long strings

Amaury Forgeot d'Arc report at bugs.python.org
Fri Mar 4 13:31:41 CET 2011


Amaury Forgeot d'Arc <amauryfa at gmail.com> added the comment:

It may be a windows bug, but it's also an a python regression!
A fix is to limit the number of chars:

===================================================================
--- D:/py3k/Modules/_io/fileio.c   (revision 87824)
+++ D:/py3k/Modules/_io/fileio.c   (copie de travail)
@@ -712,6 +712,8 @@
         errno = 0;
         len = pbuf.len;
 #if defined(MS_WIN64) || defined(MS_WINDOWS)
+        if (len > 32000 && isatty(self->fd))
+            len = 32000;
         if (len > INT_MAX)
             len = INT_MAX;
         n = write(self->fd, pbuf.buf, (int)len);

On my system, errors start at ~52200 (why?). I hope that 32K is low enough... MSVCRT's write() (version vs10.0) uses a buffer of 5K.

----------

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue11395>
_______________________________________


More information about the Python-bugs-list mailing list