Richard Oudkerk <shibt...@gmail.com> added the comment:

> the errno codes (EAGAIN etc) are provided only as a compatibility for 
> posix apps that test "errno".  On windows, we use the WSA return values 
> from the api functions and WsaGetLastError().
> ...
> So, the proposed patch is not a change, it is merely reinforcing the 
> previous practice of prefering the native error codes over the 'errno' 
> emulation.

Except that Microsoft's C library also uses some of the non-WSA versions.  For 
instance read() (or _read()) is documented to set errno to EBADF or EINVAL on 
error.  So EBADF and EINVAL are just as "native" as WSAEBADF and WSAEINVAL.

It is also quite common for python's C code to do stuff like

    errno = EINVAL;
    PyErr_SetFromErrno(PyExc_OSError);

errnomap in Objects/exceptions.c is used to convert some OSError exceptions to 
subclasses like PermissionError.  It shouldn't be hard to use it to also 
convert WSAEINVAL to EINVAL etc.

----------
nosy: +sbt

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue13210>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to