summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHirokazu Yamamoto <ocean-city@m2.ccsnet.ne.jp>2009-01-01 16:03:45 +0000
committerHirokazu Yamamoto <ocean-city@m2.ccsnet.ne.jp>2009-01-01 16:03:45 +0000
commit0f22d69cf6cb5e1bcf7aab4a81836c466a88ec86 (patch)
treeacc9f24c5582801ba63f5b56abe0a00aad7d9b3b
parent646d9a20b99c4c285ea09064cb151e5e2f24c86c (diff)
downloadcpython-git-0f22d69cf6cb5e1bcf7aab4a81836c466a88ec86.tar.gz
Merged revisions 68134 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r68134 | hirokazu.yamamoto | 2009-01-02 00:45:39 +0900 | 2 lines Issue #4797: IOError.filename was not set when _fileio.FileIO failed to open file with `str' filename on Windows. ........
-rw-r--r--Misc/NEWS3
-rw-r--r--Modules/_fileio.c7
2 files changed, 7 insertions, 3 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index 30668e67c1..c97dacadb0 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,9 @@ What's New in Python 3.1 alpha 0
Core and Builtins
-----------------
+- Issue #4797: IOError.filename was not set when _fileio.FileIO failed to open
+ file with `str' filename on Windows.
+
- Issue #3680: Reference cycles created through a dict, set or deque iterator
did not get collected.
diff --git a/Modules/_fileio.c b/Modules/_fileio.c
index c36a5de1c9..8579e4e60b 100644
--- a/Modules/_fileio.c
+++ b/Modules/_fileio.c
@@ -284,10 +284,11 @@ fileio_init(PyObject *oself, PyObject *args, PyObject *kwds)
Py_END_ALLOW_THREADS
if (self->fd < 0) {
#ifdef MS_WINDOWS
- PyErr_SetFromErrnoWithUnicodeFilename(PyExc_IOError, widename);
-#else
- PyErr_SetFromErrnoWithFilename(PyExc_IOError, name);
+ if (widename != NULL)
+ PyErr_SetFromErrnoWithUnicodeFilename(PyExc_IOError, widename);
+ else
#endif
+ PyErr_SetFromErrnoWithFilename(PyExc_IOError, name);
goto error;
}
if(dircheck(self, name) < 0)