--- a/mercurial/pure/osutil.py Wed Jul 17 10:40:40 2013 -0400
+++ b/mercurial/pure/osutil.py Fri Jul 12 11:14:42 2013 +0900
@@ -59,6 +59,7 @@
posixfile = open
else:
import ctypes, msvcrt
+ from errno import ESRCH, ENOENT
_kernel32 = ctypes.windll.kernel32
@@ -98,7 +99,14 @@
def _raiseioerror(name):
err = ctypes.WinError()
- raise IOError(err.errno, '%s: %s' % (name, err.strerror))
+ # For python 2.4, treat ESRCH as ENOENT like WindowsError does
+ # in python 2.5 or later.
+ # py24: WindowsError(3, '').errno => 3
+ # py25 or later: WindowsError(3, '').errno => 2
+ errno = err.errno
+ if errno == ESRCH:
+ errno = ENOENT
+ raise IOError(errno, '%s: %s' % (name, err.strerror))
class posixfile(object):
'''a file object aiming for POSIX-like semantics