summaryrefslogtreecommitdiff
path: root/unix/osdep.h
diff options
context:
space:
mode:
Diffstat (limited to 'unix/osdep.h')
-rw-r--r--unix/osdep.h80
1 files changed, 80 insertions, 0 deletions
diff --git a/unix/osdep.h b/unix/osdep.h
new file mode 100644
index 0000000..10f8ee9
--- /dev/null
+++ b/unix/osdep.h
@@ -0,0 +1,80 @@
+/*
+ unix/osdep.h - Zip 3
+
+ Copyright (c) 1990-2005 Info-ZIP. All rights reserved.
+
+ See the accompanying file LICENSE, version 2005-Feb-10 or later
+ (the contents of which are also included in zip.h) for terms of use.
+ If, for some reason, both of these files are missing, the Info-ZIP license
+ also may be found at: ftp://ftp.info-zip.org/pub/infozip/license.html
+*/
+
+#ifdef NO_LARGE_FILE_SUPPORT
+# ifdef LARGE_FILE_SUPPORT
+# undef LARGE_FILE_SUPPORT
+# endif
+#endif
+
+#ifdef LARGE_FILE_SUPPORT
+ /* 64-bit Large File Support */
+
+ /* The following Large File Summit (LFS) defines turn on large file support on
+ Linux (probably 2.4 or later kernel) and many other unixen */
+
+# define _LARGEFILE_SOURCE /* some OSes need this for fseeko */
+# define _LARGEFILE64_SOURCE
+# define _FILE_OFFSET_BITS 64 /* select default interface as 64 bit */
+# define _LARGE_FILES /* some OSes need this for 64-bit off_t */
+#endif
+
+#include <sys/types.h>
+#include <sys/stat.h>
+
+/* printf format size prefix for zoff_t values */
+#ifdef LARGE_FILE_SUPPORT
+# define ZOFF_T_FORMAT_SIZE_PREFIX "ll"
+#else
+# define ZOFF_T_FORMAT_SIZE_PREFIX "l"
+#endif
+
+#ifdef NO_OFF_T
+ typedef long zoff_t;
+ typedef unsigned long uzoff_t;
+#else
+ typedef off_t zoff_t;
+# if defined(LARGE_FILE_SUPPORT) && !(defined(__alpha) && defined(__osf__))
+ typedef unsigned long long uzoff_t;
+# else
+ typedef unsigned long uzoff_t;
+# endif
+#endif
+ typedef struct stat z_stat;
+
+
+/* Automatically set ZIP64_SUPPORT if LFS */
+
+#ifdef LARGE_FILE_SUPPORT
+# ifndef NO_ZIP64_SUPPORT
+# ifndef ZIP64_SUPPORT
+# define ZIP64_SUPPORT
+# endif
+# else
+# ifdef ZIP64_SUPPORT
+# undef ZIP64_SUPPORT
+# endif
+# endif
+#endif
+
+
+/* Process files in binary mode */
+#if defined(__DJGPP__) || defined(__CYGWIN__)
+# define FOPR "rb"
+# define FOPM "r+b"
+# define FOPW "wb"
+#endif
+
+
+/* Enable the "UT" extra field (time info) */
+#if !defined(NO_EF_UT_TIME) && !defined(USE_EF_UT_TIME)
+# define USE_EF_UT_TIME
+#endif