Merge branch 'mr/compat-snprintf'
authorJunio C Hamano <gitster@pobox.com>
Sun, 9 Mar 2008 05:29:50 +0000 (21:29 -0800)
committerJunio C Hamano <gitster@pobox.com>
Sun, 9 Mar 2008 05:29:50 +0000 (21:29 -0800)
* mr/compat-snprintf:
Add compat/snprintf.c for systems that return bogus

1  2 
Makefile
git-compat-util.h
diff --combined Makefile
index 6e857e62c3d02fa2bfef7b9224e24d5b6a279c9c,6af71328530accdc0246ba9ec3cf93a62af0d6cf..7fbb81578264e47c83857e864e58b32c4f81a5fa
+++ b/Makefile
@@@ -3,6 -3,10 +3,10 @@@ all:
  
  # Define V=1 to have a more verbose compile.
  #
+ # Define SNPRINTF_RETURNS_BOGUS if your are on a system which snprintf()
+ # or vsnprintf() return -1 instead of number of characters which would
+ # have been written to the final string if enough space had been available.
+ #
  # Define FREAD_READS_DIRECTORIES if your are on a system which succeeds
  # when attempting to read from an fopen'ed directory.
  #
@@@ -478,7 -482,6 +482,7 @@@ ifeq ($(uname_S),FreeBSD
        NO_MEMMEM = YesPlease
        BASIC_CFLAGS += -I/usr/local/include
        BASIC_LDFLAGS += -L/usr/local/lib
 +      DIR_HAS_BSD_GROUP_SEMANTICS = YesPlease
  endif
  ifeq ($(uname_S),OpenBSD)
        NO_STRCASESTR = YesPlease
@@@ -630,6 -633,10 +634,10 @@@ endi
  ifdef NO_C99_FORMAT
        BASIC_CFLAGS += -DNO_C99_FORMAT
  endif
+ ifdef SNPRINTF_RETURNS_BOGUS
+       COMPAT_CFLAGS += -DSNPRINTF_RETURNS_BOGUS
+       COMPAT_OBJS += compat/snprintf.o
+ endif
  ifdef FREAD_READS_DIRECTORIES
        COMPAT_CFLAGS += -DFREAD_READS_DIRECTORIES
        COMPAT_OBJS += compat/fopen.o
@@@ -748,9 -755,6 +756,9 @@@ ifdef THREADED_DELTA_SEARC
        EXTLIBS += -lpthread
        LIB_OBJS += thread-utils.o
  endif
 +ifdef DIR_HAS_BSD_GROUP_SEMANTICS
 +      COMPAT_CFLAGS += -DDIR_HAS_BSD_GROUP_SEMANTICS
 +endif
  
  ifeq ($(TCLTK_PATH),)
  NO_TCLTK=NoThanks
diff --combined git-compat-util.h
index 591244351ec4e410ea3b7f891d0de2f33a5aff7a,9d04faefb8c88c1ab7b2e80b57679374c684d102..73968e02b024f22068eb5500033f7a2f41d31e8f
@@@ -209,6 -209,15 +209,15 @@@ void *gitmemmem(const void *haystack, s
  extern FILE *git_fopen(const char*, const char*);
  #endif
  
+ #ifdef SNPRINTF_RETURNS_BOGUS
+ #define snprintf git_snprintf
+ extern int git_snprintf(char *str, size_t maxsize,
+                       const char *format, ...);
+ #define vsnprintf git_vsnprintf
+ extern int git_vsnprintf(char *str, size_t maxsize,
+                        const char *format, va_list ap);
+ #endif
  #ifdef __GLIBC_PREREQ
  #if __GLIBC_PREREQ(2, 1)
  #define HAVE_STRCHRNUL
@@@ -437,10 -446,4 +446,10 @@@ void git_qsort(void *base, size_t nmemb
  #define qsort git_qsort
  #endif
  
 +#ifndef DIR_HAS_BSD_GROUP_SEMANTICS
 +# define FORCE_DIR_SET_GID S_ISGID
 +#else
 +# define FORCE_DIR_SET_GID 0
 +#endif
 +
  #endif