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