Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  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
  62. typedef 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 */
  231.