Merge branch 'da/pretty-tempname'
authorJunio C Hamano <gitster@pobox.com>
Wed, 3 Jun 2009 07:50:05 +0000 (00:50 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 3 Jun 2009 07:50:05 +0000 (00:50 -0700)
* da/pretty-tempname:
diff: generate pretty filenames in prep_temp_blob()
compat: add a basename() compatibility function
compat: add a mkstemps() compatibility function

Conflicts:
Makefile

1  2 
Makefile
git-compat-util.h
diff --combined Makefile
index 0ab1cff30de7b3cc745ce79acca4a3f7cfbd1977,a59f10687bd158757422809ad20022d84ead9b9a..06c39e449d17e8170e2e387caefd51b16ab15e55
+++ b/Makefile
@@@ -52,6 -52,10 +52,10 @@@ all:
  #
  # Define NO_MKDTEMP if you don't have mkdtemp in the C library.
  #
+ # Define NO_MKSTEMPS if you don't have mkstemps in the C library.
+ #
+ # Define NO_LIBGEN_H if you don't have libgen.h.
+ #
  # Define NO_SYS_SELECT_H if you don't have sys/select.h.
  #
  # Define NO_SYMLINK_HEAD if you never want .git/HEAD to be a symbolic link.
@@@ -336,6 -340,7 +340,6 @@@ PROGRAMS += git-index-pack$
  PROGRAMS += git-merge-index$X
  PROGRAMS += git-merge-tree$X
  PROGRAMS += git-mktag$X
 -PROGRAMS += git-mktree$X
  PROGRAMS += git-pack-redundant$X
  PROGRAMS += git-patch-id$X
  PROGRAMS += git-shell$X
@@@ -589,7 -594,6 +593,7 @@@ BUILTIN_OBJS += builtin-merge-base.
  BUILTIN_OBJS += builtin-merge-file.o
  BUILTIN_OBJS += builtin-merge-ours.o
  BUILTIN_OBJS += builtin-merge-recursive.o
 +BUILTIN_OBJS += builtin-mktree.o
  BUILTIN_OBJS += builtin-mv.o
  BUILTIN_OBJS += builtin-name-rev.o
  BUILTIN_OBJS += builtin-pack-objects.o
@@@ -636,10 -640,12 +640,12 @@@ EXTLIBS 
  
  ifeq ($(uname_S),Linux)
        NO_STRLCPY = YesPlease
+       NO_MKSTEMPS = YesPlease
        THREADED_DELTA_SEARCH = YesPlease
  endif
  ifeq ($(uname_S),GNU/kFreeBSD)
        NO_STRLCPY = YesPlease
+       NO_MKSTEMPS = YesPlease
        THREADED_DELTA_SEARCH = YesPlease
  endif
  ifeq ($(uname_S),UnixWare)
        SHELL_PATH = /usr/local/bin/bash
        NO_IPV6 = YesPlease
        NO_HSTRERROR = YesPlease
+       NO_MKSTEMPS = YesPlease
        BASIC_CFLAGS += -Kthread
        BASIC_CFLAGS += -I/usr/local/include
        BASIC_LDFLAGS += -L/usr/local/lib
@@@ -674,6 -681,7 +681,7 @@@ ifeq ($(uname_S),SCO_SV
        SHELL_PATH = /usr/bin/bash
        NO_IPV6 = YesPlease
        NO_HSTRERROR = YesPlease
+       NO_MKSTEMPS = YesPlease
        BASIC_CFLAGS += -I/usr/local/include
        BASIC_LDFLAGS += -L/usr/local/lib
        NO_STRCASESTR = YesPlease
@@@ -702,9 -710,8 +710,10 @@@ ifeq ($(uname_S),SunOS
        NO_MEMMEM = YesPlease
        NO_HSTRERROR = YesPlease
        NO_MKDTEMP = YesPlease
 -      OLD_ICONV = UnfortunatelyYes
+       NO_MKSTEMPS = YesPlease
 +      ifneq ($(uname_R),5.11)
 +              OLD_ICONV = UnfortunatelyYes
 +      endif
        ifeq ($(uname_R),5.8)
                NO_UNSETENV = YesPlease
                NO_SETENV = YesPlease
@@@ -726,6 -733,7 +735,7 @@@ ifeq ($(uname_O),Cygwin
        NO_D_INO_IN_DIRENT = YesPlease
        NO_STRCASESTR = YesPlease
        NO_MEMMEM = YesPlease
+       NO_MKSTEMPS = YesPlease
        NO_SYMLINK_HEAD = YesPlease
        NEEDS_LIBICONV = YesPlease
        NO_FAST_WORKING_DIRECTORY = UnfortunatelyYes
@@@ -769,11 -777,13 +779,13 @@@ ifeq ($(uname_S),NetBSD
        BASIC_LDFLAGS += -L/usr/pkg/lib $(CC_LD_DYNPATH)/usr/pkg/lib
        THREADED_DELTA_SEARCH = YesPlease
        USE_ST_TIMESPEC = YesPlease
+       NO_MKSTEMPS = YesPlease
  endif
  ifeq ($(uname_S),AIX)
        NO_STRCASESTR=YesPlease
        NO_MEMMEM = YesPlease
        NO_MKDTEMP = YesPlease
+       NO_MKSTEMPS = YesPlease
        NO_STRLCPY = YesPlease
        NO_NSEC = YesPlease
        FREAD_READS_DIRECTORIES = UnfortunatelyYes
@@@ -789,12 -799,14 +801,14 @@@ endi
  ifeq ($(uname_S),GNU)
        # GNU/Hurd
        NO_STRLCPY=YesPlease
+       NO_MKSTEMPS = YesPlease
  endif
  ifeq ($(uname_S),IRIX64)
        NO_IPV6=YesPlease
        NO_SETENV=YesPlease
        NO_STRCASESTR=YesPlease
        NO_MEMMEM = YesPlease
+       NO_MKSTEMPS = YesPlease
        NO_STRLCPY = YesPlease
        NO_SOCKADDR_STORAGE=YesPlease
        SHELL_PATH=/usr/gnu/bin/bash
@@@ -807,6 -819,7 +821,7 @@@ ifeq ($(uname_S),HP-UX
        NO_SETENV=YesPlease
        NO_STRCASESTR=YesPlease
        NO_MEMMEM = YesPlease
+       NO_MKSTEMPS = YesPlease
        NO_STRLCPY = YesPlease
        NO_MKDTEMP = YesPlease
        NO_UNSETENV = YesPlease
@@@ -823,6 -836,7 +838,7 @@@ ifneq (,$(findstring MINGW,$(uname_S))
        NO_PREAD = YesPlease
        NO_OPENSSL = YesPlease
        NO_CURL = YesPlease
+       NO_LIBGEN_H = YesPlease
        NO_SYMLINK_HEAD = YesPlease
        NO_IPV6 = YesPlease
        NO_SETENV = YesPlease
        NO_C99_FORMAT = YesPlease
        NO_STRTOUMAX = YesPlease
        NO_MKDTEMP = YesPlease
+       NO_MKSTEMPS = YesPlease
        SNPRINTF_RETURNS_BOGUS = YesPlease
        NO_SVN_TESTS = YesPlease
        NO_PERL_MAKEMAKER = YesPlease
  endif
  ifneq (,$(findstring arm,$(uname_M)))
        ARM_SHA1 = YesPlease
+       NO_MKSTEMPS = YesPlease
  endif
  
  -include config.mak.autogen
@@@ -886,6 -902,11 +904,11 @@@ ifndef CC_LD_DYNPAT
        endif
  endif
  
+ ifdef NO_LIBGEN_H
+       COMPAT_CFLAGS += -DNO_LIBGEN_H
+       COMPAT_OBJS += compat/basename.o
+ endif
  ifdef NO_CURL
        BASIC_CFLAGS += -DNO_CURL
  else
@@@ -1013,6 -1034,10 +1036,10 @@@ ifdef NO_MKDTEM
        COMPAT_CFLAGS += -DNO_MKDTEMP
        COMPAT_OBJS += compat/mkdtemp.o
  endif
+ ifdef NO_MKSTEMPS
+       COMPAT_CFLAGS += -DNO_MKSTEMPS
+       COMPAT_OBJS += compat/mkstemps.o
+ endif
  ifdef NO_UNSETENV
        COMPAT_CFLAGS += -DNO_UNSETENV
        COMPAT_OBJS += compat/unsetenv.o
diff --combined git-compat-util.h
index 4236647c91a6ec554b03b1f238630a77444e6190,71445c6aac392c2ca43edc4e6b16780f0bf75e2b..f25f7f1a9eda48477485c2406402a0a06fd9c8e3
  
  #if !defined(__APPLE__) && !defined(__FreeBSD__)  && !defined(__USLC__) && !defined(_M_UNIX)
  #define _XOPEN_SOURCE 600 /* glibc2 and AIX 5.3L need 500, OpenBSD needs 600 for S_ISLNK() */
 +#ifndef __sun__
  #define _XOPEN_SOURCE_EXTENDED 1 /* AIX 5.3L needs this */
  #endif
 +#endif
  #define _ALL_SOURCE 1
  #define _GNU_SOURCE 1
  #define _BSD_SOURCE 1
  #include "compat/mingw.h"
  #endif        /* __MINGW32__ */
  
+ #ifndef NO_LIBGEN_H
+ #include <libgen.h>
+ #else
+ #define basename gitbasename
+ extern char *gitbasename(char *);
+ #endif
  #ifndef NO_ICONV
  #include <iconv.h>
  #endif
@@@ -234,6 -239,11 +241,11 @@@ extern int gitsetenv(const char *, cons
  extern char *gitmkdtemp(char *);
  #endif
  
+ #ifdef NO_MKSTEMPS
+ #define mkstemps gitmkstemps
+ extern int gitmkstemps(char *, int);
+ #endif
  #ifdef NO_UNSETENV
  #define unsetenv gitunsetenv
  extern void gitunsetenv(const char *);