Annotation of coherent/b/bin/zip/tailor.h, revision 1.1.1.1

1.1       root        1: /* tailor.h -- Not copyrighted 1992 Mark Adler */
                      2: 
                      3: /* const's are inconsistently used across ANSI libraries--kill for all
                      4:    header files. */
                      5: #define const
                      6: 
                      7: 
                      8: /* Define MSDOS for Turbo C as well as Microsoft C */
                      9: #ifdef __POWERC                 /* For Power C too */
                     10: #  define __TURBOC__
                     11: #endif /* __POWERC */
                     12: #if (defined(__TURBOC__) && !defined(MSDOS))
                     13: #  define MSDOS
                     14: #endif
                     15: 
                     16: #ifdef ATARI_ST
                     17: #  undef MSDOS   /* avoid the MS-DOS specific includes */
                     18: #endif
                     19: 
                     20: /* Use prototypes and ANSI libraries if _STDC__, or Microsoft or Borland C,
                     21:  * or Silicon Graphics, or IBM C Set/2, or GNU gcc under emx.
                     22:  */
                     23: #if (defined(__STDC__) || defined(MSDOS) || defined(sgi))
                     24: #  ifndef PROTO
                     25: #    define PROTO
                     26: #  endif /* !PROTO */
                     27: #  define MODERN
                     28: #endif /* MSDOS */
                     29: 
                     30: #if (defined(__IBMC__) || defined(__EMX__) || defined(ATARI_ST))
                     31: #  ifndef PROTO
                     32: #    define PROTO
                     33: #  endif /* !PROTO */
                     34: #  define MODERN
                     35: #endif
                     36: 
                     37: 
                     38: #ifdef __IBMC__
                     39: #  define S_IFMT 0xF000
                     40: #endif /* __IBMC__ */
                     41: 
                     42: #ifdef __EMX__
                     43: #  define __32BIT__
                     44: #endif /* __EMX__ */
                     45: 
                     46: #ifdef __WATCOMC__
                     47: #  define __32BIT__
                     48: #endif
                     49: 
                     50: #if (defined(__OS2__) && !defined(OS2))
                     51: #  define OS2
                     52: #endif
                     53: 
                     54: #ifdef __convexc__
                     55: #      define CONVEX
                     56: #endif /* __convexc__ */
                     57: 
                     58: /* Turn off prototypes if requested */
                     59: #if (defined(NOPROTO) && defined(PROTO))
                     60: #  undef PROTO
                     61: #endif
                     62: 
                     63: 
                     64: /* Used to remove arguments in function prototypes for non-ANSI C */
                     65: #ifdef PROTO
                     66: #  define OF(a) a
                     67: #else /* !PROTO */
                     68: #  define OF(a) ()
                     69: #endif /* ?PROTO */
                     70: 
                     71: 
                     72: /* Memory allocation. */
                     73: #ifdef MACOS
                     74: #  define DYN_ALLOC
                     75: #endif
                     76: #if (defined(MSDOS) && !defined(__GO32__) && !defined(WIN32))
                     77: #  ifdef __TURBOC__
                     78: #    include <alloc.h>
                     79: #    define DYN_ALLOC
                     80:      /* Turbo C 2.0 does not accept far static allocations in small model */
                     81:      void far * fcalloc OF((unsigned items, unsigned size));
                     82: #  else /* !__TURBOC__ */
                     83: #    include <malloc.h>
                     84: #    define farmalloc _fmalloc
                     85: #    define farfree   _ffree
                     86: #    define fcalloc(nitems,itemsize) halloc((long)(nitems),(itemsize))
                     87: #  endif /* ?__TURBOC__ */
                     88: #else /* !MSDOS */
                     89: #  if defined(WIN32)
                     90: #    include <malloc.h>
                     91: #  endif
                     92: #  ifdef far
                     93: #    undef huge
                     94: #    undef far
                     95: #    undef near
                     96: #  endif
                     97: #  define huge
                     98: #  define far
                     99: #  define near
                    100: #  define farmalloc malloc
                    101: #  define farfree   free
                    102: #  define fcalloc(items,size) calloc((unsigned)(items), (unsigned)(size))
                    103: #  ifndef PROTO
                    104:      extern char *calloc(); /* essential for 16 bit systems (AT&T 6300) */
                    105: #  endif
                    106: #endif /* ?MSDOS */
                    107: 
                    108: 
                    109: #if (defined(OS2) && !defined(MSDOS))
                    110: /* MSDOS is defined anyway with MS C 16-bit. So the block above works.
                    111:  * For the 32-bit compilers, MSDOS must not be defined in the block above. */
                    112: #  define MSDOS
                    113: /* inherit MS-DOS file system etc. stuff */
                    114: #endif
                    115:     
                    116: 
                    117: /* Define MSVMS if either MSDOS or VMS defined */
                    118: #if defined(MSDOS) || defined(VMS)
                    119: #  define MSVMS
                    120: #endif
                    121: 
                    122: /* case mapping functions. case_map is used to ignore case in comparisons,
                    123:  * to_up is used to force upper case even on Unix (for dosify option).
                    124:  */
                    125: #if defined(OS2) || defined(MSDOS) || defined(VMS)
                    126: #  define case_map(c) upper[c]
                    127: #  define to_up(c)    upper[c]
                    128: #else
                    129: #  define case_map(c) (c)
                    130: #  define to_up(c)    ((c) >= 'a' && (c) <= 'z' ? (c)-'a'+'A' : (c))
                    131: #endif
                    132: 
                    133: /* Define void, voidp, and extent (size_t) */
                    134: #include <stdio.h>
                    135: #ifdef MODERN
                    136: #  if (!defined(M_XENIX) && !(defined(__GNUC__) && defined(sun)))
                    137: #    include <stddef.h>
                    138: #  endif /* !M_XENIX */
                    139: #  include <stdlib.h>
                    140:    typedef size_t extent;
                    141:    typedef void voidp;
                    142: #else /* !MODERN */
                    143:    typedef unsigned int extent;
                    144: #  define void int
                    145:    typedef char voidp;
                    146: #endif /* ?MODERN */
                    147: 
                    148: /* Get types and stat */
                    149: #ifdef VMS
                    150: #  include <types.h>
                    151: #  include <stat.h>
                    152: #else /* !VMS */
                    153: #  ifdef MACOS
                    154: #    include <types.h>
                    155: #    include <stddef.h>
                    156: #    include <Files.h>
                    157: #    include <StandardFile.h>
                    158: #    include <Think.h>
                    159: #    include <LoMem.h>
                    160: #    include <Pascal.h>
                    161: #    include "macstat.h"
                    162: #  else
                    163: #    ifdef ATARI_ST
                    164: #      include <ext.h>
                    165: #      include <tos.h>
                    166: #    else
                    167: #      include <sys/types.h>
                    168: #      include <sys/stat.h>
                    169: #    endif
                    170: #  endif
                    171: #endif /* ?VMS */
                    172: 
                    173: /* Some systems define S_IFLNK but do not support symbolic links */
                    174: #if defined (S_IFLNK) && (defined(NO_SYMLINK) || defined(MACOS))
                    175: #  undef S_IFLNK
                    176: #endif
                    177: 
                    178: /* Cheap fix for unlink on VMS */
                    179: #ifdef VMS
                    180: #  define unlink delete
                    181: #endif /* VMS */
                    182: 
                    183: 
                    184: /* For Pyramid */
                    185: #ifdef pyr
                    186: #  define strrchr rindex
                    187: #  define ZMEM
                    188: #endif /* pyr */
                    189: 
                    190: 
                    191: /* File operations--use "b" for binary if allowed or fixed length 512 on VMS */
                    192: #ifdef VMS
                    193: #  define FOPR  "r","ctx=stm"
                    194: #  define FOPM  "r+","ctx=stm","rfm=fix","mrs=512"
                    195: #  define FOPW  "w","ctx=stm","rfm=fix","mrs=512"
                    196: #else /* !VMS */
                    197: #  ifdef MODERN
                    198: #    define FOPR "rb"
                    199: #    define FOPM "r+b"
                    200: #    define FOPW "wb"
                    201: #  else /* !MODERN */
                    202: #    define FOPR "r"
                    203: #    define FOPM "r+"
                    204: #    define FOPW "w"
                    205: #  endif /* ?MODERN */
                    206: #endif /* VMS */
                    207: 
                    208: /* Open the old zip file in exclusive mode if possible (to avoid adding
                    209:  * zip file to itself).
                    210:  */
                    211: #ifdef OS2
                    212: #  define FOPR_EX FOPM
                    213: #else
                    214: #  define FOPR_EX FOPR
                    215: #endif
                    216: 
                    217: /* Define this symbol if your target allows access to unaligned data.
                    218:  * This is not mandatory, just a speed optimization. The compressed
                    219:  * output is strictly identical.
                    220:  */
                    221: #if defined(MSDOS) || defined(i386) || defined(mc68020) || defined(vax)
                    222: #   define UNALIGNED_OK
                    223: #endif
                    224: 
                    225: 
                    226: /* Under MSDOS we may run out of memory when processing a large number
                    227:  * of files. Compile with MEDIUM_MEM to reduce the memory requirements or
                    228:  * with SMALL_MEM to use as little memory as possible.
                    229:  */
                    230: #ifdef SMALL_MEM
                    231: #   define CBSZ 2048 /* buffer size for copying files */
                    232: #   define ZBSZ 2048 /* buffer size for temporary zip file */
                    233: #else
                    234: # ifdef MEDIUM_MEM
                    235: #   define CBSZ 8192
                    236: #   define ZBSZ 8192
                    237: # else
                    238: #  if defined(OS2) && !defined(M_I86SM)
                    239: #   define CBSZ 0xE000
                    240: #   define ZBSZ 0x7F00
                    241:     /* The C library of some compilers does not allow a buffer size > 32K */
                    242: #  else
                    243: #   define CBSZ 16384
                    244: #   define ZBSZ 16384
                    245: #  endif
                    246: # endif
                    247: #endif
                    248: 
                    249: #ifdef ATARI_ST
                    250: #  define MSDOS
                    251: #  define MSVMS
                    252: #  ifndef O_BINARY
                    253: #    define O_BINARY 0
                    254: #  endif
                    255: #  ifndef S_IFMT
                    256: #    define S_IFMT        (S_IFCHR|S_IFREG|S_IFDIR)
                    257: #  endif
                    258: 
                    259: /* a whole bunch of functions needs Tos '\\' filnames
                    260:  * instead of '/',  the translation functions are in fileio.c:
                    261:  */
                    262: #  define unlink    st_unlink
                    263: #  define chmod     st_chmod
                    264: #  define mktemp    st_mktemp
                    265: #  define fopen     st_fopen
                    266: #  define open      st_open
                    267: #  define SSTAT     st_stat
                    268: #  define findfirst st_findfirst
                    269: #  define link      st_rename
                    270: #  define rmdir     st_rmdir
                    271: 
                    272:   int st_unlink    OF((char *));
                    273:   int st_chmod     OF((char *, int));
                    274:   char *st_mktemp  OF((char *));
                    275:   FILE *st_fopen   OF((char *, char *));
                    276:   int st_open      OF((char *, int));
                    277:   int st_stat      OF((char *, struct stat *));
                    278:   int st_findfirst OF((char *, struct ffblk *, int));
                    279:   int st_rename    OF((char *, char *));
                    280:   int st_rmdir     OF((char *));
                    281: #else
                    282: #  define SSTAT      stat
                    283: #endif
                    284:    
                    285: /* end of tailor.h */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.