|
|
1.1 root 1: /*
2:
3: Copyright (C) 1990,1991 Mark Adler, Richard B. Wales, and Jean-loup Gailly.
4: Permission is granted to any individual or institution to use, copy, or
5: redistribute this software so long as all of the original files are included
6: unmodified, that it is not sold for profit, and that this copyright notice
7: is retained.
8:
9: */
10:
11: /*
12: * zip.h by Mark Adler.
13: */
14:
15:
16: /* Set up portability */
17: #include "ztailor.h"
18:
19: #define MIN_MATCH 3
20: #define MAX_MATCH 258
21: /* The minimum and maximum match lengths */
22:
23: #ifndef WSIZE
24: # define WSIZE 8192 /* for PGP only use 8192 */
25: #endif
26: /* Maximum window size = 32K. If you are really short of memory, compile
27: * with a smaller WSIZE but this reduces the compression ratio for files
28: * of size > WSIZE.
29: */
30:
31: #define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1)
32: /* Minimum amount of lookahead, except at the end of the input file.
33: * See deflate.c for comments about the MIN_MATCH+1.
34: */
35:
36: #define MAX_DIST (WSIZE-MIN_LOOKAHEAD)
37: /* In order to simplify the code, particularly on 16 bit machines, match
38: * distances are limited to MAX_DIST instead of WSIZE.
39: */
40:
41: /* Define malloc() and string functions */
42: #ifdef MODERN
43: # include <string.h>
44: #else /* !MODERN */
45: voidp *malloc();
46: voidp *calloc();
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: /* Define fseek() commands */
60: #ifndef SEEK_SET
61: # define SEEK_SET 0
62: #endif /* !SEEK_SET */
63:
64: #ifndef SEEK_CUR
65: # define SEEK_CUR 1
66: #endif /* !SEEK_CUR */
67:
68: #ifndef SEEK_END
69: # define SEEK_END 2
70: #endif /* !SEEK_END */
71:
72: /* For setting stdout to binary */
73: #ifdef MSDOS
74: # include <io.h>
75: # include <fcntl.h>
76: #endif /* MSDOS */
77:
78: /* Types centralized here for easy modification */
79: #define local static /* More meaningful outside functions */
80: typedef unsigned char uch; /* unsigned 8-bit value */
81: typedef unsigned short ush; /* unsigned 16-bit value */
82: typedef unsigned long ulg; /* unsigned 32-bit value */
83:
84:
85: /* Error return codes and PERR macro */
86: #include "ziperr.h"
87:
88: /* Internal attributes */
89: #define UNKNOWN -1
90: #define BINARY 0
91: #define ASCII 1
92:
93: /* Public globals */
94: #define BEST -1 /* Use best method (deflation or store) */
95: #define STORE 0 /* Store method */
96: #define DEFLATE 8 /* Deflation method*/
97: extern int method; /* Restriction on compression method */
98: extern int level; /* Compression level */
99:
100: /* Diagnostic functions */
101: #ifdef DEBUG
102: # ifdef MSDOS
103: # undef stderr
104: # define stderr stdout
105: # endif
106: # define diag(where) fprintf(stderr, "zip diagnostic: %s\n", where)
107: # define Assert(cond,msg) {if(!(cond)) error(msg);}
108: # define Trace(x) fprintf x
109: # define Tracev(x) {if (verbose) fprintf x ;}
110: # define Tracevv(x) {if (verbose>1) fprintf x ;}
111: # define Tracec(c,x) {if (verbose && (c)) fprintf x ;}
112: # define Tracecv(c,x) {if (verbose>1 && (c)) fprintf x ;}
113: #else
114: # define diag(where)
115: # define Assert(cond,msg)
116: # define Trace(x)
117: # define Tracev(x)
118: # define Tracevv(x)
119: # define Tracec(c,x)
120: # define Tracecv(c,x)
121: #endif
122:
123:
124: /* Public function prototypes */
125:
126: /* in zip.c, zipcloak.c, or zipsplit.c */
127: void err OF((int c, char *h));
128: void error OF((char *h));
129:
130: /* in zipup.c */
131: int zipup OF((FILE *inFile, FILE *outFile));
132: int read_buf OF((char far *buf, unsigned size));
133:
134: # define zfwrite fwrite /* ??? far */
135: # define zputc putc
136:
137: /* in deflate.c */
138: void lm_init OF((int pack_level, ush *flags));
139: ulg deflate OF((void));
140:
141: /* in trees.c */
142: void ct_init OF((ush *attr, int *method));
143: int ct_tally OF((int dist, int lc));
144: ulg flush_block OF((char *buf, ulg stored_len, int eof));
145:
146: /* in bits.c */
147: void bi_init OF((FILE *zipfile));
148: void send_bits OF((int value, int length));
149: unsigned bi_reverse OF((unsigned value, int length));
150: void bi_windup OF((void));
151: void copy_block OF((char far *buf, unsigned len, int header));
152:
153:
154: /* end of zip.h */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.