author | Erik Faye-Lund <kusmabite@gmail.com> | |
Tue, 23 Nov 2010 18:38:29 +0000 (19:38 +0100) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Wed, 24 Nov 2010 00:06:50 +0000 (16:06 -0800) | ||
commit | d1b6e6e015501272c7491b3a4adf3cd3904edefa | |
tree | b93cb52156b48591fe6ea5d873528cc9186f8c09 | tree | snapshot |
parent | e7772600e94146ddbf5ef6b08d0ea7d6fc8fbcad | commit | diff |
win32: use our own dirent.h
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>
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>
Makefile | diff | blob | history | |
compat/mingw.c | diff | blob | history | |
compat/mingw.h | diff | blob | history | |
compat/msvc.c | diff | blob | history | |
compat/vcbuild/include/dirent.h | [deleted file] | blob | history |
compat/win32/dirent.c | [new file with mode: 0644] | blob |
compat/win32/dirent.h | [new file with mode: 0644] | blob |