[Python-checkins] CVS: python/dist/src/Objects fileobject.c,2.116,2.117
Guido van Rossum
gvanrossum@users.sourceforge.net
Thu, 09 Aug 2001 11:15:01 -0700
Update of /cvsroot/python/python/dist/src/Objects
In directory usw-pr-cvs1:/tmp/cvs-serv27522
Modified Files:
fileobject.c
Log Message:
Apply anonymous SF patch #441229.
Previously, f.read() and f.readlines() checked for
errors on their file object and possibly raised an
IOError, but f.readline() didn't. This patch makes
f.readline() behave like the others.
Note that I've added a call to clearerr() since the other calls to
ferror() include that too.
I have no way to test this code. :-)
Index: fileobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/fileobject.c,v
retrieving revision 2.116
retrieving revision 2.117
diff -C2 -d -r2.116 -r2.117
*** fileobject.c 2001/08/06 18:51:38 2.116
--- fileobject.c 2001/08/09 18:14:59 2.117
***************
*** 848,851 ****
--- 848,857 ----
break;
if (c == EOF) {
+ if (ferror(fp)) {
+ PyErr_SetFromErrno(PyExc_IOError);
+ clearerr(fp);
+ Py_DECREF(v);
+ return NULL;
+ }
clearerr(fp);
if (PyErr_CheckSignals()) {