Mercurial > cpython-lru_cache-weakref
diff Python/pythonrun.c @ 51082:14c3ab9bd706 3.0
Merged revisions 68977,68981 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r68977 | antoine.pitrou | 2009-01-26 22:48:00 +0100 (lun., 26 janv. 2009) | 3 lines
Followup of #4705: we can't skip the binary buffering layer for stdin because FileIO doesn't have a read1() method
........
r68981 | antoine.pitrou | 2009-01-26 23:00:21 +0100 (lun., 26 janv. 2009) | 3 lines
Fix test so as to also pass in debug mode
........
| author | Antoine Pitrou <solipsis@pitrou.net> |
|---|---|
| date | Mon, 26 Jan 2009 22:03:09 +0000 |
| parents | 9c2bd647b646 |
| children | fa3b2ed20d85 8fe2988cf550 |
line wrap: on
line diff
--- a/Python/pythonrun.c Mon Jan 26 17:25:44 2009 +0000 +++ b/Python/pythonrun.c Mon Jan 26 22:03:09 2009 +0000 @@ -739,7 +739,12 @@ PyObject *line_buffering; int buffering, isatty; - if (Py_UnbufferedStdioFlag) + /* stdin is always opened in buffered mode, first because it shouldn't + make a difference in common use cases, second because TextIOWrapper + depends on the presence of a read1() method which only exists on + buffered streams. + */ + if (Py_UnbufferedStdioFlag && write_mode) buffering = 0; else buffering = -1; @@ -753,7 +758,7 @@ if (buf == NULL) goto error; - if (!Py_UnbufferedStdioFlag) { + if (buffering) { raw = PyObject_GetAttrString(buf, "raw"); if (raw == NULL) goto error;
