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