| #include <windows.h> |
| #include <fcntl.h> |
| #include <io.h> |
| #include <stdio.h> |
| #include <errno.h> |
| |
| /* Extract the mapping of Win32 error codes to errno */ |
| |
| int main() |
| { |
| int i; |
| _setmode(fileno(stdout), O_BINARY); |
| printf("/* Generated file. Do not edit. */\n"); |
| printf("int winerror_to_errno(int winerror)\n"); |
| printf("{\n switch(winerror) {\n"); |
| for(i=1; i < 65000; i++) { |
| _dosmaperr(i); |
| if (errno == EINVAL) { |
| /* Issue #12802 */ |
| if (i == ERROR_DIRECTORY) |
| errno = ENOTDIR; |
| /* Issue #13063 */ |
| else if (i == ERROR_NO_DATA) |
| errno = EPIPE; |
| else |
| continue; |
| } |
| printf(" case %d: return %d;\n", i, errno); |
| } |
| printf(" default: return EINVAL;\n"); |
| printf(" }\n}\n"); |
| } |