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;