summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorAntoine Pitrou <solipsis@pitrou.net>2010-07-21 16:47:28 (GMT)
committerAntoine Pitrou <solipsis@pitrou.net>2010-07-21 16:47:28 (GMT)
commit7a7013e8304a5e54782330fe91e96e510d63e72e (patch)
tree96455204410767ee2046b65699f9738afaa0bcbe /Modules
parent2f3379f978516aaa3719d56e0ea9d91aca3c6fcc (diff)
downloadcpython-7a7013e8304a5e54782330fe91e96e510d63e72e.zip
cpython-7a7013e8304a5e54782330fe91e96e510d63e72e.tar.gz
cpython-7a7013e8304a5e54782330fe91e96e510d63e72e.tar.bz2
Merged revisions 83030 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k ........ r83030 | antoine.pitrou | 2010-07-21 18:41:31 +0200 (mer., 21 juil. 2010) | 5 lines Issue #5395: check that array.fromfile() re-raises an IOError instead of replacing it with EOFError. (this is only an added test, but 2.x will get a fix too) ........
Diffstat (limited to 'Modules')
-rw-r--r--Modules/arraymodule.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/Modules/arraymodule.c b/Modules/arraymodule.c
index 403f646..5b37896 100644
--- a/Modules/arraymodule.c
+++ b/Modules/arraymodule.c
@@ -1228,8 +1228,14 @@ array_fromfile(arrayobject *self, PyObject *args)
PyMem_RESIZE(item, char, Py_SIZE(self)*itemsize);
self->ob_item = item;
self->allocated = Py_SIZE(self);
- PyErr_SetString(PyExc_EOFError,
- "not enough items in file");
+ if (ferror(fp)) {
+ PyErr_SetFromErrno(PyExc_IOError);
+ clearerr(fp);
+ }
+ else {
+ PyErr_SetString(PyExc_EOFError,
+ "not enough items in file");
+ }
return NULL;
}
}