"SfR Fresh" - the SfR Freeware/Shareware Archive

Member "c-headers/tailor.h" of archive zip232dN.zip:


As a special service "SfR Fresh" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. That can be also achieved for any archive member file by clicking within an archive contents listing on the first character of the file(path) respectively on the according byte size field.
    1 /*
    2   Copyright (c) 1990-2005 Info-ZIP.  All rights reserved.
    3 
    4   See the accompanying file LICENSE, version 2004-May-22 or later
    5   (the contents of which are also included in zip.h) for terms of use.
    6   If, for some reason, both of 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 /* Some compiler distributions for Win32/i386 systems try to emulate
   11  * a Unix (POSIX-compatible) environment.
   12  */
   13 #if (defined(WIN32) && defined(UNIX))
   14    /* Zip does not support merging both ports in a single executable. */
   15 #  if (defined(FORCE_WIN32_OVER_UNIX) && defined(FORCE_UNIX_OVER_WIN32))
   16      /* conflicting choice requests -> we prefer the Win32 environment */
   17 #    undef FORCE_UNIX_OVER_WIN32
   18 #  endif
   19 #  ifdef FORCE_WIN32_OVER_UNIX
   20      /* native Win32 support was explicitely requested... */
   21 #    undef UNIX
   22 #  else
   23      /* use the POSIX (Unix) emulation features by default... */
   24 #    undef WIN32
   25 #  endif
   26 #endif
   27 
   28 #ifdef AMIGA
   29 #include "amiga/osdep.h"
   30 #endif
   31 
   32 #ifdef AOSVS
   33 #include "aosvs/osdep.h"
   34 #endif
   35 
   36 #ifdef ATARI
   37 #include "atari/osdep.h"
   38 #endif
   39 
   40 #ifdef __BEOS__
   41 #include "beos/osdep.h"
   42 #endif
   43 
   44 #ifdef __ATHEOS__
   45 #include "atheos/osdep.h"
   46 #endif
   47 
   48 #ifdef DOS
   49 #include "msdos/osdep.h"
   50 #endif
   51 
   52 #ifdef __human68k__
   53 #include "human68k/osdep.h"
   54 #endif
   55 
   56 #if ((defined(__MWERKS__) && defined(macintosh)) || defined(MACOS))
   57 #include "macos/osdep.h"
   58 #endif
   59 
   60 #ifdef OS2
   61 #include "os2/osdep.h"
   62 #endif
   63 
   64 #ifdef __riscos
   65 #include "acorn/osdep.h"
   66 #endif
   67 
   68 #ifdef QDOS
   69 #include "qdos/osdep.h"
   70 #endif
   71 
   72 #ifdef __TANDEM
   73 #include "tandem.h"
   74 #include "tanzip.h"
   75 #endif
   76 
   77 #ifdef UNIX
   78 #include "unix/osdep.h"
   79 #endif
   80 
   81 #if defined(__COMPILER_KCC__) || defined(TOPS20)
   82 #include "tops20/osdep.h"
   83 #endif
   84 
   85 #if defined(VMS) || defined(__VMS)
   86 #include "vms/osdep.h"
   87 #endif
   88 
   89 #if defined(__VM__) || defined(VM_CMS) || defined(MVS)
   90 #include "cmsmvs.h"
   91 #endif
   92 
   93 #ifdef WIN32
   94 #include "win32/osdep.h"
   95 #endif
   96 
   97 #ifdef THEOS
   98 #include "theos/osdep.h"
   99 #endif
  100 
  101 #if (defined(USE_ZLIB) && defined(ASM_CRC))
  102 #  undef ASM_CRC
  103 #endif
  104 
  105 #if (defined(USE_ZLIB) && defined(ASMV))
  106 #  undef ASMV
  107 #endif
  108 
  109 /* When "void" is an alias for "int", prototypes cannot be used. */
  110 #if (defined(NO_VOID) && !defined(NO_PROTO))
  111 #  define NO_PROTO
  112 #endif
  113 
  114 /* Used to remove arguments in function prototypes for non-ANSI C */
  115 #ifndef NO_PROTO
  116 #  define OF(a) a
  117 #else /* NO_PROTO */
  118 #  define OF(a) ()
  119 #endif /* ?NO_PROTO */
  120 
  121 /* If the compiler can't handle const define ZCONST in osdep.h */
  122 /* Define const itself in case the system include files are bonkers */
  123 #ifndef ZCONST
  124 #  ifdef NO_CONST
  125 #    define ZCONST
  126 #    define const
  127 #  else
  128 #    define ZCONST const
  129 #  endif
  130 #endif
  131 
  132 /*
  133  * case mapping functions. case_map is used to ignore case in comparisons,
  134  * to_up is used to force upper case even on Unix (for dosify option).
  135  */
  136 #ifdef USE_CASE_MAP
  137 #  define case_map(c) upper[(c) & 0xff]
  138 #  define to_up(c)    upper[(c) & 0xff]
  139 #else
  140 #  define case_map(c) (c)
  141 #  define to_up(c)    ((c) >= 'a' && (c) <= 'z' ? (c)-'a'+'A' : (c))
  142 #endif /* USE_CASE_MAP */
  143 
  144 /* Define void, zvoid, and extent (size_t) */
  145 #include <stdio.h>
  146 
  147 #ifndef NO_STDDEF_H
  148 #  include <stddef.h>
  149 #endif /* !NO_STDDEF_H */
  150 
  151 #ifndef NO_STDLIB_H
  152 #  include <stdlib.h>
  153 #endif /* !NO_STDLIB_H */
  154 
  155 #ifndef NO_UNISTD_H
  156 #  include <unistd.h> /* usually defines _POSIX_VERSION */
  157 #endif /* !NO_UNISTD_H */
  158 
  159 #ifndef NO_FCNTL_H
  160 #  include <fcntl.h>
  161 #endif /* !NO_FNCTL_H */
  162 
  163 #ifndef NO_STRING_H
  164 #  include <string.h>
  165 #else
  166 #  include <strings.h>
  167 #endif /* NO_STRING_H */
  168 
  169 #ifdef NO_VOID
  170 #  define void int
  171    typedef char zvoid;
  172 #else /* !NO_VOID */
  173 # ifdef NO_TYPEDEF_VOID
  174 #  define zvoid void
  175 # else
  176    typedef void zvoid;
  177 # endif
  178 #endif /* ?NO_VOID */
  179 
  180 #ifdef NO_STRRCHR
  181 #  define strrchr rindex
  182 #endif
  183 
  184 #ifdef NO_STRCHR
  185 #  define strchr index
  186 #endif
  187 
  188 /*
  189  * A couple of forward declarations that are needed on systems that do
  190  * not supply C runtime library prototypes.
  191  */
  192 #ifdef NO_PROTO
  193 char *strcpy();
  194 char *strcat();
  195 char *strrchr();
  196 /* XXX use !defined(ZMEM) && !defined(__hpux__) ? */
  197 #if !defined(ZMEM) && defined(NO_STRING_H)
  198 char *memset();
  199 char *memcpy();
  200 #endif /* !ZMEM && NO_STRING_H */
  201 
  202 /* XXX use !defined(__hpux__) ? */
  203 #ifdef NO_STDLIB_H
  204 char *calloc();
  205 char *malloc();
  206 char *getenv();
  207 long atol();
  208 #endif /* NO_STDLIB_H */
  209 
  210 #ifndef NO_MKTEMP
  211 char *mktemp();
  212 #endif /* !NO_MKTEMP */
  213 
  214 /* moved to include mktemp - Cosmin 2/18/05 */
  215 #endif /* NO_PROTO */
  216 
  217 /*
  218  * SEEK_* macros, should be defined in stdio.h
  219  */
  220 /* Define fseek() commands */
  221 #ifndef SEEK_SET
  222 #  define SEEK_SET 0
  223 #endif /* !SEEK_SET */
  224 
  225 #ifndef SEEK_CUR
  226 #  define SEEK_CUR 1
  227 #endif /* !SEEK_CUR */
  228 
  229 #ifndef FALSE
  230 #  define FALSE 0
  231 #endif
  232 
  233 #ifndef TRUE
  234 #  define TRUE 1
  235 #endif
  236 
  237 #ifdef NO_SIZE_T
  238    typedef unsigned int extent;
  239 #else
  240    typedef size_t extent;
  241 #endif
  242 
  243 #ifdef NO_TIME_T
  244    typedef long time_t;
  245 #endif
  246 
  247 /* DBCS support for Info-ZIP's zip  (mainly for japanese (-: )
  248  * by Yoshioka Tsuneo (QWF00133@nifty.ne.jp,tsuneo-y@is.aist-nara.ac.jp)
  249  * This code is public domain!   Date: 1998/12/20
  250  */
  251 #ifdef _MBCS
  252 #   include <locale.h>
  253 
  254     /* Multi Byte Character Set */
  255     extern char *___tmp_ptr;
  256     unsigned char *zmbschr OF((ZCONST unsigned char *, unsigned int));
  257     unsigned char *zmbsrchr OF((ZCONST unsigned char *, unsigned int));
  258 #   define CLEN(ptr) mblen(ptr, MB_CUR_MAX)
  259 #   define PREINCSTR(ptr) (ptr += CLEN(ptr))
  260 #   define POSTINCSTR(ptr) (___tmp_ptr=(char *)ptr,ptr += CLEN(ptr),___tmp_ptr)
  261     int lastchar OF((ZCONST char *ptr));
  262 #   define MBSCHR(str,c) (char *)zmbschr((ZCONST unsigned char *)(str), c)
  263 #   define MBSRCHR(str,c) (char *)zmbsrchr((ZCONST unsigned char *)(str), (c))
  264 #   define SETLOCALE(category, locale) setlocale(category, locale)
  265 #else /* !_MBCS */
  266 #   define CLEN(ptr) 1
  267 #   define PREINCSTR(ptr) (++(ptr))
  268 #   define POSTINCSTR(ptr) ((ptr)++)
  269 #   define lastchar(ptr) ((*(ptr)=='\0') ? '\0' : ptr[strlen(ptr)-1])
  270 #   define MBSCHR(str, c) strchr(str, c)
  271 #   define MBSRCHR(str, c) strrchr(str, c)
  272 #   define SETLOCALE(category, locale)
  273 #endif /* ?_MBCS */
  274 #define INCSTR(ptr) PREINCSTR(ptr)
  275 
  276 
  277 /* System independent replacement for "struct utimbuf", which is missing
  278  * in many older OS environments.
  279  */
  280 typedef struct ztimbuf {
  281     time_t actime;              /* new access time */
  282     time_t modtime;             /* new modification time */
  283 } ztimbuf;
  284 
  285 /* This macro round a time_t value to the OS specific resolution */
  286 #ifndef ROUNDED_TIME
  287 #  define ROUNDED_TIME(time)   (time)
  288 #endif
  289 
  290 /* Some systems define S_IFLNK but do not support symbolic links */
  291 #if defined (S_IFLNK) && defined(NO_SYMLINK)
  292 #  undef S_IFLNK
  293 #endif
  294 
  295 #ifndef FOPR    /* fallback default definitions for FOPR, FOPM, FOPW: */
  296 #  define FOPR "r"
  297 #  define FOPM "r+"
  298 #  define FOPW "w"
  299 #endif /* fallback definition */
  300 
  301 #ifndef FOPW_TMP    /* fallback default for opening writable temp files */
  302 #  define FOPW_TMP FOPW
  303 #endif
  304 
  305 /* Open the old zip file in exclusive mode if possible (to avoid adding
  306  * zip file to itself).
  307  */
  308 #ifdef OS2
  309 #  define FOPR_EX FOPM
  310 #else
  311 #  define FOPR_EX FOPR
  312 #endif
  313 
  314 
  315 /* MSDOS file or directory attributes */
  316 #define MSDOS_HIDDEN_ATTR 0x02
  317 #define MSDOS_DIR_ATTR 0x10
  318 
  319 
  320 /* Define this symbol if your target allows access to unaligned data.
  321  * This is not mandatory, just a speed optimization. The compressed
  322  * output is strictly identical.
  323  */
  324 #if (defined(MSDOS) && !defined(WIN32)) || defined(i386)
  325 #    define UNALIGNED_OK
  326 #endif
  327 #if defined(mc68020) || defined(vax)
  328 #    define UNALIGNED_OK
  329 #endif
  330 
  331 #if (defined(SMALL_MEM) && !defined(CBSZ))
  332 #   define CBSZ 2048 /* buffer size for copying files */
  333 #   define ZBSZ 2048 /* buffer size for temporary zip file */
  334 #endif
  335 
  336 #if (defined(MEDIUM_MEM) && !defined(CBSZ))
  337 #  define CBSZ 8192
  338 #  define ZBSZ 8192
  339 #endif
  340 
  341 #ifndef CBSZ
  342 #  define CBSZ 16384
  343 #  define ZBSZ 16384
  344 #endif
  345 
  346 #ifndef SBSZ
  347 #  define SBSZ CBSZ     /* copy buf size for STORED entries, see zipup() */
  348 #endif
  349 
  350 #ifndef MEMORY16
  351 #  ifdef __WATCOMC__
  352 #    undef huge
  353 #    undef far
  354 #    undef near
  355 #  endif
  356 #  ifdef THEOS
  357 #    undef far
  358 #    undef near
  359 #  endif
  360 #  if (!defined(__IBMC__) || !defined(OS2))
  361 #    ifndef huge
  362 #      define huge
  363 #    endif
  364 #    ifndef far
  365 #      define far
  366 #    endif
  367 #    ifndef near
  368 #      define near
  369 #    endif
  370 #  endif
  371 #  define nearmalloc malloc
  372 #  define nearfree free
  373 #  define farmalloc malloc
  374 #  define farfree free
  375 #endif /* !MEMORY16 */
  376 
  377 #ifndef Far
  378 #  define Far far
  379 #endif
  380 
  381 /* MMAP and BIG_MEM cannot be used together -> let MMAP take precedence */
  382 #if (defined(MMAP) && defined(BIG_MEM))
  383 #  undef BIG_MEM
  384 #endif
  385 
  386 #if (defined(BIG_MEM) || defined(MMAP)) && !defined(DYN_ALLOC)
  387 #   define DYN_ALLOC
  388 #endif
  389 
  390 #ifndef SSTAT
  391 #  define SSTAT      stat
  392 #endif
  393 #ifdef S_IFLNK
  394 #  define LSTAT      lstat
  395 #  define LSSTAT(n, s)  (linkput ? lstat((n), (s)) : SSTAT((n), (s)))
  396 #else
  397 #  define LSTAT      SSTAT
  398 #  define LSSTAT     SSTAT
  399 #endif
  400 
  401 /* The following default definition of the second input for the crypthead()
  402  * random seed computation can be used on most systems (all those that
  403  * supply a UNIX compatible getpid() function).
  404  */
  405 #ifdef ZCRYPT_INTERNAL
  406 #  ifndef ZCR_SEED2
  407 #    define ZCR_SEED2     (unsigned) getpid()   /* use PID as seed pattern */
  408 #  endif
  409 #endif /* ZCRYPT_INTERNAL */
  410 
  411 /* The following OS codes are defined in pkzip appnote.txt */
  412 #ifdef AMIGA
  413 #  define OS_CODE  0x100
  414 #endif
  415 #ifdef VMS
  416 #  define OS_CODE  0x200
  417 #endif
  418 /* unix    3 */
  419 #ifdef VM_CMS
  420 #  define OS_CODE  0x400
  421 #endif
  422 #ifdef ATARI
  423 #  define OS_CODE  0x500
  424 #endif
  425 #ifdef OS2
  426 #  define OS_CODE  0x600
  427 #endif
  428 #ifdef MACOS
  429 #  define OS_CODE  0x700
  430 #endif
  431 /* z system 8 */
  432 /* cp/m     9 */
  433 #ifdef TOPS20
  434 #  define OS_CODE  0xa00
  435 #endif
  436 #ifdef WIN32
  437 #  define OS_CODE  0xb00
  438 #endif
  439 #ifdef QDOS
  440 #  define OS_CODE  0xc00
  441 #endif
  442 #ifdef RISCOS
  443 #  define OS_CODE  0xd00
  444 #endif
  445 #ifdef VFAT
  446 #  define OS_CODE  0xe00
  447 #endif
  448 #ifdef MVS
  449 #  define OS_CODE  0xf00
  450 #endif
  451 #ifdef __BEOS__
  452 #  define OS_CODE  0x1000
  453 #endif
  454 #ifdef TANDEM
  455 #  define OS_CODE  0x1100
  456 #endif
  457 #ifdef THEOS
  458 #  define OS_CODE  0x1200
  459 #endif
  460 #ifdef __ATHEOS__
  461 #  define OS_CODE  0x1E00
  462 #endif
  463 
  464 #define NUM_HOSTS 31
  465 /* Number of operating systems. Should be updated when new ports are made */
  466 
  467 #if defined(DOS) && !defined(OS_CODE)
  468 #  define OS_CODE  0x000
  469 #endif
  470 
  471 #ifndef OS_CODE
  472 #  define OS_CODE  0x300  /* assume Unix */
  473 #endif
  474 
  475 /* can't use "return 0" from main() on VMS */
  476 #ifndef EXIT
  477 #  define EXIT  exit
  478 #endif
  479 #ifndef RETURN
  480 #  define RETURN return
  481 #endif
  482 
  483 #ifndef ZIPERR
  484 #  define ZIPERR ziperr
  485 #endif
  486 
  487 #if (defined(USE_ZLIB) && defined(MY_ZCALLOC))
  488    /* special zcalloc function is not needed when linked against zlib */
  489 #  undef MY_ZCALLOC
  490 #endif
  491 
  492 #if (!defined(USE_ZLIB) && !defined(MY_ZCALLOC))
  493    /* Any system without a special calloc function */
  494 #  define zcalloc(items,size) \
  495           (zvoid far *)calloc((unsigned)(items), (unsigned)(size))
  496 #  define zcfree    free
  497 #endif /* !USE_ZLIB && !MY_ZCALLOC */
  498 
  499 /* end of tailor.h */