mercurial/win32.py
changeset 33419 7c33adc823e0
parent 32676 4c3d9ee87382
child 33492 14af04391fb9
equal deleted inserted replaced
33418:1f3b54f392b0 33419:7c33adc823e0
   210 _kernel32.PeekNamedPipe.argtypes = [_HANDLE, ctypes.c_void_p, _DWORD,
   210 _kernel32.PeekNamedPipe.argtypes = [_HANDLE, ctypes.c_void_p, _DWORD,
   211     ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p]
   211     ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p]
   212 _kernel32.PeekNamedPipe.restype = _BOOL
   212 _kernel32.PeekNamedPipe.restype = _BOOL
   213 
   213 
   214 def _raiseoserror(name):
   214 def _raiseoserror(name):
   215     err = ctypes.WinError()
   215     # Force the code to a signed int to avoid an 'int too large' error.
       
   216     # See https://bugs.python.org/issue28474
       
   217     code = _kernel32.GetLastError()
       
   218     if code > 0x7fffffff:
       
   219         code -= 2**32
       
   220     err = ctypes.WinError(code=code)
   216     raise OSError(err.errno, '%s: %s' % (name, err.strerror))
   221     raise OSError(err.errno, '%s: %s' % (name, err.strerror))
   217 
   222 
   218 def _getfileinfo(name):
   223 def _getfileinfo(name):
   219     fh = _kernel32.CreateFileA(name, 0,
   224     fh = _kernel32.CreateFileA(name, 0,
   220             _FILE_SHARE_READ | _FILE_SHARE_WRITE | _FILE_SHARE_DELETE,
   225             _FILE_SHARE_READ | _FILE_SHARE_WRITE | _FILE_SHARE_DELETE,