Annotation of coherent/b/bin/zip/zip.h, revision 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.