On Fri, Sep 13, 2013 at 4:37 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > Which means people who do want to see that macro defined will be > broken after that section of the header file which unconditionally > undefs it, right? Right, but luckily you've fixed that in our proposed patch :-) > That is certainly better than the unconditional one, but I wonder if > it is an option to add compat/mingw/string.h without doing the > above, though. I don't like the idea of introducing a compat/mingw/string.h because of two reasons: You would have to add a conditional to include that string.h instead of the system one anyway, so we could just as well keep the conditional in git-compat-util.h along with the logic. And I don't like the include_next GCC-ism, especially as I was planning to take a look at compiling Git with LLVM / clang under Windows. So how about this: --- a/git-compat-util.h +++ b/git-compat-util.h @@ -85,6 +85,25 @@ #define _NETBSD_SOURCE 1 #define _SGI_SOURCE 1 +#ifdef __MINGW32__ +#ifdef __NO_INLINE__ +#define __NO_INLINE_ALREADY_DEFINED +#else +#define __NO_INLINE__ /* do not inline strcasecmp() */ +#endif +#endif +#include <string.h> +#ifdef __MINGW32__ +#ifdef __NO_INLINE_ALREADY_DEFINED +#undef __NO_INLINE_ALREADY_DEFINED +#else +#undef __NO_INLINE__ +#endif +#endif +#ifdef HAVE_STRINGS_H +#include <strings.h> /* for strcasecmp() */ +#endif + #ifdef WIN32 /* Both MinGW and MSVC */ #define _WIN32_WINNT 0x0502 #define WIN32_LEAN_AND_MEAN /* stops windows.h including winsock.h */ @@ -99,10 +118,6 @@ #include <stddef.h> #include <stdlib.h> #include <stdarg.h> -#include <string.h> -#ifdef HAVE_STRINGS_H -#include <strings.h> /* for strcasecmp() */ -#endif #include <errno.h> #include <limits.h> #ifdef NEEDS_SYS_PARAM_H -- Sebastian Schuberth -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html