[pypy-commit] pypy default: sync/port the cpython issue12802 fix from py3k to rpython proper
pjenvey
noreply at buildbot.pypy.org
Fri Jan 31 02:30:27 CET 2014
Author: Philip Jenvey <pjenvey at underboss.org>
Branch:
Changeset: r69030:724698bcb8ce
Date: 2014-01-30 15:39 -0800
http://bitbucket.org/pypy/pypy/changeset/724698bcb8ce/
Log: sync/port the cpython issue12802 fix from py3k to rpython proper
diff --git a/pypy/module/exceptions/interp_exceptions.py b/pypy/module/exceptions/interp_exceptions.py
--- a/pypy/module/exceptions/interp_exceptions.py
+++ b/pypy/module/exceptions/interp_exceptions.py
@@ -446,6 +446,9 @@
if hasattr(rwin32, 'build_winerror_to_errno'):
_winerror_to_errno, _default_errno = rwin32.build_winerror_to_errno()
+ # Python 2 doesn't map ERROR_DIRECTORY (267) to ENOTDIR but
+ # Python 3 (CPython issue #12802) and build_winerror_to_errno do
+ del _winerror_to_errno[267]
else:
_winerror_to_errno, _default_errno = {}, 22 # EINVAL
diff --git a/rpython/rlib/rwin32.py b/rpython/rlib/rwin32.py
--- a/rpython/rlib/rwin32.py
+++ b/rpython/rlib/rwin32.py
@@ -178,8 +178,13 @@
int i;
for(i=1; i < 65000; i++) {
_dosmaperr(i);
- if (errno == EINVAL)
- continue;
+ if (errno == EINVAL) {
+ /* CPython issue #12802 */
+ if (i == ERROR_DIRECTORY)
+ errno = ENOTDIR;
+ else
+ continue;
+ }
printf("%d\t%d\n", i, errno);
}
return 0;
@@ -201,7 +206,7 @@
132: 13, 145: 41, 158: 13, 161: 2, 164: 11, 167: 13, 183: 17,
188: 8, 189: 8, 190: 8, 191: 8, 192: 8, 193: 8, 194: 8,
195: 8, 196: 8, 197: 8, 198: 8, 199: 8, 200: 8, 201: 8,
- 202: 8, 206: 2, 215: 11, 1816: 12,
+ 202: 8, 206: 2, 215: 11, 267: 20, 1816: 12,
}
else:
output = os.popen(str(exename))
More information about the pypy-commit
mailing list