diff options
Diffstat (limited to 'compat')
-rw-r--r-- | compat/clipped-write.c | 13 | ||||
-rw-r--r-- | compat/cygwin.c | 5 | ||||
-rw-r--r-- | compat/mingw.c | 4 | ||||
-rw-r--r-- | compat/terminal.c | 4 | ||||
-rw-r--r-- | compat/win32.h | 2 |
5 files changed, 19 insertions, 9 deletions
diff --git a/compat/clipped-write.c b/compat/clipped-write.c new file mode 100644 index 000000000..b8f98ff77 --- /dev/null +++ b/compat/clipped-write.c @@ -0,0 +1,13 @@ +#include "../git-compat-util.h" +#undef write + +/* + * Version of write that will write at most INT_MAX bytes. + * Workaround a xnu bug on Mac OS X + */ +ssize_t clipped_write(int fildes, const void *buf, size_t nbyte) +{ + if (nbyte > INT_MAX) + nbyte = INT_MAX; + return write(fildes, buf, nbyte); +} diff --git a/compat/cygwin.c b/compat/cygwin.c index 871b41d23..91ce5d4c7 100644 --- a/compat/cygwin.c +++ b/compat/cygwin.c @@ -1,14 +1,9 @@ #define CYGWIN_C #define WIN32_LEAN_AND_MEAN -#ifdef CYGWIN_V15_WIN32API -#include "../git-compat-util.h" -#include "win32.h" -#else #include <sys/stat.h> #include <sys/errno.h> #include "win32.h" #include "../git-compat-util.h" -#endif #include "../cache.h" /* to read configuration */ /* diff --git a/compat/mingw.c b/compat/mingw.c index b295e2f6a..bb92c436f 100644 --- a/compat/mingw.c +++ b/compat/mingw.c @@ -1677,14 +1677,16 @@ int sigaction(int sig, struct sigaction *in, struct sigaction *out) #undef signal sig_handler_t mingw_signal(int sig, sig_handler_t handler) { - sig_handler_t old = timer_fn; + sig_handler_t old; switch (sig) { case SIGALRM: + old = timer_fn; timer_fn = handler; break; case SIGINT: + old = sigint_fn; sigint_fn = handler; break; diff --git a/compat/terminal.c b/compat/terminal.c index 9b5e3d1bb..313897d58 100644 --- a/compat/terminal.c +++ b/compat/terminal.c @@ -3,7 +3,7 @@ #include "sigchain.h" #include "strbuf.h" -#if defined(HAVE_DEV_TTY) || defined(WIN32) +#if defined(HAVE_DEV_TTY) || defined(GIT_WINDOWS_NATIVE) static void restore_term(void); @@ -53,7 +53,7 @@ error: return -1; } -#elif defined(WIN32) +#elif defined(GIT_WINDOWS_NATIVE) #define INPUT_PATH "CONIN$" #define OUTPUT_PATH "CONOUT$" diff --git a/compat/win32.h b/compat/win32.h index 8ce91048d..a97e88075 100644 --- a/compat/win32.h +++ b/compat/win32.h @@ -2,7 +2,7 @@ #define WIN32_H /* common Win32 functions for MinGW and Cygwin */ -#ifndef WIN32 /* Not defined by Cygwin */ +#ifndef GIT_WINDOWS_NATIVE /* Not defined for Cygwin */ #include <windows.h> #endif |