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

1.1       root        1: /*
                      2: 
                      3:  Copyright (C) 1990-1992 Mark Adler, Richard B. Wales, Jean-loup Gailly,
                      4:  Kai Uwe Rommel and Igor Mandrichenko.
                      5:  Permission is granted to any individual or institution to use, copy, or
                      6:  redistribute this software so long as all of the original files are included
                      7:  unmodified, that it is not sold for profit, and that this copyright notice
                      8:  is retained.
                      9: 
                     10: */
                     11: 
                     12: /*
                     13:  *  zip.h by Mark Adler.
                     14:  */
                     15: 
                     16: 
                     17: /* Set up portability */
                     18: #include "tailor.h"
                     19: 
                     20: #define MIN_MATCH  3
                     21: #define MAX_MATCH  258
                     22: /* The minimum and maximum match lengths */
                     23: 
                     24: #ifndef WSIZE
                     25: #  define WSIZE  ((unsigned)32768)
                     26: #endif
                     27: /* Maximum window size = 32K. If you are really short of memory, compile
                     28:  * with a smaller WSIZE but this reduces the compression ratio for files
                     29:  * of size > WSIZE. WSIZE must be a power of two in the current implementation.
                     30:  */
                     31: 
                     32: #define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1)
                     33: /* Minimum amount of lookahead, except at the end of the input file.
                     34:  * See deflate.c for comments about the MIN_MATCH+1.
                     35:  */
                     36: 
                     37: #define MAX_DIST  (WSIZE-MIN_LOOKAHEAD)
                     38: /* In order to simplify the code, particularly on 16 bit machines, match
                     39:  * distances are limited to MAX_DIST instead of WSIZE.
                     40:  */
                     41: 
                     42: /* Define malloc() and string functions */
                     43: #ifdef MODERN
                     44: #  include <string.h>
                     45: #else /* !MODERN */
                     46:    voidp *malloc();
                     47:    char *getenv();
                     48:    long atol();
                     49:    char *strcpy();
                     50:    char *strcat();
                     51:    char *strchr();
                     52:    char *strrchr();
                     53: #  ifndef ZMEM
                     54:      char *memset();
                     55:      char *memcpy();
                     56: #  endif /* !ZMEM */
                     57: #endif /* ?MODERN */
                     58: 
                     59: 
                     60: /* Define fseek() commands */
                     61: #ifndef SEEK_SET
                     62: #  define SEEK_SET 0
                     63: #endif /* !SEEK_SET */
                     64: 
                     65: #ifndef SEEK_CUR
                     66: #  define SEEK_CUR 1
                     67: #endif /* !SEEK_CUR */
                     68: 
                     69: 
                     70: /* Forget FILENAME_MAX (incorrectly = 14 on some System V) */
                     71: #ifdef MSDOS
                     72: #  define FNMAX 256
                     73: #else /* !MSDOS */
                     74: #  define FNMAX 1024
                     75: #endif /* ?MSDOS */
                     76: 
                     77: 
                     78: /* For setting stdout to binary */
                     79: #ifdef MSDOS
                     80: #  include <io.h>
                     81: #  include <fcntl.h>
                     82: #endif /* MSDOS */
                     83: 
                     84: 
                     85: /* Types centralized here for easy modification */
                     86: #define local static            /* More meaningful outside functions */
                     87: typedef unsigned char uch;      /* unsigned 8-bit value */
                     88: typedef unsigned short ush;     /* unsigned 16-bit value */
                     89: typedef unsigned long ulg;      /* unsigned 32-bit value */
                     90: 
                     91: 
                     92: /* Lengths of headers after signatures in bytes */
                     93: #define LOCHEAD 26
                     94: #define CENHEAD 42
                     95: #define ENDHEAD 18
                     96: 
                     97: 
                     98: /* Structures for in-memory file information */
                     99: struct zlist {
                    100:   /* See central header in zipfile.c for what vem..off are */
                    101:   ush vem, ver, flg, how;
                    102:   ulg tim, crc, siz, len;
                    103:   extent nam, ext, cext, com;   /* offset of ext must be >= LOCHEAD */
                    104:   ush dsk, att, lflg;           /* offset of lflg must be >= LOCHEAD */
                    105:   ulg atx, off;
                    106:   char *name;                   /* File name in zip file */
                    107:   char *extra;                  /* Extra field (set only if ext != 0) */
                    108:   char *cextra;                 /* Extra in central (set only if cext != 0) */
                    109:   char *comment;                /* Comment (set only if com != 0) */
                    110:   char *zname;                  /* Name for new zip file header */
                    111:   int mark;                     /* Marker for files to operate on */
                    112:   int trash;                    /* Marker for files to delete */
                    113:   int dosflag;                  /* Set to force MSDOS file attributes */
                    114:   struct zlist far *nxt;        /* Pointer to next header in list */
                    115: };
                    116: struct flist {
                    117:   char *name;                   /* Pointer to zero-delimited name */
                    118:   char *zname;                  /* Name used for zip file headers */
                    119:   int dosflag;                  /* Set to force MSDOS file attributes */
                    120:   struct flist far * far *lst;  /* Pointer to link pointing here */
                    121:   struct flist far *nxt;        /* Link to next name */
                    122: };
                    123: 
                    124: /* internal file attribute */
                    125: #define UNKNOWN (-1)
                    126: #define BINARY  0
                    127: #define ASCII   1
                    128: 
                    129: /* Error return codes and PERR macro */
                    130: #include "ziperr.h"
                    131: 
                    132: 
                    133: /* Public globals */
                    134: extern uch upper[256];          /* Country dependent case map table */
                    135: extern uch lower[256];
                    136: extern char errbuf[];           /* Handy place to build error messages */
                    137: extern int recurse;             /* Recurse into directories encountered */
                    138: extern int pathput;             /* Store path with name */
                    139: 
                    140: #define BEST -1                 /* Use best method (deflation or store) */
                    141: #define STORE 0                 /* Store method */
                    142: #define DEFLATE 8               /* Deflation method*/
                    143: extern int method;              /* Restriction on compression method */
                    144: 
                    145: extern int dosify;              /* Make new entries look like MSDOS */
                    146: extern char *special;           /* Don't compress special suffixes */
                    147: extern int verbose;             /* Report oddities in zip file structure */
                    148: extern int level;               /* Compression level */
                    149: extern int translate_eol;       /* Translate end-of-line LF -> CR LF */
                    150: #ifdef VMS
                    151:    extern int vmsver;           /* Append VMS version number to file names */
                    152:    extern int vms_native;       /* Store in VMS formait */
                    153: #endif /* VMS */
                    154: #ifdef OS2
                    155:    extern int use_longname_ea;   /* use the .LONGNAME EA as the file's name */
                    156: #endif /* OS2 */
                    157: extern int linkput;             /* Store symbolic links as such */
                    158: extern int noisy;               /* False for quiet operation */
                    159: extern char *key;               /* Scramble password or NULL */
                    160: extern char *tempath;           /* Path for temporary files */
                    161: extern FILE *mesg;              /* Where informational output goes */
                    162: extern char *zipfile;           /* New or existing zip archive (zip file) */
                    163: extern ulg zipbeg;              /* Starting offset of zip structures */
                    164: extern ulg cenbeg;              /* Starting offset of central directory */
                    165: extern struct zlist far *zfiles;/* Pointer to list of files in zip file */
                    166: extern extent zcount;           /* Number of files in zip file */
                    167: extern extent zcomlen;          /* Length of zip file comment */
                    168: extern char *zcomment;          /* Zip file comment (not zero-terminated) */
                    169: extern struct zlist far **zsort;/* List of files sorted by name */
                    170: extern ulg tempzn;              /* Count of bytes written to output zip file */
                    171: extern struct flist far *found; /* List of names found */
                    172: extern struct flist far * far *fnxt;    /* Where to put next in found list */
                    173: extern extent fcount;           /* Count of names in found list */
                    174: 
                    175: 
                    176: /* Diagnostic functions */
                    177: #ifdef DEBUG
                    178: # ifdef MSDOS
                    179: #  undef  stderr
                    180: #  define stderr stdout
                    181: # endif
                    182: #  define diag(where) fprintf(stderr, "zip diagnostic: %s\n", where)
                    183: #  define Assert(cond,msg) {if(!(cond)) error(msg);}
                    184: #  define Trace(x) fprintf x
                    185: #  define Tracev(x) {if (verbose) fprintf x ;}
                    186: #  define Tracevv(x) {if (verbose>1) fprintf x ;}
                    187: #  define Tracec(c,x) {if (verbose && (c)) fprintf x ;}
                    188: #  define Tracecv(c,x) {if (verbose>1 && (c)) fprintf x ;}
                    189: #else
                    190: #  define diag(where)
                    191: #  define Assert(cond,msg)
                    192: #  define Trace(x)
                    193: #  define Tracev(x)
                    194: #  define Tracevv(x)
                    195: #  define Tracec(c,x)
                    196: #  define Tracecv(c,x)
                    197: #endif
                    198: 
                    199: 
                    200: /* Public function prototypes */
                    201: 
                    202:         /* in zip.c, zipcloak.c, or zipsplit.c */
                    203: void warn  OF((char *, char *));
                    204: void err   OF((int c, char *h));
                    205: void error OF((char *h));
                    206: 
                    207:         /* in zipup.c */
                    208: int zipcopy OF((struct zlist far *, FILE *, FILE *));
                    209: #ifndef UTIL
                    210:    int percent OF((long, long));
                    211:    int zipup OF((struct zlist far *, FILE *));
                    212:    int file_read OF((char *buf, unsigned size));
                    213: #endif /* !UTIL */
                    214: 
                    215:         /* in zipfile.c */
                    216: #ifndef UTIL
                    217:    struct zlist far *zsearch OF((char *));
                    218:    int trash OF((void));
                    219: #endif /* !UTIL */
                    220: char *ziptyp OF((char *));
                    221: int readzipfile OF((void));
                    222: int putlocal OF((struct zlist far *, FILE *));
                    223: int putextended OF((struct zlist far *, FILE *));
                    224: int putcentral OF((struct zlist far *, FILE *));
                    225: int putend OF((int, ulg, ulg, extent, char *, FILE *));
                    226: 
                    227:         /* in fileio.c */
                    228: #ifndef UTIL
                    229: #  ifdef MSDOS
                    230:      int wild OF((char *));
                    231: #  endif /* MSDOS */
                    232: #  ifdef VMS
                    233:      int wild OF((char *));
                    234: #  endif /* VMS */
                    235:    char *getnam OF((char *));
                    236:    struct flist far *fexpel OF((struct flist far *));
                    237:    char *in2ex OF((char *));
                    238:    int exclude OF((void));
                    239:    int procname OF((char *));
                    240:    void stamp OF((char *, ulg));
                    241:    ulg dostime OF((int, int, int, int, int, int));
                    242:    ulg filetime OF((char *, ulg *, long *));
                    243:    int issymlnk OF((ulg a));
                    244: #  ifdef S_IFLNK
                    245: #    define rdsymlnk(p,b,n) readlink(p,b,n)
                    246:      extern int readlink OF((char *, char *, int));
                    247: #  else /* !S_IFLNK */
                    248: #    define rdsymlnk(p,b,n) (0)
                    249: #  endif /* !S_IFLNK */
                    250:    int deletedir OF((char *));
                    251: #endif /* !UTIL */
                    252: int destroy OF((char *));
                    253: int replace OF((char *, char *));
                    254: int getfileattr OF((char *));
                    255: int setfileattr OF((char *, int));
                    256: char *tempname OF((char *));
                    257: int fcopy OF((FILE *, FILE *, ulg));
                    258: #ifdef CRYPT
                    259: #  ifndef MSVMS
                    260:      void echoff OF((int));
                    261:      void echon OF((void));
                    262: #  endif /* !MSVMS */
                    263:    char *getp OF((char *, char *, int));
                    264: #endif /* !CRYPT */
                    265: #ifdef ZMEM
                    266:    char *memset OF((char *, int, unsigned int));
                    267:    char *memcpy OF((char *, char *, unsigned int));
                    268:    int memcmp OF((char *, char *, unsigned int));
                    269: #endif /* ZMEM */
                    270: 
                    271:         /* in crypt.c */
                    272: #ifndef CRYPT
                    273: #  define zfwrite fwrite
                    274: #  define zputc putc
                    275: #else /* CRYPT */
                    276:    void crypthead OF((char *, ulg, FILE *));
                    277: #  ifdef UTIL
                    278:      int zipcloak OF ((struct zlist far *, FILE *, FILE *, char *));
                    279:      int zipbare OF ((struct zlist far *, FILE *, FILE *, char *));
                    280: #  else /* !UTIL */
                    281:      unsigned zfwrite OF((voidp *, extent, extent, FILE *));
                    282:      int zencode OF((int c));
                    283:      extern char *key;
                    284: #    define zputc(c,f) (putc(key!=NULL? zencode(c) : (c),(f)))
                    285: #  endif /* ?UTIL */
                    286: #endif /* ?CRYPT */
                    287: 
                    288:         /* in util.c */
                    289: char *isshexp OF((char *));
                    290: int   shmatch OF((char *, char *));
                    291: #ifdef MSDOS
                    292:    int dosmatch OF((char *, char *));
                    293: #endif /* MSDOS */
                    294: void     init_upper OF((void));
                    295: int      namecmp    OF((char *string1, char *string2));
                    296: voidp far **search  OF((voidp *, voidp far **, extent,
                    297:                        int (*)(voidp *, voidp far *)));
                    298: ulg crc32 OF((ulg, int));
                    299: ulg updcrc OF((char *, extent));
                    300: 
                    301: #ifndef UTIL
                    302:         /* in deflate.c */
                    303: void lm_init OF((int pack_level, ush *flags));
                    304: ulg  deflate OF((void));
                    305: 
                    306:         /* in trees.c */
                    307: void ct_init     OF((ush *attr, int *method));
                    308: int  ct_tally    OF((int dist, int lc));
                    309: ulg  flush_block OF((char far *buf, ulg stored_len, int eof));
                    310: 
                    311:         /* in bits.c */
                    312: void     bi_init    OF((FILE *zipfile));
                    313: void     send_bits  OF((int value, int length));
                    314: unsigned bi_reverse OF((unsigned value, int length));
                    315: void     bi_windup  OF((void));
                    316: void     copy_block OF((char far *buf, unsigned len, int header));
                    317: int      seekable   OF((void));
                    318: extern   int (*read_buf) OF((char *buf, unsigned size));
                    319: ulg     memcompress OF((char *tgt, ulg tgtsize, char *src, ulg srcsize));
                    320: 
                    321: #endif /* !UTIL */
                    322: 
                    323: 
                    324: /* end of zip.h */

unix.superglobalmegacorp.com

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