Browse Source

libarchive: Fix unconfigured header logic

The commit "libarchive: Fix Borland integer constants" introduced use of
HAVE_* configured macros into archive.h and archive_entry.h where they
are not allowed.  This commit replaces the logic with something that
does not depend on the configured macros.
Brad King 16 years ago
parent
commit
e5075bb8e8

+ 18 - 16
Utilities/cmlibarchive/libarchive/archive.h

@@ -35,39 +35,41 @@
  * this header!  If you must conditionalize, use predefined compiler and/or
  * platform macros.
  */
+#if defined(__BORLANDC__) && __BORLANDC__ >= 0x560
+# define __LA_STDINT_H <stdint.h>
+#elif !defined(__WATCOMC__) && !defined(_MSC_VER) && !defined(__INTERIX) && !defined(__BORLANDC__)
+# define __LA_STDINT_H <inttypes.h>
+#endif
 
 #include <sys/stat.h>
 #include <sys/types.h>  /* Linux requires this for off_t */
-#if !defined(__WATCOMC__) && !defined(_MSC_VER) && !defined(__INTERIX) && !defined(__BORLANDC__)
-/* Header unavailable on Watcom C or MS Visual C++ or SFU. */
-#include <inttypes.h> /* int64_t, etc. */
+#ifdef __LA_STDINT_H
+# include __LA_STDINT_H /* int64_t, etc. */
 #endif
 #include <stdio.h> /* For FILE * */
 
 /* Get appropriate definitions of standard POSIX-style types. */
 /* These should match the types used in 'struct stat' */
-#if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__BORLANDC__)
+#if defined(_WIN32) && !defined(__CYGWIN__)
 #define __LA_INT64_T    __int64
-# if    defined(_WIN64)
+# if defined(_SSIZE_T_DEFINED)
+#  define __LA_SSIZE_T ssize_t
+# elif defined(_WIN64)
 #  define   __LA_SSIZE_T    __int64
 # else
 #  define   __LA_SSIZE_T    long
 # endif
-#define __LA_UID_T      short
-#define __LA_GID_T  short
-#else
-#if defined(__BORLANDC__)
-#include <sys/types.h>
+# if defined(__BORLANDC__)
+#  define __LA_UID_T uid_t
+#  define __LA_GID_T gid_t
+# else
+#  define __LA_UID_T short
+#  define __LA_GID_T short
+# endif
 #else
 #include <unistd.h>  /* ssize_t, uid_t, and gid_t */
-#endif
-#if defined(__BORLANDC__) && !defined(HAVE_SYS_TYPES_H)
-#define __LA_INT64_T    __int64
-#define __LA_SSIZE_T  long
-#else
 #define __LA_INT64_T    int64_t
 #define __LA_SSIZE_T    ssize_t
-#endif
 #define __LA_UID_T  uid_t
 #define __LA_GID_T  gid_t
 #endif

+ 12 - 13
Utilities/cmlibarchive/libarchive/archive_entry.h

@@ -46,23 +46,22 @@
 
 /* Get appropriate definitions of standard POSIX-style types. */
 /* These should match the types used in 'struct stat' */
-#if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__BORLANDC__)
+#if defined(_WIN32) && !defined(__CYGWIN__)
 #define __LA_INT64_T    __int64
-#define __LA_UID_T  short
-#define __LA_GID_T  short
-#define __LA_DEV_T  unsigned int
-#define __LA_MODE_T unsigned short
-#else
-#ifdef __BORLANDC__
-# include <sys/types.h>
+# if defined(__BORLANDC__)
+#  define __LA_UID_T  uid_t
+#  define __LA_GID_T  gid_t
+#  define __LA_DEV_T  dev_t
+#  define __LA_MODE_T mode_t
+# else
+#  define __LA_UID_T  short
+#  define __LA_GID_T  short
+#  define __LA_DEV_T  unsigned int
+#  define __LA_MODE_T unsigned short
+# endif
 #else
 # include <unistd.h>
-#endif
-#if defined(__BORLANDC__) && !defined(HAVE_SYS_TYPES_H)
-#define __LA_INT64_T    __int64
-#else
 #define __LA_INT64_T    int64_t
-#endif
 #define __LA_UID_T  uid_t
 #define __LA_GID_T  gid_t
 #define __LA_DEV_T  dev_t