From ec42eafd4adea021d86c6fa2cbde92b87177bf3d Mon Sep 17 00:00:00 2001 From: "Scott J. Goldman" Date: Wed, 9 May 2012 22:30:57 -0700 Subject: [PATCH] Hook up Windows compat fnmatch() for Solaris Since Solaris does not support some of the same flags as glibc fnmatch(), we just use the implementation we have for Windows. Now that it's no longer a windows-specific thing, I moved it into compat/ instead of win32/ --- CMakeLists.txt | 4 +++- src/{win32 => compat}/fnmatch.c | 0 src/{win32 => compat}/fnmatch.h | 4 ++-- src/unix/posix.h | 8 ++++++-- src/win32/posix.h | 2 +- 5 files changed, 12 insertions(+), 6 deletions(-) rename src/{win32 => compat}/fnmatch.c (100%) rename src/{win32 => compat}/fnmatch.h (91%) diff --git a/CMakeLists.txt b/CMakeLists.txt index fbc222d5c..ff2514a2a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -97,7 +97,9 @@ FILE(GLOB SRC_H include/git2/*.h) # On Windows use specific platform sources IF (WIN32 AND NOT CYGWIN) ADD_DEFINITIONS(-DWIN32 -D_DEBUG -D_WIN32_WINNT=0x0501) - FILE(GLOB SRC src/*.c src/transports/*.c src/xdiff/*.c src/win32/*.c) + FILE(GLOB SRC src/*.c src/transports/*.c src/xdiff/*.c src/win32/*.c src/compat/*.c) +ELSEIF (CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)") + FILE(GLOB SRC src/*.c src/transports/*.c src/xdiff/*.c src/unix/*.c src/compat/*.c) ELSE() FILE(GLOB SRC src/*.c src/transports/*.c src/xdiff/*.c src/unix/*.c) ENDIF () diff --git a/src/win32/fnmatch.c b/src/compat/fnmatch.c similarity index 100% rename from src/win32/fnmatch.c rename to src/compat/fnmatch.c diff --git a/src/win32/fnmatch.h b/src/compat/fnmatch.h similarity index 91% rename from src/win32/fnmatch.h rename to src/compat/fnmatch.h index eb7c5f6f7..7faef09b3 100644 --- a/src/win32/fnmatch.h +++ b/src/compat/fnmatch.h @@ -4,8 +4,8 @@ * This file is part of libgit2, distributed under the GNU GPL v2 with * a Linking Exception. For full terms see the included COPYING file. */ -#ifndef INCLUDE_fnmatch__w32_h__ -#define INCLUDE_fnmatch__w32_h__ +#ifndef INCLUDE_fnmatch__compat_h__ +#define INCLUDE_fnmatch__compat_h__ #include "common.h" diff --git a/src/unix/posix.h b/src/unix/posix.h index 9973acf30..6d0d0dfa6 100644 --- a/src/unix/posix.h +++ b/src/unix/posix.h @@ -7,7 +7,12 @@ #ifndef INCLUDE_posix__w32_h__ #define INCLUDE_posix__w32_h__ -#include +#ifndef __sun +# include +# define p_fnmatch(p, s, f) fnmatch(p, s, f) +#else +# include "compat/fnmatch.h" +#endif #define p_lstat(p,b) lstat(p,b) #define p_readlink(a, b, c) readlink(a, b, c) @@ -16,7 +21,6 @@ #define p_mkdir(p,m) mkdir(p, m) #define p_fsync(fd) fsync(fd) #define p_realpath(p, po) realpath(p, po) -#define p_fnmatch(p, s, f) fnmatch(p, s, f) #define p_vsnprintf(b, c, f, a) vsnprintf(b, c, f, a) #define p_snprintf(b, c, f, ...) snprintf(b, c, f, __VA_ARGS__) #define p_mkstemp(p) mkstemp(p) diff --git a/src/win32/posix.h b/src/win32/posix.h index 2666fccb4..baa4a3b4e 100644 --- a/src/win32/posix.h +++ b/src/win32/posix.h @@ -8,7 +8,7 @@ #define INCLUDE_posix__w32_h__ #include "common.h" -#include "fnmatch.h" +#include "compat/fnmatch.h" #include "utf-conv.h" GIT_INLINE(int) p_link(const char *old, const char *new)