On Solaris choose the OLD_ICONV iconv() declaration based on the UNIX spec
authorBrandon Casey <drafnel@gmail.com>
Fri, 5 Jun 2009 23:36:12 +0000 (18:36 -0500)
committerJunio C Hamano <gitster@pobox.com>
Sat, 6 Jun 2009 20:21:05 +0000 (13:21 -0700)
OLD_ICONV is only necessary on Solaris until UNIX03.  This is indicated
by the private macro _XPG6 which is set in /usr/include/sys/feature_tests.h.

Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Makefile
utf8.c

index d36e92c10d0e8ca9daecde306d5468e59f5eef69..d8f9c225f9f04da017ada01d9e2c6e5020358cea 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -705,7 +705,7 @@ ifeq ($(uname_S),SunOS)
        NO_STRCASESTR = YesPlease
        NO_MEMMEM = YesPlease
        NO_MKDTEMP = YesPlease
-       OLD_ICONV = UnfortunatelyYes
+       NO_MKSTEMPS = YesPlease
        ifeq ($(uname_R),5.8)
                NO_UNSETENV = YesPlease
                NO_SETENV = YesPlease
diff --git a/utf8.c b/utf8.c
index ddfdc5e2b88d346886f64e39a93ced85cc10a78e..db706ac4ed6f033091cfaeb7b23c07ca7fd71675 100644 (file)
--- a/utf8.c
+++ b/utf8.c
@@ -354,7 +354,7 @@ int is_encoding_utf8(const char *name)
  * with iconv.  If the conversion fails, returns NULL.
  */
 #ifndef NO_ICONV
-#ifdef OLD_ICONV
+#if defined(OLD_ICONV) || (defined(__sun__) && !defined(_XPG6))
        typedef const char * iconv_ibp;
 #else
        typedef char * iconv_ibp;