diff --git a/src/netops.c b/src/netops.c index 8a60299c2..fceb4fb74 100644 --- a/src/netops.c +++ b/src/netops.c @@ -13,6 +13,7 @@ # include # include #else +# include # include # ifdef _MSC_VER # pragma comment(lib, "ws2_32") diff --git a/src/strnlen.h b/src/strnlen.h index fdd7fe39c..eecfe3c02 100644 --- a/src/strnlen.h +++ b/src/strnlen.h @@ -7,7 +7,8 @@ #ifndef INCLUDE_strlen_h__ #define INCLUDE_strlen_h__ -#if defined(__MINGW32__) || defined(__sun) || defined(__APPLE__) || defined(__MidnightBSD__) +#if defined(__MINGW32__) || defined(__sun) || defined(__APPLE__) || defined(__MidnightBSD__) ||\ + (defined(_MSC_VER) && _MSC_VER < 1500) # define NO_STRNLEN #endif diff --git a/src/trace.h b/src/trace.h index 4d4e3bf53..486084d01 100644 --- a/src/trace.h +++ b/src/trace.h @@ -46,8 +46,16 @@ GIT_INLINE(void) git_trace__write_fmt( #else +GIT_INLINE(void) git_trace__null( + git_trace_level_t level, + const char *fmt, ...) +{ + GIT_UNUSED(level); + GIT_UNUSED(fmt); +} + #define git_trace_level() ((void)0) -#define git_trace(lvl, ...) ((void)0) +#define git_trace git_trace__null #endif diff --git a/src/util.c b/src/util.c index f9d37e4f4..5c305950f 100644 --- a/src/util.c +++ b/src/util.c @@ -613,7 +613,8 @@ void git__qsort_r( defined(__OpenBSD__) || defined(__NetBSD__) || \ defined(__gnu_hurd__) || defined(__ANDROID_API__) || \ defined(__sun) || defined(__CYGWIN__) || \ - (__GLIBC__ == 2 && __GLIBC_MINOR__ < 8) + (__GLIBC__ == 2 && __GLIBC_MINOR__ < 8) || \ + (defined(_MSC_VER) && _MSC_VER < 1500) git__insertsort_r(els, nel, elsize, NULL, cmp, payload); #elif defined(GIT_WIN32) git__qsort_r_glue glue = { cmp, payload }; diff --git a/src/win32/msvc-compat.h b/src/win32/msvc-compat.h index 50865ed17..fa4e2912c 100644 --- a/src/win32/msvc-compat.h +++ b/src/win32/msvc-compat.h @@ -15,7 +15,7 @@ # define R_OK 4 /* read mode check */ # define lseek _lseeki64 -# define stat _stat64 +# define stat __stat64 # define fstat _fstat64 /* stat: file mode type testing macros */ @@ -38,7 +38,7 @@ typedef SSIZE_T ssize_t; /* define snprintf using variadic macro support if available */ -#if _MSC_VER >= 1400 +#if _MSC_VER >= 1500 # define snprintf(BUF, SZ, FMT, ...) _snprintf_s(BUF, SZ, _TRUNCATE, FMT, __VA_ARGS__) #else # define snprintf _snprintf diff --git a/src/win32/posix.h b/src/win32/posix.h index 2cbea1807..22ea6a531 100644 --- a/src/win32/posix.h +++ b/src/win32/posix.h @@ -19,7 +19,7 @@ # define EAFNOSUPPORT (INT_MAX-1) #endif -#ifdef _MSC_VER +#if defined(_MSC_VER) && _MSC_VER >= 1500 # define p_ftruncate(fd, sz) _chsize_s(fd, sz) #else /* MinGW */ # define p_ftruncate(fd, sz) _chsize(fd, sz) diff --git a/src/win32/posix_w32.c b/src/win32/posix_w32.c index fbadb1c9e..a74fcaad1 100644 --- a/src/win32/posix_w32.c +++ b/src/win32/posix_w32.c @@ -19,6 +19,10 @@ # define FILE_NAME_NORMALIZED 0 #endif +#ifndef IO_REPARSE_TAG_SYMLINK +#define IO_REPARSE_TAG_SYMLINK (0xA000000CL) +#endif + /* Options which we always provide to _wopen. * * _O_BINARY - Raw access; no translation of CR or LF characters @@ -543,7 +547,7 @@ char *p_realpath(const char *orig_path, char *buffer) int p_vsnprintf(char *buffer, size_t count, const char *format, va_list argptr) { -#ifdef _MSC_VER +#if defined(_MSC_VER) && _MSC_VER >= 1500 int len; if (count == 0 || @@ -570,7 +574,7 @@ int p_snprintf(char *buffer, size_t count, const char *format, ...) int p_mkstemp(char *tmp_path) { -#if defined(_MSC_VER) +#if defined(_MSC_VER) && _MSC_VER >= 1500 if (_mktemp_s(tmp_path, strlen(tmp_path) + 1) != 0) return -1; #else