mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			32 lines
		
	
	
	
		
			849 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
	
		
			849 B
		
	
	
	
		
			C
		
	
	
	
	
	
#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");
 | 
						|
}
 |