libarchive: Fix Borland integer constants

Some versions of Borland provide <stdint.h>, so we use it when possible.
However, the 64-bit signed and unsigned integer min/max constants cause
overflow warnings from Borland itself!  For these constants we fall back
on our default definitions.
This commit is contained in:
Brad King 2009-11-04 13:10:11 -05:00
parent 12baf7b7f1
commit c9a9c88634
6 changed files with 29 additions and 5 deletions

View File

@ -698,7 +698,7 @@
/* Define to `unsigned int' if <sys/types.h> does not define. */
#cmakedefine uintptr_t ${uintptr_t }
#ifdef __BORLANDC__
#if defined(__BORLANDC__) && !defined(HAVE_STDINT_H)
#define uintptr_t unsigned int
#define intptr_t int
#endif

View File

@ -61,7 +61,7 @@
#else
#include <unistd.h> /* ssize_t, uid_t, and gid_t */
#endif
#if defined(__BORLANDC__)
#if defined(__BORLANDC__) && !defined(HAVE_SYS_TYPES_H)
#define __LA_INT64_T __int64
#define __LA_SSIZE_T long
#else

View File

@ -58,7 +58,7 @@
#else
# include <unistd.h>
#endif
#if defined(__BORLANDC__)
#if defined(__BORLANDC__) && !defined(HAVE_SYS_TYPES_H)
#define __LA_INT64_T __int64
#else
#define __LA_INT64_T int64_t

View File

@ -30,7 +30,7 @@ __FBSDID("$FreeBSD$");
#if defined(_WIN32) && !defined(__CYGWIN__)
#if defined(__BORLANDC__) || (defined(_MSC_VER) && _MSC_VER <= 1300)
# define EPOC_TIME (116444736000000000)
# define EPOC_TIME (116444736000000000UI64)
#else
# define EPOC_TIME (116444736000000000ULL)
#endif

View File

@ -86,6 +86,30 @@
#include <stdint.h>
#endif
/* Borland warns about its own constants! */
#if defined(__BORLANDC__)
# if HAVE_DECL_UINT64_MAX
# undef UINT64_MAX
# undef HAVE_DECL_UINT64_MAX
# define HAVE_DECL_UINT64_MAX 0
# endif
# if HAVE_DECL_UINT64_MIN
# undef UINT64_MIN
# undef HAVE_DECL_UINT64_MIN
# define HAVE_DECL_UINT64_MIN 0
# endif
# if HAVE_DECL_INT64_MAX
# undef INT64_MAX
# undef HAVE_DECL_INT64_MAX
# define HAVE_DECL_INT64_MAX 0
# endif
# if HAVE_DECL_INT64_MIN
# undef INT64_MIN
# undef HAVE_DECL_INT64_MIN
# define HAVE_DECL_INT64_MIN 0
# endif
#endif
/* Some platforms lack the standard *_MAX definitions. */
#if !HAVE_DECL_SIZE_MAX
#define SIZE_MAX (~(size_t)0)

View File

@ -60,7 +60,7 @@
#include <wchar.h>
#include <windows.h>
#if defined(__BORLANDC__) || (defined(_MSC_VER) && _MSC_VER <= 1300)
# define EPOC_TIME (116444736000000000)
# define EPOC_TIME (116444736000000000UI64)
#else
# define EPOC_TIME (116444736000000000ULL)
#endif