 d1b6e6e015
			
		
	
	d1b6e6e015
	
	
	
		
			
			The mingw-runtime implemenation of opendir, readdir and closedir
sets errno to 0 on success, something that POSIX explicitly
forbids. 3ba7a06 ("A loose object is not corrupt if it cannot be
read due to EMFILE") introduce a dependency on this behaviour,
leading to a broken "git clone" on Windows.
compat/mingw.c contains an implementation of readdir, and
compat/msvc.c contains implementations of opendir and closedir.
Move these to compat/win32/dirent.[ch], and change to our own DIR
structure at the same time.
This provides a generic Win32-implementation of opendir, readdir
and closedir which works on both MinGW and MSVC and does not reset
errno, and as a result git clone is working again on Windows.
Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
	
		
			
				
	
	
		
			7 lines
		
	
	
		
			113 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			7 lines
		
	
	
		
			113 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #include "../git-compat-util.h"
 | |
| #include "win32.h"
 | |
| #include <conio.h>
 | |
| #include "../strbuf.h"
 | |
| 
 | |
| #include "mingw.c"
 |