1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231
|
/*
Copyright (c) 1990-2009 Info-ZIP. All rights reserved.
See the accompanying file LICENSE, version 2009-Jan-02 or later
(the contents of which are also included in unzip.h) for terms of use.
If, for some reason, all these files are missing, the Info-ZIP license
also may be found at: ftp://ftp.info-zip.org/pub/infozip/license.html
*/
/*---------------------------------------------------------------------------
Unix specific configuration section:
---------------------------------------------------------------------------*/
#ifndef __unxcfg_h
#define __unxcfg_h
/* LARGE FILE SUPPORT - 10/6/04 EG */
/* This needs to be set before the includes so they set the right sizes */
#if (defined(NO_LARGE_FILE_SUPPORT) && defined(LARGE_FILE_SUPPORT))
# undef LARGE_FILE_SUPPORT
#endif
/* Automatically set ZIP64_SUPPORT if LFS */
#ifdef LARGE_FILE_SUPPORT
# if (!defined(NO_ZIP64_SUPPORT) && !defined(ZIP64_SUPPORT))
# define ZIP64_SUPPORT
# endif
#endif
/* NO_ZIP64_SUPPORT takes preceedence over ZIP64_SUPPORT */
#if defined(NO_ZIP64_SUPPORT) && defined(ZIP64_SUPPORT)
# undef ZIP64_SUPPORT
#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 */
/* These have to be before any include that sets types so the large file
versions of the types are set in the includes */
# 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 */
# define __USE_LARGEFILE64
#endif /* LARGE_FILE_SUPPORT */
#include <sys/types.h> /* off_t, time_t, dev_t, ... */
#include <sys/stat.h>
#include <unistd.h>
#ifdef NO_OFF_T
typedef long zoff_t;
#else
typedef off_t zoff_t;
#endif
#define ZOFF_T_DEFINED
typedef struct stat z_stat;
#define Z_STAT_DEFINED
#ifndef COHERENT
# include <fcntl.h> /* O_BINARY for open() w/o CR/LF translation */
#else /* COHERENT */
# ifdef _I386
# include <fcntl.h> /* Coherent 4.0.x, Mark Williams C */
# else
# include <sys/fcntl.h> /* Coherent 3.10, Mark Williams C */
# endif
# define SHORT_SYMS
# ifndef __COHERENT__ /* Coherent 4.2 has tzset() */
# define tzset settz
# endif
#endif /* ?COHERENT */
#ifndef NO_PARAM_H
# ifdef NGROUPS_MAX
# undef NGROUPS_MAX /* SCO bug: defined again in <sys/param.h> */
# endif
# ifdef BSD
# define TEMP_BSD /* may be defined again in <sys/param.h> */
# undef BSD
# endif
# include <sys/param.h> /* conflict with <sys/types.h>, some systems? */
# ifdef TEMP_BSD
# undef TEMP_BSD
# ifndef BSD
# define BSD
# endif
# endif
#endif /* !NO_PARAM_H */
#ifdef __osf__
# define DIRENT
# ifdef BSD
# undef BSD
# endif
#endif /* __osf__ */
#ifdef __CYGWIN__
# include <unistd.h>
# define DIRENT
# define HAVE_TERMIOS_H
# ifndef timezone
# define timezone _timezone
# endif
#endif
#ifdef BSD
# include <sys/time.h>
# include <sys/timeb.h>
# if (defined(_AIX) || defined(__GLIBC__) || defined(__GNU__))
# include <time.h>
# endif
#else
# include <time.h>
struct tm *gmtime(), *localtime();
#endif
#if (defined(BSD4_4) || (defined(SYSV) && defined(MODERN)))
# include <unistd.h> /* this includes utime.h on SGIs */
# if (defined(BSD4_4) || defined(linux) || defined(__GLIBC__))
# include <utime.h>
# define GOT_UTIMBUF
# endif
# if (!defined(GOT_UTIMBUF) && (defined(__hpux) || defined(__SUNPRO_C)))
# include <utime.h>
# define GOT_UTIMBUF
# endif
# if (!defined(GOT_UTIMBUF) && defined(__GNU__))
# include <utime.h>
# define GOT_UTIMBUF
# endif
#endif
#if (defined(__DGUX__) && !defined(GOT_UTIMBUF))
/* DG/UX requires this because of a non-standard struct utimebuf */
# include <utime.h>
# define GOT_UTIMBUF
#endif
#if (defined(V7) || defined(pyr_bsd))
# define strchr index
# define strrchr rindex
#endif
#ifdef V7
# define O_RDONLY 0
# define O_WRONLY 1
# define O_RDWR 2
#endif
#if defined(NO_UNICODE_SUPPORT) && defined(UNICODE_SUPPORT)
/* disable Unicode (UTF-8) support when requested */
# undef UNICODE_SUPPORT
#endif
#if (defined(_MBCS) && defined(NO_MBCS))
/* disable MBCS support when requested */
# undef _MBCS
#endif
#if (!defined(NO_SETLOCALE) && !defined(_MBCS))
# if (!defined(UNICODE_SUPPORT) || !defined(UTF8_MAYBE_NATIVE))
/* enable setlocale here, unless this happens later for UTF-8 and/or
* MBCS support */
# include <locale.h>
# ifndef SETLOCALE
# define SETLOCALE(category, locale) setlocale(category, locale)
# endif
# endif
#endif
#ifndef NO_SETLOCALE
# if (!defined(NO_WORKING_ISPRINT) && !defined(HAVE_WORKING_ISPRINT))
/* enable "enhanced" unprintable chars detection in fnfilter() */
# define HAVE_WORKING_ISPRINT
# endif
#endif
#ifdef MINIX
# include <stdio.h>
#endif
#if (!defined(HAVE_STRNICMP) & !defined(NO_STRNICMP))
# define NO_STRNICMP
#endif
#ifndef DATE_FORMAT
# define DATE_FORMAT DF_MDY /* GRR: customize with locale.h somehow? */
#endif
#define lenEOL 1
#ifdef EBCDIC
# define PutNativeEOL *q++ = '\n';
#else
# define PutNativeEOL *q++ = native(LF);
#endif
#define SCREENSIZE(ttrows, ttcols) screensize(ttrows, ttcols)
#define SCREENWIDTH 80
#define SCREENLWRAP 1
#define USE_EF_UT_TIME
#if (!defined(NO_LCHOWN) || !defined(NO_LCHMOD))
# define SET_SYMLINK_ATTRIBS
#endif
#ifdef MTS
# ifdef SET_DIR_ATTRIB
# undef SET_DIR_ATTRIB
# endif
#else /* !MTS */
# define SET_DIR_ATTRIB
# if (!defined(NOTIMESTAMP) && !defined(TIMESTAMP)) /* GRR 970513 */
# define TIMESTAMP
# endif
# define RESTORE_UIDGID
#endif /* ?MTS */
/* Static variables that we have to add to Uz_Globs: */
#define SYSTEM_SPECIFIC_GLOBALS \
int created_dir, renamed_fullpath;\
char *rootpath, *buildpath, *end;\
ZCONST char *wildname;\
char *dirname, matchname[FILNAMSIZ];\
int rootlen, have_dirname, dirnamelen, notfirstcall;\
zvoid *wild_dir;
/* created_dir, and renamed_fullpath are used by both mapname() and */
/* checkdir(). */
/* rootlen, rootpath, buildpath and end are used by checkdir(). */
/* wild_dir, dirname, wildname, matchname[], dirnamelen, have_dirname, */
/* and notfirstcall are used by do_wild(). */
#endif /* !__unxcfg_h */
|