summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVicent Marti <vicent@github.com>2014-07-11 16:51:43 +0200
committerVicent Marti <vicent@github.com>2014-07-11 16:51:43 +0200
commita6d7e166344cb0d9aa5ecca037a975f9f19e64f1 (patch)
tree9b168cabda8547388d976c793e38e3e25fe2411f
parent44cfb6f387555722e84b0997ecff4718b40dd23f (diff)
parent59ceb432f310de9f26b368ae1b8cdee395e52a50 (diff)
downloadlibgit2-a6d7e166344cb0d9aa5ecca037a975f9f19e64f1.tar.gz
Merge pull request #2466 from jacquesg/win2003-platform-sdk
Windows compatibility fixes
-rw-r--r--src/netops.c1
-rw-r--r--src/strnlen.h3
-rw-r--r--src/trace.h10
-rw-r--r--src/util.c3
-rw-r--r--src/win32/msvc-compat.h4
-rw-r--r--src/win32/posix.h2
-rw-r--r--src/win32/posix_w32.c8
7 files changed, 23 insertions, 8 deletions
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 <netinet/in.h>
# include <arpa/inet.h>
#else
+# include <winsock2.h>
# include <ws2tcpip.h>
# 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