#include "config.h"
#endif
-/* to have *_MAX definitions for all types when compiling with g++ */
-#define __STDC_LIMIT_MACROS
+#include "compat.h"
#include <zlib.h>
-#ifdef _WIN32
-#define ZIP_EXTERN __declspec(dllexport)
-/* for dup(), close(), etc. */
-#include <io.h>
-#endif
-
#ifndef _ZIP_COMPILING_DEPRECATED
#define ZIP_DISABLE_DEPRECATED
#endif
#include "zip.h"
-#ifdef HAVE_STDBOOL_H
-#include <stdbool.h>
-#else
-typedef char bool;
-#define true 1
-#define false 0
-#endif
-
-#include <errno.h>
-
-/* at least MinGW does not provide EOPNOTSUPP, see
- * http://sourceforge.net/p/mingw/bugs/263/
- */
-#ifndef EOPNOTSUPP
-#define EOPNOTSUPP EINVAL
-#endif
-
-/* at least MinGW does not provide EOVERFLOW, see
- * http://sourceforge.net/p/mingw/bugs/242/
- */
-#ifndef EOVERFLOW
-#define EOVERFLOW EFBIG
-#endif
-
-#ifdef _WIN32
-#if defined(HAVE__CLOSE)
-#define close _close
-#endif
-#if defined(HAVE__DUP)
-#define dup _dup
-#endif
-/* crashes reported when using fdopen instead of _fdopen on Windows/Visual Studio 10/Win64 */
-#if defined(HAVE__FDOPEN)
-#define fdopen _fdopen
-#endif
-#if !defined(HAVE_FILENO) && defined(HAVE__FILENO)
-#define fileno _fileno
-#endif
-/* Windows' open() doesn't understand Unix permissions */
-#if defined(HAVE__OPEN)
-#define open(a, b, c) _open((a), (b))
-#endif
-#if defined(HAVE__SNPRINTF)
-#define snprintf _snprintf
-#endif
-#if defined(HAVE__STRDUP)
-#if !defined(HAVE_STRDUP) || defined(_WIN32)
-#undef strdup
-#define strdup _strdup
-#endif
-#endif
-#if !defined(HAVE__SETMODE) && defined(HAVE_SETMODE)
-#define _setmode setmode
-#endif
-#endif
-
-#ifndef HAVE_FSEEKO
-#define fseeko(s, o, w) (fseek((s), (long int)(o), (w)))
-#endif
-
-#ifndef HAVE_FTELLO
-#define ftello(s) ((long)ftell((s)))
-#endif
-
-#ifndef HAVE_MKSTEMP
-int _zip_mkstemp(char *);
-#define mkstemp _zip_mkstemp
-#endif
-
-#if !defined(HAVE_STRCASECMP)
-#if defined(HAVE__STRICMP)
-#define strcasecmp _stricmp
-#elif defined(HAVE_STRICMP)
-#define strcasecmp stricmp
-#endif
-#endif
-
-#if SIZEOF_OFF_T == 8
-#define ZIP_OFF_MAX ZIP_INT64_MAX
-#define ZIP_OFF_MIN ZIP_INT64_MIN
-#elif SIZEOF_OFF_T == 4
-#define ZIP_OFF_MAX ZIP_INT32_MAX
-#define ZIP_OFF_MIN ZIP_INT32_MIN
-#elif SIZEOF_OFF_T == 2
-#define ZIP_OFF_MAX ZIP_INT16_MAX
-#define ZIP_OFF_MIN ZIP_INT16_MIN
-#else
-#error unsupported size of off_t
-#endif
-
-#if defined(HAVE_FTELLO) && defined(HAVE_FSEEKO)
-#define ZIP_FSEEK_MAX ZIP_OFF_MAX
-#define ZIP_FSEEK_MIN ZIP_OFF_MIN
-#else
-#include <limits.h>
-#define ZIP_FSEEK_MAX LONG_MAX
-#define ZIP_FSEEK_MIN LONG_MIN
-#endif
-
-#ifndef SIZE_MAX
-#if SIZEOF_SIZE_T == 8
-#define SIZE_MAX ZIP_INT64_MAX
-#elif SIZEOF_SIZE_T == 4
-#define SIZE_MAX ZIP_INT32_MAX
-#elif SIZEOF_SIZE_T == 2
-#define SIZE_MAX ZIP_INT16_MAX
-#else
-#error unsupported size of size_t
-#endif
-#endif
-
#define CENTRAL_MAGIC "PK\1\2"
#define LOCAL_MAGIC "PK\3\4"
#define EOCD_MAGIC "PK\5\6"