| #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"); | |
| } |