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.
This commit is contained in:
Brad King 2009-11-04 16:06:44 -05:00
parent 7f5361f040
commit e5075bb8e8
2 changed files with 30 additions and 29 deletions

View File

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

View File

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