Compare commits
	
		
			3 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | e26a448e96 | ||
|   | 423eb40306 | ||
|   | 8a2acbffc8 | 
							
								
								
									
										33
									
								
								ChangeLog
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								ChangeLog
									
									
									
									
									
								
							| @@ -1,7 +1,38 @@ | ||||
|  | ||||
| 		ChangeLog file for zlib | ||||
|  | ||||
| Changes in 1.0 (15 Jan 96) | ||||
| Changes in 1.0.2 (23 May 96) | ||||
| - added Windows DLL support | ||||
| - added a function zlibVersion (for the DLL support) | ||||
| - fixed declarations using Bytef in infutil.c (pb with MSDOS medium model) | ||||
| - Bytef is define's instead of typedef'd only for Borland C | ||||
| - avoid reading uninitialized memory in example.c | ||||
| - mention in README that the zlib format is now RFC1950 | ||||
| - updated Makefile.dj2 | ||||
| - added algorithm.doc | ||||
|  | ||||
| Changes in 1.0.1 (20 May 96) [1.0 skipped to avoid confusion] | ||||
| - fix array overlay in deflate.c which sometimes caused bad compressed data | ||||
| - fix inflate bug with empty stored block | ||||
| - fix MSDOS medium model which was broken in 0.99 | ||||
| - fix deflateParams() which could generated bad compressed data. | ||||
| - Bytef is define'd instead of typedef'ed (work around Borland bug) | ||||
| - added an INDEX file | ||||
| - new makefiles for DJGPP (Makefile.dj2), 32-bit Borland (Makefile.b32), | ||||
|   Watcom (Makefile.wat), Amiga SAS/C (Makefile.sas) | ||||
| - speed up adler32 for modern machines without auto-increment | ||||
| - added -ansi for IRIX in configure | ||||
| - static_init_done in trees.c is an int | ||||
| - define unlink as delete for VMS | ||||
| - fix configure for QNX | ||||
| - add configure branch for SCO and HPUX | ||||
| - avoid many warnings (unused variables, dead assignments, etc...) | ||||
| - no fdopen for BeOS | ||||
| - fix the Watcom fix for 32 bit mode (define FAR as empty) | ||||
| - removed redefinition of Byte for MKWERKS | ||||
| - work around an MWKERKS bug (incorrect merge of all .h files) | ||||
|  | ||||
| Changes in 0.99 (27 Jan 96) | ||||
| - allow preset dictionary shared between compressor and decompressor | ||||
| - allow compression level 0 (no compression) | ||||
| - add deflateParams in zlib.h: allow dynamic change of compression level | ||||
|   | ||||
							
								
								
									
										50
									
								
								INDEX
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								INDEX
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,50 @@ | ||||
| ChangeLog	history of changes | ||||
| INDEX		this file | ||||
| Make_vms.com	script for Vax/VMS | ||||
| Makefile	makefile for Unix (generated by configure) | ||||
| Makefile.b32	makefile for Borland C++   32-bit | ||||
| Makefile.bor	makefile for Borland C/C++ 16-bit | ||||
| Makefile.dj2	makefile for DJGPP 2.x | ||||
| Makefile.in	makefile for Unix (template for configure) | ||||
| Makefile.msc	makefile for Microsoft C 16-bit | ||||
| Makefile.sas	makefile for Amiga SAS/C | ||||
| Makefile.tc	makefile for Turbo C | ||||
| Makefile.wat	makefile for Watcom C | ||||
| README		guess what | ||||
| algorithm.doc	description of the compression & decompression algorithms | ||||
| configure	configure script for Unix | ||||
| descrip.mms	makefile for Vax/VMS | ||||
| zlib.def        definition file for Windows DLL | ||||
| zlib.rc         definition file for Windows DLL | ||||
|  | ||||
|  | ||||
| 		zlib public header files (must be kept): | ||||
| zconf.h | ||||
| zlib.h | ||||
|  | ||||
| 		private source files used to build the zlib library: | ||||
| adler32.c | ||||
| compress.c | ||||
| crc32.c | ||||
| deflate.c | ||||
| deflate.h | ||||
| gzio.c | ||||
| infblock.c | ||||
| infblock.h | ||||
| infcodes.c | ||||
| infcodes.h | ||||
| inffast.c | ||||
| inffast.h | ||||
| inflate.c | ||||
| inftrees.c | ||||
| inftrees.h | ||||
| infutil.c | ||||
| infutil.h | ||||
| trees.c | ||||
| uncompr.c | ||||
| zutil.c | ||||
| zutil.h | ||||
|  | ||||
| 		source files for sample programs: | ||||
| example.c | ||||
| minigzip.c | ||||
							
								
								
									
										10
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								Makefile
									
									
									
									
									
								
							| @@ -22,7 +22,7 @@ CFLAGS=-O | ||||
| LDFLAGS=-L. -lz | ||||
| LDSHARED=$(CC) | ||||
|  | ||||
| VER=1.0 | ||||
| VER=1.0.2 | ||||
| LIBS=libz.a | ||||
|  | ||||
| AR=ar rc | ||||
| @@ -37,8 +37,8 @@ OBJS = adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o \ | ||||
|  | ||||
| TEST_OBJS = example.o minigzip.o | ||||
|  | ||||
| DISTFILES = README ChangeLog configure Makefile.in Makefile Makefile.msc \ | ||||
| 	    Makefile.bor Makefile.tc Make_vms.com descrip.mms *.[ch] | ||||
| DISTFILES = README INDEX ChangeLog configure Make*[a-z0-9] descrip.mms \ | ||||
| 	    zlib.def zlib.rc algorithm.doc  *.[ch] | ||||
|  | ||||
| all: example minigzip | ||||
|  | ||||
| @@ -86,8 +86,8 @@ clean: | ||||
|  | ||||
| zip: | ||||
| 	mv Makefile Makefile~; cp -p Makefile.in Makefile | ||||
| 	v=`sed -n -e 's/\./-/' -e '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`;\ | ||||
| 	zip -ul9 zlib-$$v $(DISTFILES) | ||||
| 	v=`sed -n -e 's/\.//g' -e '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`;\ | ||||
| 	zip -ul9 zlib$$v $(DISTFILES) | ||||
| 	mv Makefile~ Makefile | ||||
|  | ||||
| dist: | ||||
|   | ||||
							
								
								
									
										104
									
								
								Makefile.b32
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										104
									
								
								Makefile.b32
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,104 @@ | ||||
| # Makefile for zlib | ||||
| # Borland C++    | ||||
|  | ||||
| # This version of the zlib makefile was adapted by Chris Young for use | ||||
| # with Borland C 4.5x with the Dos Power Pack for a 32-bit protected mode | ||||
| # flat memory model.  It was created for use with POV-Ray ray tracer and | ||||
| # you may choose to edit the CFLAGS to suit your needs but the | ||||
| # switches -WX and -DMSDOS are required. | ||||
| # -- Chris Young 76702.1655@compuserve.com | ||||
|  | ||||
| # To use, do "make -fmakefile.b32" | ||||
|  | ||||
| # See zconf.h for details about the memory requirements. | ||||
|  | ||||
| # ------------- Borland C++ ------------- | ||||
| MODEL=-WX  | ||||
| CFLAGS= $(MODEL) -P-C -K -N- -k- -d -3 -r- -v- -f -DMSDOS | ||||
| CC=bcc32 | ||||
| LD=bcc32 | ||||
| LIB=tlib | ||||
| LDFLAGS= $(MODEL) | ||||
| O=.obj | ||||
|  | ||||
| # variables | ||||
| OBJ1 = adler32$(O) compress$(O) crc32$(O) gzio$(O) uncompr$(O) deflate$(O) \ | ||||
|   trees$(O) | ||||
| OBJP1 = adler32$(O)+compress$(O)+crc32$(O)+gzio$(O)+uncompr$(O)+deflate$(O)+\ | ||||
|   trees$(O) | ||||
| OBJ2 = zutil$(O) inflate$(O) infblock$(O) inftrees$(O) infcodes$(O) \ | ||||
|   infutil$(O) inffast$(O) | ||||
| OBJP2 = zutil$(O)+inflate$(O)+infblock$(O)+inftrees$(O)+infcodes$(O)+\ | ||||
|   infutil$(O)+inffast$(O) | ||||
|  | ||||
| all: test | ||||
|  | ||||
| adler32.obj: adler32.c zutil.h zlib.h zconf.h | ||||
| 	$(CC) -c $(CFLAGS) $*.c | ||||
|  | ||||
| compress.obj: compress.c zlib.h zconf.h | ||||
| 	$(CC) -c $(CFLAGS) $*.c | ||||
|  | ||||
| crc32.obj: crc32.c zutil.h zlib.h zconf.h | ||||
| 	$(CC) -c $(CFLAGS) $*.c | ||||
|  | ||||
| deflate.obj: deflate.c deflate.h zutil.h zlib.h zconf.h | ||||
| 	$(CC) -c $(CFLAGS) $*.c | ||||
|  | ||||
| gzio.obj: gzio.c zutil.h zlib.h zconf.h | ||||
| 	$(CC) -c $(CFLAGS) $*.c | ||||
|  | ||||
| infblock.obj: infblock.c zutil.h zlib.h zconf.h infblock.h inftrees.h\ | ||||
|    infcodes.h infutil.h | ||||
| 	$(CC) -c $(CFLAGS) $*.c | ||||
|  | ||||
| infcodes.obj: infcodes.c zutil.h zlib.h zconf.h inftrees.h infutil.h\ | ||||
|    infcodes.h inffast.h | ||||
| 	$(CC) -c $(CFLAGS) $*.c | ||||
|  | ||||
| inflate.obj: inflate.c zutil.h zlib.h zconf.h infblock.h | ||||
| 	$(CC) -c $(CFLAGS) $*.c | ||||
|  | ||||
| inftrees.obj: inftrees.c zutil.h zlib.h zconf.h inftrees.h | ||||
| 	$(CC) -c $(CFLAGS) $*.c | ||||
|  | ||||
| infutil.obj: infutil.c zutil.h zlib.h zconf.h inftrees.h infutil.h | ||||
| 	$(CC) -c $(CFLAGS) $*.c | ||||
|  | ||||
| inffast.obj: inffast.c zutil.h zlib.h zconf.h inftrees.h infutil.h inffast.h | ||||
| 	$(CC) -c $(CFLAGS) $*.c | ||||
|  | ||||
| trees.obj: trees.c deflate.h zutil.h zlib.h zconf.h | ||||
| 	$(CC) -c $(CFLAGS) $*.c | ||||
|  | ||||
| uncompr.obj: uncompr.c zlib.h zconf.h | ||||
| 	$(CC) -c $(CFLAGS) $*.c | ||||
|  | ||||
| zutil.obj: zutil.c zutil.h zlib.h zconf.h | ||||
| 	$(CC) -c $(CFLAGS) $*.c | ||||
|  | ||||
| example.obj: example.c zlib.h zconf.h | ||||
| 	$(CC) -c $(CFLAGS) $*.c | ||||
|  | ||||
| minigzip.obj: minigzip.c zlib.h zconf.h | ||||
| 	$(CC) -c $(CFLAGS) $*.c | ||||
|  | ||||
| # we must cut the command line to fit in the MS/DOS 128 byte limit: | ||||
| zlib.lib: $(OBJ1) $(OBJ2) | ||||
| 	del zlib.lib | ||||
| 	$(LIB) zlib +$(OBJP1) | ||||
| 	$(LIB) zlib +$(OBJP2) | ||||
|  | ||||
| example.exe: example.obj zlib.lib | ||||
| 	$(LD) $(LDFLAGS) example.obj zlib.lib | ||||
|  | ||||
| minigzip.exe: minigzip.obj zlib.lib | ||||
| 	$(LD) $(LDFLAGS) minigzip.obj zlib.lib | ||||
|  | ||||
| test: example.exe minigzip.exe | ||||
| 	example | ||||
| 	echo hello world | minigzip | minigzip -d  | ||||
|  | ||||
| #clean: | ||||
| #	del *.obj | ||||
| #	del *.exe | ||||
							
								
								
									
										98
									
								
								Makefile.dj2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										98
									
								
								Makefile.dj2
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,98 @@ | ||||
| # Makefile for zlib.  Modified for djgpp v2.0 by F. J. Donahoe, 3/15/96. | ||||
| # Copyright (C) 1995-1996 Jean-loup Gailly. | ||||
| # For conditions of distribution and use, see copyright notice in zlib.h  | ||||
|  | ||||
| # To compile, or to compile and test, type: | ||||
| #  | ||||
| #   make -fmakefile.dj2;  make test -fmakefile.dj2 | ||||
| #  | ||||
| # To install libz.a, zconf.h and zlib.h in the djgpp directories, type: | ||||
| #  | ||||
| #    make install -fmakefile.dj2 | ||||
| #  | ||||
| # after first defining LIBRARY_PATH and INCLUDE_PATH in djgpp.env as | ||||
| # in the sample below if the pattern of the DJGPP distribution is to | ||||
| # be followed.  Remember that, while <sp>'es around <=> are ignored in | ||||
| # makefiles, they are *not* in batch files or in djgpp.env. | ||||
| # - - - - - | ||||
| # [make] | ||||
| # INCLUDE_PATH=%\>;INCLUDE_PATH%%\DJDIR%\include | ||||
| # LIBRARY_PATH=%\>;LIBRARY_PATH%%\DJDIR%\lib | ||||
| # BUTT=-m486 | ||||
| # - - - - - | ||||
| # Alternately, these variables may be defined below, overriding the values | ||||
| # in djgpp.env, as | ||||
| INCLUDE_PATH=c:\usr\include | ||||
|  | ||||
| CC=gcc | ||||
|  | ||||
| #CFLAGS=-MMD -O | ||||
| #CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7 | ||||
| #CFLAGS=-MMD -g -DDEBUG | ||||
| CFLAGS=-MMD -O3 $(BUTT) -Wall -Wwrite-strings -Wpointer-arith -Wconversion \ | ||||
|              -Wstrict-prototypes -Wmissing-prototypes | ||||
|  | ||||
| # If cp.exe is not found, replace with copy /Y . | ||||
| CP=cp -f | ||||
| # If install.exe is not found, replace with $(CP). | ||||
| INSTALL=install | ||||
| # The default value of RM is "rm -f."  If "rm.exe" is not found, uncomment: | ||||
| # RM=del | ||||
| LDLIBS=-L. -lz | ||||
| LD=$(CC) -s -o | ||||
| LDSHARED=$(CC) | ||||
|  | ||||
| VER=1.0.2 | ||||
| INCL=zlib.h zconf.h | ||||
| LIBS=libz.a | ||||
|  | ||||
| AR=ar rcs | ||||
|  | ||||
| prefix=/usr/local | ||||
| exec_prefix = $(prefix) | ||||
|  | ||||
| OBJS = adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o \ | ||||
|        zutil.o inflate.o infblock.o inftrees.o infcodes.o infutil.o inffast.o | ||||
|  | ||||
| TEST_OBJS = example.o minigzip.o | ||||
|  | ||||
| all: example.exe minigzip.exe | ||||
|  | ||||
| test: all | ||||
| 	./example | ||||
| 	echo hello world | .\minigzip | .\minigzip -d  | ||||
|  | ||||
| %.o : %.c | ||||
| 	$(CC) $(CFLAGS) -c $< -o $@ | ||||
|  | ||||
| libz.a: $(OBJS) | ||||
| 	$(AR) $@ $(OBJS) | ||||
|  | ||||
| libz.so.$(VER): $(OBJS) | ||||
| 	$(LDSHARED) -o $@ $(OBJS) | ||||
| 	$(RM) libz.so; ln -s $@ libz.so | ||||
|  | ||||
| %.exe : %.o $(LIBS) | ||||
| 	$(LD) $@ $< $(LDLIBS) | ||||
|  | ||||
| # INCLUDE_PATH and LIBRARY_PATH were set for [make] in djgpp.env . | ||||
|  | ||||
| .PHONY : uninstall clean | ||||
|  | ||||
| install: $(INCL) $(LIBS) | ||||
| 	-@if not exist $(INCLUDE_PATH)\nul mkdir $(INCLUDE_PATH) | ||||
| 	-@if not exist $(LIBRARY_PATH)\nul mkdir $(LIBRARY_PATH) | ||||
| 	for %%f in ($(INCL)) do $(INSTALL) %%f $(INCLUDE_PATH) | ||||
| 	for %%p in ($(LIBS)) do $(INSTALL) %%p $(LIBRARY_PATH) | ||||
|  | ||||
| uninstall: | ||||
| 	for %%f in ($(INCL)) do $(RM) $(INCLUDE_PATH)\%%f | ||||
| 	for %%p in ($(LIBS)) do $(RM) $(LIBRARY_PATH)\%%p | ||||
|  | ||||
| clean: | ||||
| 	for %%p in (*.d *.o *.exe libz.a libz.so*) do $(RM) %%p | ||||
|  | ||||
| DEPS := $(wildcard *.d) | ||||
| ifneq ($(DEPS),) | ||||
| include $(DEPS) | ||||
| endif | ||||
							
								
								
									
										10
									
								
								Makefile.in
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								Makefile.in
									
									
									
									
									
								
							| @@ -22,7 +22,7 @@ CFLAGS=-O | ||||
| LDFLAGS=-L. -lz | ||||
| LDSHARED=$(CC) | ||||
|  | ||||
| VER=1.0 | ||||
| VER=1.0.2 | ||||
| LIBS=libz.a | ||||
|  | ||||
| AR=ar rc | ||||
| @@ -37,8 +37,8 @@ OBJS = adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o \ | ||||
|  | ||||
| TEST_OBJS = example.o minigzip.o | ||||
|  | ||||
| DISTFILES = README ChangeLog configure Makefile.in Makefile Makefile.msc \ | ||||
| 	    Makefile.bor Makefile.tc Make_vms.com descrip.mms *.[ch] | ||||
| DISTFILES = README INDEX ChangeLog configure Make*[a-z0-9] descrip.mms \ | ||||
| 	    zlib.def zlib.rc algorithm.doc  *.[ch] | ||||
|  | ||||
| all: example minigzip | ||||
|  | ||||
| @@ -86,8 +86,8 @@ clean: | ||||
|  | ||||
| zip: | ||||
| 	mv Makefile Makefile~; cp -p Makefile.in Makefile | ||||
| 	v=`sed -n -e 's/\./-/' -e '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`;\ | ||||
| 	zip -ul9 zlib-$$v $(DISTFILES) | ||||
| 	v=`sed -n -e 's/\.//g' -e '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`;\ | ||||
| 	zip -ul9 zlib$$v $(DISTFILES) | ||||
| 	mv Makefile~ Makefile | ||||
|  | ||||
| dist: | ||||
|   | ||||
							
								
								
									
										64
									
								
								Makefile.sas
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								Makefile.sas
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,64 @@ | ||||
| # SMakefile for zlib | ||||
| # Modified from the standard UNIX Makefile Copyright Jean-loup Gailly | ||||
| # Osma Ahvenlampi <Osma.Ahvenlampi@hut.fi> | ||||
| # Amiga, SAS/C 6.56 & Smake | ||||
|  | ||||
| CC=sc | ||||
| CFLAGS=OPT | ||||
| #CFLAGS=OPT CPU=68030 | ||||
| #CFLAGS=DEBUG=LINE | ||||
| LDFLAGS=LIB z.lib | ||||
|  | ||||
| SCOPTIONS=OPTSCHED OPTINLINE OPTALIAS OPTTIME OPTINLOCAL STRMERGE \ | ||||
|        NOICONS PARMS=BOTH NOSTACKCHECK UTILLIB NOVERSION ERRORREXX  | ||||
|  | ||||
| OBJS = adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o \ | ||||
|        zutil.o inflate.o infblock.o inftrees.o infcodes.o infutil.o inffast.o | ||||
|  | ||||
| TEST_OBJS = example.o minigzip.o | ||||
|  | ||||
| all: SCOPTIONS example minigzip | ||||
|  | ||||
| test: all | ||||
| 	`cd`/example | ||||
| 	echo hello world | minigzip | minigzip -d  | ||||
|  | ||||
| install: z.lib | ||||
| 	copy zlib.h zconf.h INCLUDE: clone | ||||
| 	copy z.lib LIB: clone | ||||
|  | ||||
| z.lib: $(OBJS) | ||||
| 	oml z.lib r $(OBJS) | ||||
|  | ||||
| example: example.o z.lib | ||||
| 	$(CC) $(CFLAGS) LINK TO $@ example.o $(LDFLAGS) | ||||
|  | ||||
| minigzip: minigzip.o z.lib | ||||
| 	$(CC) $(CFLAGS) LINK TO $@ minigzip.o $(LDFLAGS) | ||||
|  | ||||
| clean: | ||||
| 	-delete force quiet *.o example minigzip z.lib foo.gz *.lnk SCOPTIONS | ||||
|  | ||||
| SCOPTIONS: Smakefile | ||||
|         copy to $@ <from < | ||||
| $(SCOPTIONS) | ||||
| < | ||||
|  | ||||
| # DO NOT DELETE THIS LINE -- make depend depends on it. | ||||
|  | ||||
| adler32.o: zutil.h zlib.h zconf.h | ||||
| compress.o: zlib.h zconf.h | ||||
| crc32.o: zutil.h zlib.h zconf.h | ||||
| deflate.o: deflate.h zutil.h zlib.h zconf.h | ||||
| example.o: zlib.h zconf.h | ||||
| gzio.o: zutil.h zlib.h zconf.h | ||||
| infblock.o: zutil.h zlib.h zconf.h infblock.h inftrees.h infcodes.h infutil.h | ||||
| infcodes.o: zutil.h zlib.h zconf.h inftrees.h infutil.h infcodes.h inffast.h | ||||
| inffast.o: zutil.h zlib.h zconf.h inftrees.h infutil.h inffast.h | ||||
| inflate.o: zutil.h zlib.h zconf.h infblock.h | ||||
| inftrees.o: zutil.h zlib.h zconf.h inftrees.h | ||||
| infutil.o: zutil.h zlib.h zconf.h inftrees.h infutil.h | ||||
| minigzip.o: zlib.h zconf.h | ||||
| trees.o: deflate.h zutil.h zlib.h zconf.h | ||||
| uncompr.o: zlib.h zconf.h | ||||
| zutil.o: zutil.h zlib.h zconf.h | ||||
							
								
								
									
										103
									
								
								Makefile.wat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										103
									
								
								Makefile.wat
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,103 @@ | ||||
| # Makefile for zlib | ||||
| # Watcom 10a | ||||
|  | ||||
| # This version of the zlib makefile was adapted by Chris Young for use | ||||
| # with Watcom 10a 32-bit protected mode flat memory model.  It was created  | ||||
| # for use with POV-Ray ray tracer and you may choose to edit the CFLAGS to  | ||||
| # suit your needs but the -DMSDOS is required. | ||||
| # -- Chris Young 76702.1655@compuserve.com | ||||
|  | ||||
| # To use, do "wmake -f makefile.wat" | ||||
|  | ||||
| # See zconf.h for details about the memory requirements. | ||||
|  | ||||
| # ------------- Watcom 10a ------------- | ||||
| MODEL=-mf  | ||||
| CFLAGS= $(MODEL) -fpi87 -fp5 -zp4 -5r -w5 -oneatx -DMSDOS | ||||
| CC=wcc386 | ||||
| LD=wcl386 | ||||
| LIB=wlib -b -c  | ||||
| LDFLAGS=  | ||||
| O=.obj | ||||
|  | ||||
| # variables | ||||
| OBJ1=adler32$(O) compress$(O) crc32$(O) gzio$(O) uncompr$(O) deflate$(O)  | ||||
| OBJ2=trees$(O) zutil$(O) inflate$(O) infblock$(O) inftrees$(O) infcodes$(O)  | ||||
| OBJ3=infutil$(O) inffast$(O) | ||||
| OBJP1=adler32$(O)+compress$(O)+crc32$(O)+gzio$(O)+uncompr$(O)+deflate$(O) | ||||
| OBJP2=trees$(O)+zutil$(O)+inflate$(O)+infblock$(O)+inftrees$(O)+infcodes$(O) | ||||
| OBJP3=infutil$(O)+inffast$(O) | ||||
|  | ||||
| all: test | ||||
|  | ||||
| adler32.obj: adler32.c zutil.h zlib.h zconf.h | ||||
| 	$(CC) $(CFLAGS) $*.c | ||||
|  | ||||
| compress.obj: compress.c zlib.h zconf.h | ||||
| 	$(CC) $(CFLAGS) $*.c | ||||
|  | ||||
| crc32.obj: crc32.c zutil.h zlib.h zconf.h | ||||
| 	$(CC) $(CFLAGS) $*.c | ||||
|  | ||||
| deflate.obj: deflate.c deflate.h zutil.h zlib.h zconf.h | ||||
| 	$(CC) $(CFLAGS) $*.c | ||||
|  | ||||
| gzio.obj: gzio.c zutil.h zlib.h zconf.h | ||||
| 	$(CC) $(CFLAGS) $*.c | ||||
|  | ||||
| infblock.obj: infblock.c zutil.h zlib.h zconf.h infblock.h inftrees.h & | ||||
|   infcodes.h infutil.h | ||||
| 	$(CC) $(CFLAGS) $*.c | ||||
|  | ||||
| infcodes.obj: infcodes.c zutil.h zlib.h zconf.h inftrees.h infutil.h & | ||||
|   infcodes.h inffast.h | ||||
| 	$(CC) $(CFLAGS) $*.c | ||||
|  | ||||
| inflate.obj: inflate.c zutil.h zlib.h zconf.h infblock.h | ||||
| 	$(CC) $(CFLAGS) $*.c | ||||
|  | ||||
| inftrees.obj: inftrees.c zutil.h zlib.h zconf.h inftrees.h | ||||
| 	$(CC) $(CFLAGS) $*.c | ||||
|  | ||||
| infutil.obj: infutil.c zutil.h zlib.h zconf.h inftrees.h infutil.h | ||||
| 	$(CC) $(CFLAGS) $*.c | ||||
|  | ||||
| inffast.obj: inffast.c zutil.h zlib.h zconf.h inftrees.h infutil.h inffast.h | ||||
| 	$(CC) $(CFLAGS) $*.c | ||||
|  | ||||
| trees.obj: trees.c deflate.h zutil.h zlib.h zconf.h | ||||
| 	$(CC) $(CFLAGS) $*.c | ||||
|  | ||||
| uncompr.obj: uncompr.c zlib.h zconf.h | ||||
| 	$(CC) $(CFLAGS) $*.c | ||||
|  | ||||
| zutil.obj: zutil.c zutil.h zlib.h zconf.h | ||||
| 	$(CC) $(CFLAGS) $*.c | ||||
|  | ||||
| example.obj: example.c zlib.h zconf.h | ||||
| 	$(CC) $(CFLAGS) $*.c | ||||
|  | ||||
| minigzip.obj: minigzip.c zlib.h zconf.h | ||||
| 	$(CC) $(CFLAGS) $*.c | ||||
|  | ||||
| # we must cut the command line to fit in the MS/DOS 128 byte limit: | ||||
| zlib.lib: $(OBJ1) $(OBJ2) $(OBJ3)  | ||||
| 	del zlib.lib | ||||
| 	$(LIB) zlib.lib +$(OBJP1) | ||||
| 	$(LIB) zlib.lib +$(OBJP2) | ||||
| 	$(LIB) zlib.lib +$(OBJP3) | ||||
|  | ||||
| example.exe: example.obj zlib.lib | ||||
| 	$(LD) $(LDFLAGS) example.obj zlib.lib | ||||
|  | ||||
| minigzip.exe: minigzip.obj zlib.lib | ||||
| 	$(LD) $(LDFLAGS) minigzip.obj zlib.lib | ||||
|  | ||||
| test: minigzip.exe example.exe | ||||
| 	example | ||||
| 	echo hello world | minigzip | minigzip -d >test | ||||
| 	type test | ||||
|  | ||||
| #clean: | ||||
| #	del *.obj | ||||
| #	del *.exe | ||||
							
								
								
									
										62
									
								
								README
									
									
									
									
									
								
							
							
						
						
									
										62
									
								
								README
									
									
									
									
									
								
							| @@ -1,7 +1,9 @@ | ||||
| zlib 1.0 is a general purpose data compression library.  All the code | ||||
| zlib 1.0.2 is a general purpose data compression library.  All the code | ||||
| is reentrant (thread safe).  The data format used by the zlib library | ||||
| is described in the files zlib-3.3.doc, deflate-1.3.doc and | ||||
| gzip-4.3.doc, available in ftp://ftp.uu.net/pub/archiving/zip/doc/ | ||||
| is described by RFCs (Request for Comments) 1950 to 1952 in the files  | ||||
| ftp://ds.internic.net/rfc/rfc1950.txt (zlib format), rfc1951.txt (deflate | ||||
| format) and rfc1952.txt (gzip format). These documents are also available in | ||||
| other formats from ftp://ftp.uu.net/graphics/png/documents/zlib/zdoc-index.html | ||||
|  | ||||
| All functions of the compression library are documented in the file | ||||
| zlib.h. A usage example of the library is given in the file example.c | ||||
| @@ -17,29 +19,25 @@ makefiles such as Makefile.msc; for VMS, use Make_vms.com or descrip.mms. | ||||
| Questions about zlib should be sent to <zlib@quest.jpl.nasa.gov> or, | ||||
| if this fails, to the addresses given below in the Copyright section. | ||||
|  | ||||
| The changes made in version 1.0 are documented in the file ChangeLog. | ||||
| The main changes since 0.95 are: | ||||
| - allow preset dictionary shared between compressor and decompressor | ||||
| - allow compression level 0 (no compression) | ||||
| - add deflateParams in zlib.h: allow dynamic change of compression level | ||||
|   and compression strategy. | ||||
| - test large buffers and deflateParams in example.c | ||||
| - add optional "configure" to build zlib as a shared library | ||||
| - suppress Makefile.qnx, use configure instead | ||||
| - fixes for 64-bit systems (needed for Alpha and Cray) | ||||
| - declare Z_DEFLATED in zlib.h (possible parameter for deflateInit2) | ||||
| - always return Z_BUF_ERROR when deflate() has nothing to do | ||||
| - deflateInit and inflateInit are now macros to allow version checking | ||||
| - prefix all global functions and types with z_ with -DZ_PREFIX | ||||
| - fix some very unlikely race conditions in multi-threaded environment | ||||
| - several minor fixes for better portability | ||||
| - free in reverse order of allocation to help memory manager | ||||
| - use zlib-1.0/* instead of zlib/* inside the tar.gz | ||||
| - make zlib warning-free with "gcc -O3 -Wall -Wwrite-strings -Wpointer-arith | ||||
|   -Wconversion -Wstrict-prototypes -Wmissing-prototypes" | ||||
| - allow gzread on concatenated .gz files | ||||
| - deflateEnd now returns Z_DATA_ERROR if it was premature | ||||
| - deflate is finally (?) fully deterministic | ||||
| The changes made in version 1.0.2 are documented in the file ChangeLog. | ||||
| The main changes since 0.99 are: | ||||
|  | ||||
| - fix array overlay in deflate.c which sometimes caused bad compressed data | ||||
| - fix inflate bug with empty stored block | ||||
| - fix MSDOS medium model which was broken in 0.99 | ||||
| - fix deflateParams() which could generated bad compressed data. | ||||
| - added an INDEX file | ||||
| - new makefiles for DJGPP (Makefile.dj2), 32-bit Borland (Makefile.b32), | ||||
|   Watcom (Makefile.wat), Amiga SAS/C (Makefile.sas) | ||||
| - several portability improvements | ||||
| - added algorithm.doc | ||||
| - added Windows DLL support | ||||
| - added a function zlibVersion (for the DLL support) | ||||
|  | ||||
| A Perl interface to zlib written by Paul Marquess <pmarquess@bfsec.bt.co.uk> | ||||
| is in the CPAN (Comprehensive Perl Archive Network) sites, such as: | ||||
| ftp://ftp.cis.ufl.edu/pub/perl/CPAN/modules/by-module/Compress/Compress-Zlib* | ||||
|  | ||||
|  | ||||
| Notes for some targets: | ||||
|  | ||||
| @@ -47,8 +45,8 @@ Notes for some targets: | ||||
|   avoid any far allocation; it was tested with -DMAX_WBITS=11 -DMAX_MEM_LEVEL=3 | ||||
|  | ||||
| - For 64-bit Iris, deflate.c must be compiled without any optimization. | ||||
|   With -O, one libpng test fails. The test works in 32 bit mode (with the | ||||
|   -32 compiler flag). | ||||
|   With -O, one libpng test fails. The test works in 32 bit mode (with | ||||
|   the -32 compiler flag). | ||||
|  | ||||
| - zlib doesn't work with gcc 2.6.3 on a DEC 3000/300LX under OSF/1 2.1    | ||||
|   it works when compiled with cc. | ||||
| @@ -56,9 +54,11 @@ Notes for some targets: | ||||
| - zlib doesn't work on HP-UX 9.05 with one cc compiler (the one not | ||||
|   accepting the -O option). It works with the other cc compiler. | ||||
|  | ||||
| A Perl interface to zlib written by Paul Marquess <pmarquess@bfsec.bt.co.uk> | ||||
| is in the CPAN (Comprehensive Perl Archive Network) sites, such as: | ||||
| ftp://ftp.cis.ufl.edu/pub/perl/CPAN/modules/by-module/Compress/Compress-Zlib* | ||||
| - To build a Windows DLL version, include in a DLL project zlib.def, zlib.rc | ||||
|   and all .c files except example.c and minigzip.c; compile with -DZLIB_DLL | ||||
|   For help on building a zlib DLL, contact Alessandro Iacopetti | ||||
|   <iaco@cicladi.unial.it> | ||||
|  | ||||
|  | ||||
| Acknowledgments: | ||||
|  | ||||
|   | ||||
							
								
								
									
										16
									
								
								adler32.c
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								adler32.c
									
									
									
									
									
								
							| @@ -3,7 +3,7 @@ | ||||
|  * For conditions of distribution and use, see copyright notice in zlib.h  | ||||
|  */ | ||||
|  | ||||
| /* $Id: adler32.c,v 1.6 1995/05/03 17:27:08 jloup Exp $ */ | ||||
| /* $Id: adler32.c,v 1.10 1996/05/22 11:52:18 me Exp $ */ | ||||
|  | ||||
| #include "zlib.h" | ||||
|  | ||||
| @@ -11,11 +11,11 @@ | ||||
| #define NMAX 5552 | ||||
| /* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */ | ||||
|  | ||||
| #define DO1(buf)  {s1 += *buf++; s2 += s1;} | ||||
| #define DO2(buf)  DO1(buf); DO1(buf); | ||||
| #define DO4(buf)  DO2(buf); DO2(buf); | ||||
| #define DO8(buf)  DO4(buf); DO4(buf); | ||||
| #define DO16(buf) DO8(buf); DO8(buf); | ||||
| #define DO1(buf,i)  {s1 += buf[i]; s2 += s1;} | ||||
| #define DO2(buf,i)  DO1(buf,i); DO1(buf,i+1); | ||||
| #define DO4(buf,i)  DO2(buf,i); DO2(buf,i+2); | ||||
| #define DO8(buf,i)  DO4(buf,i); DO4(buf,i+4); | ||||
| #define DO16(buf)   DO8(buf,0); DO8(buf,8); | ||||
|  | ||||
| /* ========================================================================= */ | ||||
| uLong adler32(adler, buf, len) | ||||
| @@ -34,10 +34,12 @@ uLong adler32(adler, buf, len) | ||||
|         len -= k; | ||||
|         while (k >= 16) { | ||||
|             DO16(buf); | ||||
| 	    buf += 16; | ||||
|             k -= 16; | ||||
|         } | ||||
|         if (k != 0) do { | ||||
|             DO1(buf); | ||||
|             s1 += *buf++; | ||||
| 	    s2 += s1; | ||||
|         } while (--k); | ||||
|         s1 %= BASE; | ||||
|         s2 %= BASE; | ||||
|   | ||||
							
								
								
									
										105
									
								
								algorithm.doc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										105
									
								
								algorithm.doc
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,105 @@ | ||||
| 1. Compression algorithm (deflate) | ||||
|  | ||||
| The deflation algorithm used by zlib (also zip and gzip) is a variation of | ||||
| LZ77 (Lempel-Ziv 1977, see reference below). It finds duplicated strings in | ||||
| the input data.  The second occurrence of a string is replaced by a | ||||
| pointer to the previous string, in the form of a pair (distance, | ||||
| length).  Distances are limited to 32K bytes, and lengths are limited | ||||
| to 258 bytes. When a string does not occur anywhere in the previous | ||||
| 32K bytes, it is emitted as a sequence of literal bytes.  (In this | ||||
| description, 'string' must be taken as an arbitrary sequence of bytes, | ||||
| and is not restricted to printable characters.) | ||||
|  | ||||
| Literals or match lengths are compressed with one Huffman tree, and | ||||
| match distances are compressed with another tree. The trees are stored | ||||
| in a compact form at the start of each block. The blocks can have any | ||||
| size (except that the compressed data for one block must fit in | ||||
| available memory). A block is terminated when deflate() determines that | ||||
| it would be useful to start another block with fresh trees. (This is | ||||
| somewhat similar to compress.) | ||||
|  | ||||
| Duplicated strings are found using a hash table. All input strings of | ||||
| length 3 are inserted in the hash table. A hash index is computed for | ||||
| the next 3 bytes. If the hash chain for this index is not empty, all | ||||
| strings in the chain are compared with the current input string, and | ||||
| the longest match is selected. | ||||
|  | ||||
| The hash chains are searched starting with the most recent strings, to | ||||
| favor small distances and thus take advantage of the Huffman encoding. | ||||
| The hash chains are singly linked. There are no deletions from the | ||||
| hash chains, the algorithm simply discards matches that are too old. | ||||
|  | ||||
| To avoid a worst-case situation, very long hash chains are arbitrarily | ||||
| truncated at a certain length, determined by a runtime option (level | ||||
| parameter of deflateInit). So deflate() does not always find the longest | ||||
| possible match but generally finds a match which is long enough. | ||||
|  | ||||
| deflate() also defers the selection of matches with a lazy evaluation | ||||
| mechanism. After a match of length N has been found, deflate() searches for a | ||||
| longer match at the next input byte. If a longer match is found, the | ||||
| previous match is truncated to a length of one (thus producing a single | ||||
| literal byte) and the longer match is emitted afterwards.  Otherwise, | ||||
| the original match is kept, and the next match search is attempted only | ||||
| N steps later. | ||||
|  | ||||
| The lazy match evaluation is also subject to a runtime parameter. If | ||||
| the current match is long enough, deflate() reduces the search for a longer | ||||
| match, thus speeding up the whole process. If compression ratio is more | ||||
| important than speed, deflate() attempts a complete second search even if | ||||
| the first match is already long enough. | ||||
|  | ||||
| The lazy match evaluation is not performed for the fastest compression | ||||
| modes (level parameter 1 to 3). For these fast modes, new strings | ||||
| are inserted in the hash table only when no match was found, or | ||||
| when the match is not too long. This degrades the compression ratio | ||||
| but saves time since there are both fewer insertions and fewer searches. | ||||
|  | ||||
|  | ||||
| 2. Decompression algorithm (inflate) | ||||
|  | ||||
| The real question is given a Huffman tree, how to decode fast.  The most | ||||
| important realization is that shorter codes are much more common than | ||||
| longer codes, so pay attention to decoding the short codes fast, and let | ||||
| the long codes take longer to decode. | ||||
|  | ||||
| inflate() sets up a first level table that covers some number of bits of | ||||
| input less than the length of longest code.  It gets that many bits from the | ||||
| stream, and looks it up in the table.  The table will tell if the next | ||||
| code is that many bits or less and how many, and if it is, it will tell | ||||
| the value, else it will point to the next level table for which inflate() | ||||
| grabs more bits and tries to decode a longer code. | ||||
|  | ||||
| How many bits to make the first lookup is a tradeoff between the time it | ||||
| takes to decode and the time it takes to build the table.  If building the | ||||
| table took no time (and if you had infinite memory), then there would only | ||||
| be a first level table to cover all the way to the longest code.  However, | ||||
| building the table ends up taking a lot longer for more bits since short | ||||
| codes are replicated many times in such a table.  What inflate() does is | ||||
| simply to make the number of bits in the first table a variable, and set it | ||||
| for the maximum speed. | ||||
|  | ||||
| inflate() sends new trees relatively often, so it is possibly set for a | ||||
| smaller first level table than an application that has only one tree for | ||||
| all the data.  For inflate, which has 286 possible codes for the | ||||
| literal/length tree, the size of the first table is nine bits.  Also the | ||||
| distance trees have 30 possible values, and the size of the first table is | ||||
| six bits.  Note that for each of those cases, the table ended up one bit | ||||
| longer than the "average" code length, i.e. the code length of an | ||||
| approximately flat code which would be a little more than eight bits for | ||||
| 286 symbols and a little less than five bits for 30 symbols.  It would be | ||||
| interesting to see if optimizing the first level table for other | ||||
| applications gave values within a bit or two of the flat code size. | ||||
|  | ||||
|  | ||||
| Jean-loup Gailly        Mark Adler | ||||
| gzip@prep.ai.mit.edu    madler@alumni.caltech.edu | ||||
|  | ||||
|  | ||||
| References: | ||||
|  | ||||
| [LZ77] Ziv J., Lempel A., "A Universal Algorithm for Sequential Data | ||||
| Compression", IEEE Transactions on Information Theory", Vol. 23, No. 3, | ||||
| pp. 337-343. | ||||
|  | ||||
| "DEFLATE Compressed Data Format Specification" available in | ||||
| ftp://ds.internic.net/rfc/rfc1951.txt | ||||
| @@ -3,7 +3,7 @@ | ||||
|  * For conditions of distribution and use, see copyright notice in zlib.h  | ||||
|  */ | ||||
|  | ||||
| /* $Id: compress.c,v 1.6 1995/05/03 17:27:08 jloup Exp $ */ | ||||
| /* $Id: compress.c,v 1.10 1996/05/23 16:51:12 me Exp $ */ | ||||
|  | ||||
| #include "zlib.h" | ||||
|  | ||||
| @@ -30,9 +30,10 @@ int compress (dest, destLen, source, sourceLen) | ||||
|  | ||||
|     stream.next_in = (Bytef*)source; | ||||
|     stream.avail_in = (uInt)sourceLen; | ||||
| #ifdef MAXSEG_64K | ||||
|     /* Check for source > 64K on 16-bit machine: */ | ||||
|     if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR; | ||||
|  | ||||
| #endif | ||||
|     stream.next_out = dest; | ||||
|     stream.avail_out = (uInt)*destLen; | ||||
|     if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR; | ||||
|   | ||||
							
								
								
									
										29
									
								
								configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										29
									
								
								configure
									
									
									
									
										vendored
									
									
								
							| @@ -13,6 +13,7 @@ | ||||
| LIBS=libz.a | ||||
| VER=`sed -n -e '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h` | ||||
| AR=${AR-"ar rc"} | ||||
| RANLIB=${RANLIB-"ranlib"} | ||||
| prefix=${prefix-/usr/local} | ||||
| exec_prefix=${exec_prefix-$prefix} | ||||
|  | ||||
| @@ -36,25 +37,32 @@ else | ||||
|   SunOS\ 4*) SFLAGS=${CFLAGS-"-O2 -PIC"} | ||||
| 	     CFLAGS=${CFLAGS-"-O2"} | ||||
| 	     LDSHARED=${LDSHARED-"ld"};; | ||||
|   IRIX*)     SFLAGS=${CFLAGS-"-O2 -rpath ."} | ||||
| 	     CFLAGS=${CFLAGS-"-O2"} | ||||
|   IRIX*)     SFLAGS=${CFLAGS-"-ansi -O2 -rpath ."} | ||||
| 	     CFLAGS=${CFLAGS-"-ansi -O2"} | ||||
| 	     LDSHARED=${LDSHARED-"cc -shared"};; | ||||
|   QNX*)      SFLAGS=${CFLAGS-"-4 -O -Q"} | ||||
|              CFLAGS=${CFLAGS-"-4 -O -Q"} | ||||
|   QNX*)      SFLAGS=${CFLAGS-"-4 -O"} | ||||
|              CFLAGS=${CFLAGS-"-4 -O"} | ||||
| 	     LDSHARED=${LDSHARED-"cc"} | ||||
|              LIBS=zlib.lib | ||||
|              RANLIB=${RANLIB-"true"} | ||||
|              AR="cc -A";; | ||||
|   SCO_SV\ 3.2*) SFLAGS=${CFLAGS-"-O3 -dy -KPIC "} | ||||
| 	     CFLAGS=${CFLAGS-"-O3"} | ||||
| 	     LDSHARED=${LDSHARED-"cc -dy -KPIC -G"};; | ||||
|   HP-UX*)    SFLAGS=${CFLAGS-"-O +z"} | ||||
| 	     CFLAGS=${CFLAGS-"-O"} | ||||
| 	     LDSHARED=${LDSHARED-"ld -b"} | ||||
| 	     SHAREDLIBS='libz.sl';; | ||||
|   # send working options for other systems to gzip@prep.ai.mit.edu | ||||
|   *)         SFLAGS=${CFLAGS-"-O"} | ||||
| 	     CFLAGS=${CFLAGS-"-O"} | ||||
| 	     LDSHARED=${LDSHARED-"-shared"};; | ||||
| 	     LDSHARED=${LDSHARED-"cc -shared"};; | ||||
|   esac | ||||
| fi | ||||
|  | ||||
| echo Checking for shared library support... | ||||
| # we must test in two steps (cc then ld), required at least on SunOS 4.x | ||||
| if test "`$CC -c $SFLAGS $test.c 2>&1`" = "" && | ||||
|    test "`$LDSHARED -o $test.so $test.o 2>&1`" = ""; then | ||||
| if test "`($CC -c $SFLAGS $test.c) 2>&1`" = "" && | ||||
|    test "`($LDSHARED -o $test.so $test.o) 2>&1`" = ""; then | ||||
|   CFLAGS="$SFLAGS" | ||||
|   LIBS='libz.so.$(VER)' | ||||
|   echo Building shared library libz.so.$VER with $CC. | ||||
| @@ -65,17 +73,14 @@ fi | ||||
| rm -f $test.[co] $test.so | ||||
|  | ||||
| # udpate Makefile | ||||
| # ed -s Makefile <<EOF | ||||
| sed < Makefile.in " | ||||
| /^CC *=/s/=.*/=$CC/ | ||||
| /^CFLAGS *=/s/=.*/=$CFLAGS/ | ||||
| /^LDSHARED *=/s/=.*/=$LDSHARED/ | ||||
| /^LIBS *=/s,=.*,=$LIBS, | ||||
| /^AR *=/s/=.*/=$AR/ | ||||
| /^RANLIB *=/s,=.*,=$RANLIB, | ||||
| /^VER *=/s/=.*/=$VER/ | ||||
| /^prefix *=/s,=.*,=$prefix, | ||||
| /^exec_prefix *=/s,=.*,=$exec_prefix, | ||||
| " > Makefile | ||||
| #w | ||||
| #q | ||||
| #EOF | ||||
|   | ||||
							
								
								
									
										2
									
								
								crc32.c
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								crc32.c
									
									
									
									
									
								
							| @@ -3,7 +3,7 @@ | ||||
|  * For conditions of distribution and use, see copyright notice in zlib.h  | ||||
|  */ | ||||
|  | ||||
| /* $Id: crc32.c,v 1.4 1995/04/14 14:55:12 jloup Exp $ */ | ||||
| /* $Id: crc32.c,v 1.8 1996/01/30 21:59:10 me Exp $ */ | ||||
|  | ||||
| #include "zlib.h" | ||||
|  | ||||
|   | ||||
							
								
								
									
										44
									
								
								deflate.c
									
									
									
									
									
								
							
							
						
						
									
										44
									
								
								deflate.c
									
									
									
									
									
								
							| @@ -47,11 +47,11 @@ | ||||
|  * | ||||
|  */ | ||||
|  | ||||
| /* $Id: deflate.c,v 1.8 1995/05/03 17:27:08 jloup Exp $ */ | ||||
| /* $Id: deflate.c,v 1.13 1996/05/22 11:52:21 me Exp $ */ | ||||
|  | ||||
| #include "deflate.h" | ||||
|  | ||||
| char deflate_copyright[] = " deflate 1.0 Copyright 1995-1996 Jean-loup Gailly "; | ||||
| char deflate_copyright[] = " deflate 1.0.2 Copyright 1995-1996 Jean-loup Gailly "; | ||||
| /* | ||||
|   If you use the zlib library in a product, an acknowledgment is welcome | ||||
|   in the documentation of your product. If for some reason you cannot | ||||
| @@ -67,7 +67,7 @@ local int  deflate_stored OF((deflate_state *s, int flush)); | ||||
| local int  deflate_fast   OF((deflate_state *s, int flush)); | ||||
| local int  deflate_slow   OF((deflate_state *s, int flush)); | ||||
| local void lm_init        OF((deflate_state *s)); | ||||
| local int longest_match   OF((deflate_state *s, IPos cur_match)); | ||||
| local uInt longest_match  OF((deflate_state *s, IPos cur_match)); | ||||
| local void putShortMSB    OF((deflate_state *s, uInt b)); | ||||
| local void flush_pending  OF((z_stream *strm)); | ||||
| local int read_buf        OF((z_stream *strm, charf *buf, unsigned size)); | ||||
| @@ -157,7 +157,7 @@ struct static_tree_desc_s {int dummy;}; /* for buggy compilers */ | ||||
| #define INSERT_STRING(s, str, match_head) \ | ||||
|    (UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]), \ | ||||
|     s->prev[(str) & s->w_mask] = match_head = s->head[s->ins_h], \ | ||||
|     s->head[s->ins_h] = (str)) | ||||
|     s->head[s->ins_h] = (Pos)(str)) | ||||
|  | ||||
| /* =========================================================================== | ||||
|  * Initialize the hash table (avoiding 64K overflow for 16 bit systems). | ||||
| @@ -194,6 +194,11 @@ int deflateInit2_(strm, level, method, windowBits, memLevel, strategy, | ||||
|     deflate_state *s; | ||||
|     int noheader = 0; | ||||
|  | ||||
|     ushf *overlay; | ||||
|     /* We overlay pending_buf and d_buf+l_buf. This works since the average | ||||
|      * output size for (length,distance) codes is <= 24 bits. | ||||
|      */ | ||||
|  | ||||
|     if (version == Z_NULL || version[0] != ZLIB_VERSION[0] || | ||||
|         stream_size != sizeof(z_stream)) { | ||||
| 	return Z_VERSION_ERROR; | ||||
| @@ -239,7 +244,8 @@ int deflateInit2_(strm, level, method, windowBits, memLevel, strategy, | ||||
|  | ||||
|     s->lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */ | ||||
|  | ||||
|     s->pending_buf = (uchf *) ZALLOC(strm, s->lit_bufsize, 2*sizeof(ush)); | ||||
|     overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2); | ||||
|     s->pending_buf = (uchf *) overlay; | ||||
|  | ||||
|     if (s->window == Z_NULL || s->prev == Z_NULL || s->head == Z_NULL || | ||||
|         s->pending_buf == Z_NULL) { | ||||
| @@ -247,12 +253,8 @@ int deflateInit2_(strm, level, method, windowBits, memLevel, strategy, | ||||
|         deflateEnd (strm); | ||||
|         return Z_MEM_ERROR; | ||||
|     } | ||||
|     s->l_buf = (uchf *) &(s->pending_buf[s->lit_bufsize]); | ||||
|     s->d_buf = (ushf *) &(s->pending_buf[2*s->lit_bufsize]); | ||||
|     /* We overlay pending_buf and d_buf+l_buf. This works since the average | ||||
|      * output size for (length,distance) codes is <= 32 bits (worst case | ||||
|      * is 15+15+13=33). d_buf is put last in case sizeof(short)>2. | ||||
|      */ | ||||
|     s->d_buf = overlay + s->lit_bufsize/sizeof(ush); | ||||
|     s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize; | ||||
|  | ||||
|     s->level = level; | ||||
|     s->strategy = strategy; | ||||
| @@ -270,7 +272,7 @@ int deflateSetDictionary (strm, dictionary, dictLength) | ||||
|     deflate_state *s; | ||||
|     uInt length = dictLength; | ||||
|     uInt n; | ||||
|     IPos hash_head; | ||||
|     IPos hash_head = 0; | ||||
|  | ||||
|     if (strm == Z_NULL || strm->state == Z_NULL || dictionary == Z_NULL || | ||||
|         strm->state->status != INIT_STATE) return Z_STREAM_ERROR; | ||||
| @@ -296,6 +298,7 @@ int deflateSetDictionary (strm, dictionary, dictLength) | ||||
|     for (n = 0; n <= length - MIN_MATCH; n++) { | ||||
| 	INSERT_STRING(s, n, hash_head); | ||||
|     } | ||||
|     if (hash_head) hash_head = 0;  /* to make compiler happy */ | ||||
|     return Z_OK; | ||||
| } | ||||
|  | ||||
| @@ -337,6 +340,7 @@ int deflateParams(strm, level, strategy) | ||||
| { | ||||
|     deflate_state *s; | ||||
|     compress_func func; | ||||
|     int err = Z_OK; | ||||
|  | ||||
|     if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; | ||||
|     s = strm->state; | ||||
| @@ -349,11 +353,9 @@ int deflateParams(strm, level, strategy) | ||||
|     } | ||||
|     func = configuration_table[s->level].func; | ||||
|  | ||||
|     if (func != configuration_table[level].func | ||||
| 	&& strm->state->lookahead != 0) { | ||||
|  | ||||
|     if (func != configuration_table[level].func && strm->total_in != 0) { | ||||
| 	/* Flush the last buffer: */ | ||||
| 	(void)(*func)(strm->state, Z_PARTIAL_FLUSH); | ||||
| 	err = deflate(strm, Z_PARTIAL_FLUSH); | ||||
|     } | ||||
|     if (s->level != level) { | ||||
| 	s->level = level; | ||||
| @@ -363,7 +365,7 @@ int deflateParams(strm, level, strategy) | ||||
| 	s->max_chain_length = configuration_table[level].max_chain; | ||||
|     } | ||||
|     s->strategy = strategy; | ||||
|     return Z_OK; | ||||
|     return err; | ||||
| } | ||||
|  | ||||
| /* ========================================================================= | ||||
| @@ -630,7 +632,7 @@ local void lm_init (s) | ||||
| /* For 80x86 and 680x0, an optimized version will be provided in match.asm or | ||||
|  * match.S. The code will be functionally equivalent. | ||||
|  */ | ||||
| local int longest_match(s, cur_match) | ||||
| local uInt longest_match(s, cur_match) | ||||
|     deflate_state *s; | ||||
|     IPos cur_match;                             /* current match */ | ||||
| { | ||||
| @@ -673,7 +675,7 @@ local int longest_match(s, cur_match) | ||||
|     /* Do not look for matches beyond the end of the input. This is necessary | ||||
|      * to make deflate deterministic. | ||||
|      */ | ||||
|     if (nice_match > s->lookahead) nice_match = s->lookahead; | ||||
|     if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead; | ||||
|  | ||||
|     Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead"); | ||||
|  | ||||
| @@ -764,7 +766,7 @@ local int longest_match(s, cur_match) | ||||
|     } while ((cur_match = prev[cur_match & wmask]) > limit | ||||
|              && --chain_length != 0); | ||||
|  | ||||
|     if (best_len <= s->lookahead) return best_len; | ||||
|     if ((uInt)best_len <= s->lookahead) return best_len; | ||||
|     return s->lookahead; | ||||
| } | ||||
| #endif /* ASMV */ | ||||
| @@ -947,7 +949,7 @@ local int deflate_stored(s, flush) | ||||
| 	s->lookahead = 0; | ||||
|  | ||||
|         /* Stored blocks are limited to 0xffff bytes: */ | ||||
|         if (s->strstart == 0 || s->strstart > 0xffff) { | ||||
|         if (s->strstart == 0 || s->strstart > 0xfffe) { | ||||
| 	    /* strstart == 0 is possible when wraparound on 16-bit machine */ | ||||
| 	    s->lookahead = s->strstart - 0xffff; | ||||
| 	    s->strstart = 0xffff; | ||||
|   | ||||
| @@ -8,7 +8,7 @@ | ||||
|    subject to change. Applications should only use zlib.h. | ||||
|  */ | ||||
|  | ||||
| /* $Id: deflate.h,v 1.5 1995/05/03 17:27:09 jloup Exp $ */ | ||||
| /* $Id: deflate.h,v 1.9 1996/01/30 21:59:13 me Exp $ */ | ||||
|  | ||||
| #ifndef _DEFLATE_H | ||||
| #define _DEFLATE_H | ||||
|   | ||||
							
								
								
									
										69
									
								
								example.c
									
									
									
									
									
								
							
							
						
						
									
										69
									
								
								example.c
									
									
									
									
									
								
							| @@ -3,7 +3,7 @@ | ||||
|  * For conditions of distribution and use, see copyright notice in zlib.h  | ||||
|  */ | ||||
|  | ||||
| /* $Id: example.c,v 1.9 1995/05/03 17:27:09 jloup Exp $ */ | ||||
| /* $Id: example.c,v 1.16 1996/05/23 17:11:28 me Exp $ */ | ||||
|  | ||||
| #include <stdio.h> | ||||
| #include "zlib.h" | ||||
| @@ -30,30 +30,30 @@ const char hello[] = "hello, hello!"; | ||||
| const char dictionary[] = "hello"; | ||||
| uLong dictId; /* Adler32 value of the dictionary */ | ||||
|  | ||||
| void test_compress      OF((Bytef *compr, uLong comprLen, | ||||
| 		            Bytef *uncompr, uLong uncomprLen)); | ||||
| void test_compress      OF((Byte *compr, uLong comprLen, | ||||
| 		            Byte *uncompr, uLong uncomprLen)); | ||||
| void test_gzio          OF((const char *out, const char *in,  | ||||
| 		            Bytef *uncompr, int uncomprLen)); | ||||
| void test_deflate       OF((Bytef *compr, uLong comprLen)); | ||||
| void test_inflate       OF((Bytef *compr, uLong comprLen, | ||||
| 		            Bytef *uncompr, uLong uncomprLen)); | ||||
| void test_large_deflate OF((Bytef *compr, uLong comprLen, | ||||
| 		            Bytef *uncompr, uLong uncomprLen)); | ||||
| void test_large_inflate OF((Bytef *compr, uLong comprLen, | ||||
| 		            Bytef *uncompr, uLong uncomprLen)); | ||||
| void test_flush         OF((Bytef *compr, uLong comprLen)); | ||||
| void test_sync          OF((Bytef *compr, uLong comprLen, | ||||
| 		            Bytef *uncompr, uLong uncomprLen)); | ||||
| void test_dict_deflate  OF((Bytef *compr, uLong comprLen)); | ||||
| void test_dict_inflate  OF((Bytef *compr, uLong comprLen, | ||||
| 		            Bytef *uncompr, uLong uncomprLen)); | ||||
| 		            Byte *uncompr, int uncomprLen)); | ||||
| void test_deflate       OF((Byte *compr, uLong comprLen)); | ||||
| void test_inflate       OF((Byte *compr, uLong comprLen, | ||||
| 		            Byte *uncompr, uLong uncomprLen)); | ||||
| void test_large_deflate OF((Byte *compr, uLong comprLen, | ||||
| 		            Byte *uncompr, uLong uncomprLen)); | ||||
| void test_large_inflate OF((Byte *compr, uLong comprLen, | ||||
| 		            Byte *uncompr, uLong uncomprLen)); | ||||
| void test_flush         OF((Byte *compr, uLong comprLen)); | ||||
| void test_sync          OF((Byte *compr, uLong comprLen, | ||||
| 		            Byte *uncompr, uLong uncomprLen)); | ||||
| void test_dict_deflate  OF((Byte *compr, uLong comprLen)); | ||||
| void test_dict_inflate  OF((Byte *compr, uLong comprLen, | ||||
| 		            Byte *uncompr, uLong uncomprLen)); | ||||
| int  main               OF((int argc, char *argv[])); | ||||
|  | ||||
| /* =========================================================================== | ||||
|  * Test compress() and uncompress() | ||||
|  */ | ||||
| void test_compress(compr, comprLen, uncompr, uncomprLen) | ||||
|     Bytef *compr, *uncompr; | ||||
|     Byte *compr, *uncompr; | ||||
|     uLong comprLen, uncomprLen; | ||||
| { | ||||
|     int err; | ||||
| @@ -80,7 +80,7 @@ void test_compress(compr, comprLen, uncompr, uncomprLen) | ||||
| void test_gzio(out, in, uncompr, uncomprLen) | ||||
|     const char *out; /* output file */ | ||||
|     const char *in;  /* input file */ | ||||
|     Bytef *uncompr; | ||||
|     Byte *uncompr; | ||||
|     int  uncomprLen; | ||||
| { | ||||
|     int err; | ||||
| @@ -121,7 +121,7 @@ void test_gzio(out, in, uncompr, uncomprLen) | ||||
|  * Test deflate() with small buffers | ||||
|  */ | ||||
| void test_deflate(compr, comprLen) | ||||
|     Bytef *compr; | ||||
|     Byte *compr; | ||||
|     uLong comprLen; | ||||
| { | ||||
|     z_stream c_stream; /* compression stream */ | ||||
| @@ -159,7 +159,7 @@ void test_deflate(compr, comprLen) | ||||
|  * Test inflate() with small buffers | ||||
|  */ | ||||
| void test_inflate(compr, comprLen, uncompr, uncomprLen) | ||||
|     Bytef *compr, *uncompr; | ||||
|     Byte *compr, *uncompr; | ||||
|     uLong comprLen, uncomprLen; | ||||
| { | ||||
|     int err; | ||||
| @@ -198,7 +198,7 @@ void test_inflate(compr, comprLen, uncompr, uncomprLen) | ||||
|  * Test deflate() with large buffers and dynamic change of compression level | ||||
|  */ | ||||
| void test_large_deflate(compr, comprLen, uncompr, uncomprLen) | ||||
|     Bytef *compr, *uncompr; | ||||
|     Byte *compr, *uncompr; | ||||
|     uLong comprLen, uncomprLen; | ||||
| { | ||||
|     z_stream c_stream; /* compression stream */ | ||||
| @@ -251,7 +251,7 @@ void test_large_deflate(compr, comprLen, uncompr, uncomprLen) | ||||
|  * Test inflate() with large buffers | ||||
|  */ | ||||
| void test_large_inflate(compr, comprLen, uncompr, uncomprLen) | ||||
|     Bytef *compr, *uncompr; | ||||
|     Byte *compr, *uncompr; | ||||
|     uLong comprLen, uncomprLen; | ||||
| { | ||||
|     int err; | ||||
| @@ -291,7 +291,7 @@ void test_large_inflate(compr, comprLen, uncompr, uncomprLen) | ||||
|  * Test deflate() with full flush | ||||
|  */ | ||||
| void test_flush(compr, comprLen) | ||||
|     Bytef *compr; | ||||
|     Byte *compr; | ||||
|     uLong comprLen; | ||||
| { | ||||
|     z_stream c_stream; /* compression stream */ | ||||
| @@ -327,7 +327,7 @@ void test_flush(compr, comprLen) | ||||
|  * Test inflateSync() | ||||
|  */ | ||||
| void test_sync(compr, comprLen, uncompr, uncomprLen) | ||||
|     Bytef *compr, *uncompr; | ||||
|     Byte *compr, *uncompr; | ||||
|     uLong comprLen, uncomprLen; | ||||
| { | ||||
|     int err; | ||||
| @@ -369,7 +369,7 @@ void test_sync(compr, comprLen, uncompr, uncomprLen) | ||||
|  * Test deflate() with preset dictionary | ||||
|  */ | ||||
| void test_dict_deflate(compr, comprLen) | ||||
|     Bytef *compr; | ||||
|     Byte *compr; | ||||
|     uLong comprLen; | ||||
| { | ||||
|     z_stream c_stream; /* compression stream */ | ||||
| @@ -405,7 +405,7 @@ void test_dict_deflate(compr, comprLen) | ||||
|  * Test inflate() with a preset dictionary | ||||
|  */ | ||||
| void test_dict_inflate(compr, comprLen, uncompr, uncomprLen) | ||||
|     Bytef *compr, *uncompr; | ||||
|     Byte *compr, *uncompr; | ||||
|     uLong comprLen, uncomprLen; | ||||
| { | ||||
|     int err; | ||||
| @@ -458,20 +458,23 @@ int main(argc, argv) | ||||
|     int argc; | ||||
|     char *argv[]; | ||||
| { | ||||
|     Bytef *compr, *uncompr; | ||||
|     uLong comprLen = 32750*sizeof(int); /* don't overflow on MSDOS */ | ||||
|     Byte *compr, *uncompr; | ||||
|     uLong comprLen = 10000*sizeof(int); /* don't overflow on MSDOS */ | ||||
|     uLong uncomprLen = comprLen; | ||||
|  | ||||
|     if (zlib_version[0] != ZLIB_VERSION[0]) { | ||||
|     if (zlibVersion()[0] != ZLIB_VERSION[0]) { | ||||
|         fprintf(stderr, "incompatible zlib version\n"); | ||||
|         exit(1); | ||||
|  | ||||
|     } else if (strcmp(zlib_version, ZLIB_VERSION) != 0) { | ||||
|     } else if (strcmp(zlibVersion(), ZLIB_VERSION) != 0) { | ||||
|         fprintf(stderr, "warning: different zlib version\n"); | ||||
|     } | ||||
|  | ||||
|     compr    = (Bytef*)malloc((uInt)comprLen); | ||||
|     uncompr  = (Bytef*)calloc((uInt)uncomprLen, 1); /* must be cleared */ | ||||
|     compr    = (Byte*)calloc((uInt)comprLen, 1); | ||||
|     uncompr  = (Byte*)calloc((uInt)uncomprLen, 1); | ||||
|     /* compr and uncompr are cleared to avoid reading uninitialized | ||||
|      * data and to ensure that uncompr compresses well. | ||||
|      */ | ||||
|     if (compr == Z_NULL || uncompr == Z_NULL) { | ||||
|         printf("out of memory\n"); | ||||
| 	exit(1); | ||||
|   | ||||
							
								
								
									
										20
									
								
								gzio.c
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								gzio.c
									
									
									
									
									
								
							| @@ -3,7 +3,7 @@ | ||||
|  * For conditions of distribution and use, see copyright notice in zlib.h | ||||
|  */ | ||||
|  | ||||
| /* $Id: gzio.c,v 1.8 1995/05/03 17:27:09 jloup Exp $ */ | ||||
| /* $Id: gzio.c,v 1.13 1996/05/22 11:52:24 me Exp $ */ | ||||
|  | ||||
| #include <stdio.h> | ||||
|  | ||||
| @@ -203,8 +203,8 @@ local int get_byte(s) | ||||
| local void check_header(s) | ||||
|     gz_stream *s; | ||||
| { | ||||
|     int method = 0; | ||||
|     int flags = 0; | ||||
|     int method; /* method byte */ | ||||
|     int flags;  /* flags byte */ | ||||
|     uInt len; | ||||
|     int c; | ||||
|  | ||||
| @@ -288,14 +288,15 @@ int gzread (file, buf, len) | ||||
|     unsigned len; | ||||
| { | ||||
|     gz_stream *s = (gz_stream*)file; | ||||
|     Byte *start = buf; /* starting point for crc computation */ | ||||
|     Bytef *start = buf; /* starting point for crc computation */ | ||||
|     Byte  *next_out; /* == stream.next_out but not forced far (for MSDOS) */ | ||||
|  | ||||
|     if (s == NULL || s->mode != 'r') return Z_STREAM_ERROR; | ||||
|  | ||||
|     if (s->z_err == Z_DATA_ERROR || s->z_err == Z_ERRNO) return -1; | ||||
|     if (s->z_err == Z_STREAM_END) return 0;  /* EOF */ | ||||
|  | ||||
|     s->stream.next_out = buf; | ||||
|     s->stream.next_out = next_out = buf; | ||||
|     s->stream.avail_out = len; | ||||
|  | ||||
|     while (s->stream.avail_out != 0) { | ||||
| @@ -306,14 +307,15 @@ int gzread (file, buf, len) | ||||
| 	    if (n > s->stream.avail_out) n = s->stream.avail_out; | ||||
| 	    if (n > 0) { | ||||
| 		zmemcpy(s->stream.next_out, s->stream.next_in, n); | ||||
| 		s->stream.next_out  += n; | ||||
| 		next_out += n; | ||||
| 		s->stream.next_out = next_out; | ||||
| 		s->stream.next_in   += n; | ||||
| 		s->stream.avail_out -= n; | ||||
| 		s->stream.avail_in  -= n; | ||||
| 	    } | ||||
| 	    if (s->stream.avail_out > 0) { | ||||
| 		s->stream.avail_out -= fread(s->stream.next_out, | ||||
| 					     1, s->stream.avail_out, s->file); | ||||
| 		s->stream.avail_out -= fread(next_out, 1, s->stream.avail_out, | ||||
| 					     s->file); | ||||
| 	    } | ||||
| 	    return (int)(len - s->stream.avail_out); | ||||
| 	} | ||||
| @@ -510,7 +512,7 @@ char*  gzerror (file, errnum) | ||||
|  | ||||
|     m =  (char*)(*errnum == Z_ERRNO ? zstrerror(errno) : s->stream.msg); | ||||
|  | ||||
|     if (m == NULL || *m == '\0') m = (char*)z_errmsg[1-s->z_err]; | ||||
|     if (m == NULL || *m == '\0') m = ERR_MSG(s->z_err); | ||||
|  | ||||
|     TRYFREE(s->msg); | ||||
|     s->msg = (char*)ALLOC(strlen(s->path) + strlen(m) + 3); | ||||
|   | ||||
							
								
								
									
										14
									
								
								infblock.c
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								infblock.c
									
									
									
									
									
								
							| @@ -110,6 +110,9 @@ uInt w; | ||||
| } | ||||
|  | ||||
|  | ||||
| #ifdef DEBUG | ||||
|   extern uInt inflate_hufts; | ||||
| #endif | ||||
| int inflate_blocks(s, z, r) | ||||
| inflate_blocks_statef *s; | ||||
| z_stream *z; | ||||
| @@ -189,7 +192,7 @@ int r; | ||||
|       s->sub.left = (uInt)b & 0xffff; | ||||
|       b = k = 0;                      /* dump bits */ | ||||
|       Tracev((stderr, "inflate:       stored length %u\n", s->sub.left)); | ||||
|       s->mode = s->sub.left ? STORED : TYPE; | ||||
|       s->mode = s->sub.left ? STORED : (s->last ? DRY : TYPE); | ||||
|       break; | ||||
|     case STORED: | ||||
|       if (n == 0) | ||||
| @@ -306,6 +309,9 @@ int r; | ||||
|         bl = 9;         /* must be <= 9 for lookahead assumptions */ | ||||
|         bd = 6;         /* must be <= 9 for lookahead assumptions */ | ||||
|         t = s->sub.trees.table; | ||||
| #ifdef DEBUG | ||||
|       inflate_hufts = 0; | ||||
| #endif | ||||
|         t = inflate_trees_dynamic(257 + (t & 0x1f), 1 + ((t >> 5) & 0x1f), | ||||
|                                   s->sub.trees.blens, &bl, &bd, &tl, &td, z); | ||||
|         if (t != Z_OK) | ||||
| @@ -315,7 +321,8 @@ int r; | ||||
|           r = t; | ||||
|           LEAVE | ||||
|         } | ||||
|         Tracev((stderr, "inflate:       trees ok\n")); | ||||
|         Tracev((stderr, "inflate:       trees ok, %d * %d bytes used\n", | ||||
|               inflate_hufts, sizeof(inflate_huft))); | ||||
|         if ((c = inflate_codes_new(bl, bd, tl, td, z)) == Z_NULL) | ||||
|         { | ||||
|           inflate_trees_free(td, z); | ||||
| @@ -385,9 +392,8 @@ uLongf *c; | ||||
| } | ||||
|  | ||||
|  | ||||
| void inflate_set_dictionary(s, z, d, n) | ||||
| void inflate_set_dictionary(s, d, n) | ||||
| inflate_blocks_statef *s; | ||||
| z_stream *z; | ||||
| const Bytef *d; | ||||
| uInt  n; | ||||
| { | ||||
|   | ||||
| @@ -33,6 +33,5 @@ extern int inflate_blocks_free OF(( | ||||
|  | ||||
| extern void inflate_set_dictionary OF(( | ||||
|     inflate_blocks_statef *s, | ||||
|     z_stream *z, | ||||
|     const Bytef *d,  /* dictionary */ | ||||
|     uInt  n));       /* dictionary length */ | ||||
|   | ||||
| @@ -153,10 +153,10 @@ int inflate(z, f) | ||||
| z_stream *z; | ||||
| int f; | ||||
| { | ||||
|   int r = f;    /* to avoid warning about unused f */ | ||||
|   int r; | ||||
|   uInt b; | ||||
|  | ||||
|   if (z == Z_NULL || z->state == Z_NULL || z->next_in == Z_NULL) | ||||
|   if (z == Z_NULL || z->state == Z_NULL || z->next_in == Z_NULL || f < 0) | ||||
|     return Z_STREAM_ERROR; | ||||
|   r = Z_BUF_ERROR; | ||||
|   while (1) switch (z->state->mode) | ||||
| @@ -283,12 +283,12 @@ uInt  dictLength; | ||||
|   if (adler32(1L, dictionary, dictLength) != z->adler) return Z_DATA_ERROR; | ||||
|   z->adler = 1L; | ||||
|  | ||||
|   if (length >= (1<<z->state->wbits)) | ||||
|   if (length >= ((uInt)1<<z->state->wbits)) | ||||
|   { | ||||
|     length = (1<<z->state->wbits)-1; | ||||
|     dictionary += dictLength - length; | ||||
|   } | ||||
|   inflate_set_dictionary(z->state->blocks, z, dictionary, length); | ||||
|   inflate_set_dictionary(z->state->blocks, dictionary, length); | ||||
|   z->state->mode = BLOCKS; | ||||
|   return Z_OK; | ||||
| } | ||||
|   | ||||
| @@ -6,7 +6,7 @@ | ||||
| #include "zutil.h" | ||||
| #include "inftrees.h" | ||||
|  | ||||
| char inflate_copyright[] = " inflate 1.0 Copyright 1995-1996 Mark Adler "; | ||||
| char inflate_copyright[] = " inflate 1.0.2 Copyright 1995-1996 Mark Adler "; | ||||
| /* | ||||
|   If you use the zlib library in a product, an acknowledgment is welcome | ||||
|   in the documentation of your product. If for some reason you cannot | ||||
| @@ -215,7 +215,8 @@ z_stream *zs;           /* for zalloc function */ | ||||
|         w += l;                 /* previous table always l bits */ | ||||
|  | ||||
|         /* compute minimum size table less than or equal to l bits */ | ||||
|         z = (z = g - w) > (uInt)l ? l : z;      /* table size upper limit */ | ||||
|         z = g - w; | ||||
|         z = z > (uInt)l ? l : z;        /* table size upper limit */ | ||||
|         if ((f = 1 << (j = k - w)) > a + 1)     /* try a k-w bit table */ | ||||
|         {                       /* too few codes for k-w bit table */ | ||||
|           f -= a + 1;           /* deduct codes from patterns left */ | ||||
| @@ -268,7 +269,7 @@ z_stream *zs;           /* for zalloc function */ | ||||
|       } | ||||
|       else | ||||
|       { | ||||
|         r.exop = (Byte)e[*p - s] + 16 + 64; /* non-simple--look up in lists */ | ||||
|         r.exop = (Byte)(e[*p - s] + 16 + 64);/* non-simple--look up in lists */ | ||||
|         r.base = d[*p++ - s]; | ||||
|       } | ||||
|  | ||||
|   | ||||
| @@ -26,7 +26,8 @@ z_stream *z; | ||||
| int r; | ||||
| { | ||||
|   uInt n; | ||||
|   Bytef *p, *q; | ||||
|   Bytef *p; | ||||
|   Bytef *q; | ||||
|  | ||||
|   /* local copies of source and destination pointers */ | ||||
|   p = z->next_out; | ||||
|   | ||||
| @@ -41,7 +41,8 @@ struct inflate_blocks_state { | ||||
|       inflate_huft *tb;         /* bit length decoding tree */ | ||||
|     } trees;            /* if DTREE, decoding info for trees */ | ||||
|     struct { | ||||
|       inflate_huft *tl, *td;    /* trees to free */ | ||||
|       inflate_huft *tl; | ||||
|       inflate_huft *td;         /* trees to free */ | ||||
|       inflate_codes_statef  | ||||
|          *codes; | ||||
|     } decode;           /* if CODES, current state */ | ||||
|   | ||||
| @@ -13,7 +13,7 @@ | ||||
|  * or in pipe mode. | ||||
|  */ | ||||
|  | ||||
| /* $Id: minigzip.c,v 1.5 1995/05/03 17:27:11 jloup Exp $ */ | ||||
| /* $Id: minigzip.c,v 1.9 1996/05/22 11:52:32 me Exp $ */ | ||||
|  | ||||
| #include <stdio.h> | ||||
| #include "zlib.h" | ||||
| @@ -24,7 +24,7 @@ | ||||
| #else | ||||
|    extern void exit  OF((int)); | ||||
| #endif | ||||
| extern int unlink OF((const char *)); | ||||
|  | ||||
|  | ||||
| #if defined(MSDOS) || defined(OS2) || defined(WIN32) | ||||
| #  include <fcntl.h> | ||||
| @@ -35,12 +35,15 @@ extern int unlink OF((const char *)); | ||||
| #endif | ||||
|  | ||||
| #ifdef VMS | ||||
| #  define unlink delete | ||||
| #  define GZ_SUFFIX "-gz" | ||||
| #else | ||||
| #  define GZ_SUFFIX ".gz" | ||||
| #endif | ||||
| #define SUFFIX_LEN sizeof(GZ_SUFFIX) | ||||
|  | ||||
| extern int unlink OF((const char *)); | ||||
|  | ||||
| #define BUFLEN 4096 | ||||
| #define MAX_NAME_LEN 1024 | ||||
|  | ||||
|   | ||||
							
								
								
									
										4
									
								
								trees.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								trees.c
									
									
									
									
									
								
							| @@ -29,7 +29,7 @@ | ||||
|  *          Addison-Wesley, 1983. ISBN 0-201-06672-6. | ||||
|  */ | ||||
|  | ||||
| /* $Id: trees.c,v 1.5 1995/05/03 17:27:12 jloup Exp $ */ | ||||
| /* $Id: trees.c,v 1.10 1996/05/22 11:52:34 me Exp $ */ | ||||
|  | ||||
| #include "deflate.h" | ||||
|  | ||||
| @@ -232,7 +232,7 @@ local void send_bits(s, value, length) | ||||
|  */ | ||||
| local void tr_static_init() | ||||
| { | ||||
|     static static_init_done = 0; | ||||
|     static int static_init_done = 0; | ||||
|     int n;        /* iterates over tree elements */ | ||||
|     int bits;     /* bit counter */ | ||||
|     int length;   /* length value */ | ||||
|   | ||||
| @@ -3,7 +3,7 @@ | ||||
|  * For conditions of distribution and use, see copyright notice in zlib.h  | ||||
|  */ | ||||
|  | ||||
| /* $Id: uncompr.c,v 1.5 1995/05/03 17:27:12 jloup Exp $ */ | ||||
| /* $Id: uncompr.c,v 1.8 1996/01/30 21:59:26 me Exp $ */ | ||||
|  | ||||
| #include "zlib.h" | ||||
|  | ||||
|   | ||||
							
								
								
									
										36
									
								
								zconf.h
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								zconf.h
									
									
									
									
									
								
							| @@ -3,14 +3,14 @@ | ||||
|  * For conditions of distribution and use, see copyright notice in zlib.h  | ||||
|  */ | ||||
|  | ||||
| /* $Id: zconf.h,v 1.12 1995/05/03 17:27:12 jloup Exp $ */ | ||||
| /* $Id: zconf.h,v 1.18 1996/05/23 16:51:18 me Exp $ */ | ||||
|  | ||||
| #ifndef _ZCONF_H | ||||
| #define _ZCONF_H | ||||
|  | ||||
| /* | ||||
|  * People prefering a unique prefix for all types and library functions | ||||
|  * should compile with -DZ_PREFIX | ||||
|  * If you *really* need a unique prefix for all types and library functions, | ||||
|  * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. | ||||
|  */ | ||||
| #ifdef Z_PREFIX | ||||
| #  define deflateInit_	z_deflateInit_ | ||||
| @@ -20,10 +20,12 @@ | ||||
| #  define inflate	z_inflate | ||||
| #  define inflateEnd	z_inflateEnd | ||||
| #  define deflateInit2_	z_deflateInit2_ | ||||
| #  define deflateSetDictionary z_deflateSetDictionary | ||||
| #  define deflateCopy	z_deflateCopy | ||||
| #  define deflateReset	z_deflateReset | ||||
| #  define deflateParams	z_deflateParams | ||||
| #  define inflateInit2_	z_inflateInit2_ | ||||
| #  define inflateSetDictionary z_inflateSetDictionary | ||||
| #  define inflateSync	z_inflateSync | ||||
| #  define inflateReset	z_inflateReset | ||||
| #  define compress	z_compress | ||||
| @@ -72,13 +74,15 @@ | ||||
| #  define STDC | ||||
| #endif | ||||
|  | ||||
| #if !defined(STDC) && !defined(const) | ||||
| #ifndef STDC | ||||
| #  ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ | ||||
| #    define const | ||||
| #  endif | ||||
| #endif | ||||
|  | ||||
| #ifdef	__MWERKS__ /* Metrowerks CodeWarrior declares fileno() in unix.h */ | ||||
| #  include <unix.h> | ||||
| #  define Byte _Byte /* Byte already used on Mac */ | ||||
| #  define NO_DUMMY_DECL /* buggy compiler merges all .h files incorrectly */ | ||||
| #endif | ||||
|  | ||||
| /* Maximum value for memLevel in deflateInit2 */ | ||||
| @@ -124,7 +128,8 @@ | ||||
|  * to define NO_MEMCPY in zutil.h.  If you don't need the mixed model, | ||||
|  * just define FAR to be empty. | ||||
|  */ | ||||
| #if defined(M_I86SM) || defined(M_I86MM) /* MSC small or medium model */ | ||||
| #if (defined(M_I86SM) || defined(M_I86MM)) && !defined(__32BIT__) | ||||
|    /* MSC small or medium model */ | ||||
| #  define SMALL_MEDIUM | ||||
| #  ifdef _MSC_VER | ||||
| #    define FAR __far | ||||
| @@ -133,15 +138,18 @@ | ||||
| #  endif | ||||
| #endif | ||||
| #if defined(__BORLANDC__) && (defined(__SMALL__) || defined(__MEDIUM__)) | ||||
| #  ifndef __32BIT__ | ||||
| #    define SMALL_MEDIUM | ||||
| #    define FAR __far | ||||
| #  endif | ||||
| #endif | ||||
| #ifndef FAR | ||||
| #   define FAR | ||||
| #endif | ||||
| /* The Watcom compiler defines M_I86SM and __SMALL__ even in 32 bit mode */ | ||||
| #if defined(__WATCOMC__) && defined(__386__) | ||||
| #if defined(__WATCOMC__) && defined(__386__) && defined(SMALL_MEDIUM) | ||||
| #  undef FAR | ||||
| #  define FAR | ||||
| #  undef SMALL_MEDIUM | ||||
| #endif | ||||
|  | ||||
| @@ -149,7 +157,12 @@ typedef unsigned char  Byte;  /* 8 bits */ | ||||
| typedef unsigned int   uInt;  /* 16 bits or more */ | ||||
| typedef unsigned long  uLong; /* 32 bits or more */ | ||||
|  | ||||
| #if defined(__BORLANDC__) && defined(SMALL_MEDIUM) | ||||
|    /* Borland C/C++ ignores FAR inside typedef */ | ||||
| #  define Bytef Byte FAR | ||||
| #else | ||||
|    typedef Byte  FAR Bytef; | ||||
| #endif | ||||
| typedef char  FAR charf; | ||||
| typedef int   FAR intf; | ||||
| typedef uInt  FAR uIntf; | ||||
| @@ -163,4 +176,13 @@ typedef uLong FAR uLongf; | ||||
|    typedef Byte     *voidp; | ||||
| #endif | ||||
|  | ||||
|  | ||||
| /* Compile with -DZLIB_DLL for Windows DLL support */ | ||||
| #if (defined(_WINDOWS) || defined(WINDOWS)) && defined(ZLIB_DLL) | ||||
| #  include <windows.h> | ||||
| #  define EXPORT  WINAPI | ||||
| #else | ||||
| #  define EXPORT | ||||
| #endif | ||||
|  | ||||
| #endif /* _ZCONF_H */ | ||||
|   | ||||
							
								
								
									
										46
									
								
								zlib.def
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								zlib.def
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,46 @@ | ||||
| LIBRARY		"zlib" | ||||
|  | ||||
| DESCRIPTION	'"""zlib data compression library"""' | ||||
|  | ||||
| EXETYPE		NT | ||||
|  | ||||
| SUBSYSTEM	WINDOWS | ||||
|  | ||||
| STUB		'WINSTUB.EXE' | ||||
|  | ||||
| VERSION		1.0.2 | ||||
|  | ||||
| CODE		 EXECUTE READ | ||||
|  | ||||
| DATA		 READ WRITE | ||||
|  | ||||
| HEAPSIZE	1048576,4096 | ||||
|  | ||||
| EXPORTS | ||||
| 		zlibVersion | ||||
| 		deflate | ||||
| 		deflateEnd | ||||
| 		inflate | ||||
| 		inflateEnd | ||||
| 		deflateSetDictionary | ||||
| 		deflateCopy | ||||
| 		deflateReset | ||||
| 		deflateParams | ||||
| 		inflateSetDictionary | ||||
| 		inflateSync | ||||
| 		inflateReset | ||||
| 		compress | ||||
| 		uncompress | ||||
| 		gzopen | ||||
| 		gzdopen | ||||
| 		gzread | ||||
| 		gzwrite | ||||
| 		gzflush | ||||
| 		gzclose | ||||
| 		gzerror | ||||
| 		adler32 | ||||
| 		crc32 | ||||
| 		deflateInit_ | ||||
| 		inflateInit_ | ||||
| 		deflateInit2_ | ||||
| 		inflateInit2_ | ||||
							
								
								
									
										107
									
								
								zlib.h
									
									
									
									
									
								
							
							
						
						
									
										107
									
								
								zlib.h
									
									
									
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| /* zlib.h -- interface of the 'zlib' general purpose compression library | ||||
|   version 1.0, Jan 27th, 1996. | ||||
|   version 1.0.2, May 23rd, 1996. | ||||
|  | ||||
|   Copyright (C) 1995-1996 Jean-loup Gailly and Mark Adler | ||||
|  | ||||
| @@ -21,6 +21,11 @@ | ||||
|  | ||||
|   Jean-loup Gailly        Mark Adler | ||||
|   gzip@prep.ai.mit.edu    madler@alumni.caltech.edu | ||||
|  | ||||
|  | ||||
|   The data format used by the zlib library is described by RFCs (Request for | ||||
|   Comments) 1950 to 1952 in the files ftp://ds.internic.net/rfc/rfc1950.txt | ||||
|   (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format). | ||||
| */ | ||||
|  | ||||
| #ifndef _ZLIB_H | ||||
| @@ -32,7 +37,7 @@ extern "C" { | ||||
|  | ||||
| #include "zconf.h" | ||||
|  | ||||
| #define ZLIB_VERSION "1.0" | ||||
| #define ZLIB_VERSION "1.0.2" | ||||
|  | ||||
| /*  | ||||
|      The 'zlib' compression library provides in-memory compression and | ||||
| @@ -156,16 +161,20 @@ typedef struct z_stream_s { | ||||
|  | ||||
| #define Z_NULL  0  /* for initializing zalloc, zfree, opaque */ | ||||
|  | ||||
| extern const char *zlib_version; | ||||
| /* The application can compare zlib_version and ZLIB_VERSION for consistency. | ||||
|    If the first character differs, the library code actually used is | ||||
|    not compatible with the zlib.h header file used by the application. | ||||
|  */ | ||||
| #define zlib_version zlibVersion() | ||||
| /* for compatibility with versions < 1.0.2 */ | ||||
|  | ||||
|                         /* basic functions */ | ||||
|  | ||||
| extern char EXPORT *zlibVersion OF((void)); | ||||
| /* The application can compare zlibVersion and ZLIB_VERSION for consistency. | ||||
|    If the first character differs, the library code actually used is | ||||
|    not compatible with the zlib.h header file used by the application. | ||||
|    This check is automatically made by deflateInit and inflateInit. | ||||
|  */ | ||||
|  | ||||
| /*  | ||||
| extern int deflateInit OF((z_stream *strm, int level)); | ||||
| extern int EXPORT deflateInit OF((z_stream *strm, int level)); | ||||
|  | ||||
|      Initializes the internal stream state for compression. The fields | ||||
|    zalloc, zfree and opaque must be initialized before by the caller. | ||||
| @@ -187,7 +196,7 @@ extern int deflateInit OF((z_stream *strm, int level)); | ||||
| */ | ||||
|  | ||||
|  | ||||
| extern int deflate OF((z_stream *strm, int flush)); | ||||
| extern int EXPORT deflate OF((z_stream *strm, int flush)); | ||||
| /* | ||||
|   Performs one or both of the following actions: | ||||
|  | ||||
| @@ -207,7 +216,9 @@ extern int deflate OF((z_stream *strm, int flush)); | ||||
|   more output, and updating avail_in or avail_out accordingly; avail_out | ||||
|   should never be zero before the call. The application can consume the | ||||
|   compressed output when it wants, for example when the output buffer is full | ||||
|   (avail_out == 0), or after each call of deflate(). | ||||
|   (avail_out == 0), or after each call of deflate(). If deflate returns Z_OK | ||||
|   and with zero avail_out, it must be called again after making room in the | ||||
|   output buffer because there might be more output pending. | ||||
|  | ||||
|     If the parameter flush is set to Z_PARTIAL_FLUSH, the current compression | ||||
|   block is terminated and flushed to the output buffer so that the | ||||
| @@ -254,7 +265,7 @@ extern int deflate OF((z_stream *strm, int flush)); | ||||
| */ | ||||
|  | ||||
|  | ||||
| extern int deflateEnd OF((z_stream *strm)); | ||||
| extern int EXPORT deflateEnd OF((z_stream *strm)); | ||||
| /* | ||||
|      All dynamically allocated data structures for this stream are freed. | ||||
|    This function discards any unprocessed input and does not flush any | ||||
| @@ -269,7 +280,7 @@ extern int deflateEnd OF((z_stream *strm)); | ||||
|  | ||||
|  | ||||
| /*  | ||||
| extern int inflateInit OF((z_stream *strm)); | ||||
| extern int EXPORT inflateInit OF((z_stream *strm)); | ||||
|  | ||||
|      Initializes the internal stream state for decompression. The fields | ||||
|    zalloc, zfree and opaque must be initialized before by the caller.  If | ||||
| @@ -284,7 +295,7 @@ extern int inflateInit OF((z_stream *strm)); | ||||
| */ | ||||
|  | ||||
|  | ||||
| extern int inflate OF((z_stream *strm, int flush)); | ||||
| extern int EXPORT inflate OF((z_stream *strm, int flush)); | ||||
| /* | ||||
|   Performs one or both of the following actions: | ||||
|  | ||||
| @@ -294,15 +305,18 @@ extern int inflate OF((z_stream *strm, int flush)); | ||||
|     will resume at this point for the next call of inflate(). | ||||
|  | ||||
|   - Provide more output starting at next_out and update next_out and avail_out | ||||
|     accordingly.  inflate() always provides as much output as possible | ||||
|     (until there is no more input data or no more space in the output buffer). | ||||
|     accordingly.  inflate() provides as much output as possible, until there | ||||
|     is no more input data or no more space in the output buffer (see below | ||||
|     about the flush parameter). | ||||
|  | ||||
|   Before the call of inflate(), the application should ensure that at least | ||||
|   one of the actions is possible, by providing more input and/or consuming | ||||
|   more output, and updating the next_* and avail_* values accordingly. | ||||
|   The application can consume the uncompressed output when it wants, for | ||||
|   example when the output buffer is full (avail_out == 0), or after each | ||||
|   call of inflate(). | ||||
|   call of inflate(). If inflate returns Z_OK and with zero avail_out, it | ||||
|   must be called again after making room in the output buffer because there | ||||
|   might be more output pending. | ||||
|  | ||||
|     If the parameter flush is set to Z_PARTIAL_FLUSH, inflate flushes as much | ||||
|   output as possible to the output buffer. The flushing behavior of inflate is | ||||
| @@ -336,7 +350,7 @@ extern int inflate OF((z_stream *strm, int flush)); | ||||
| */ | ||||
|  | ||||
|  | ||||
| extern int inflateEnd OF((z_stream *strm)); | ||||
| extern int EXPORT inflateEnd OF((z_stream *strm)); | ||||
| /* | ||||
|      All dynamically allocated data structures for this stream are freed. | ||||
|    This function discards any unprocessed input and does not flush any | ||||
| @@ -354,7 +368,7 @@ extern int inflateEnd OF((z_stream *strm)); | ||||
| */ | ||||
|  | ||||
| /*    | ||||
| extern int deflateInit2 OF((z_stream *strm, | ||||
| extern int EXPORT deflateInit2 OF((z_stream *strm, | ||||
|                                    int  level, | ||||
|                                    int  method, | ||||
|                                    int  windowBits, | ||||
| @@ -412,7 +426,7 @@ extern int deflateInit2 OF((z_stream *strm, | ||||
|    deflate().  | ||||
| */ | ||||
|                              | ||||
| extern int deflateSetDictionary OF((z_stream *strm, | ||||
| extern int EXPORT deflateSetDictionary OF((z_stream *strm, | ||||
|                                            const Bytef *dictionary, | ||||
| 				           uInt  dictLength)); | ||||
| /* | ||||
| @@ -441,7 +455,7 @@ extern int deflateSetDictionary OF((z_stream *strm, | ||||
|    be done by deflate().  | ||||
| */ | ||||
|  | ||||
| extern int deflateCopy OF((z_stream *dest, | ||||
| extern int EXPORT deflateCopy OF((z_stream *dest, | ||||
|                                   z_stream *source)); | ||||
| /* | ||||
|      Sets the destination stream as a complete copy of the source stream.  If | ||||
| @@ -464,7 +478,7 @@ extern int deflateCopy OF((z_stream *dest, | ||||
|    destination. | ||||
| */ | ||||
|  | ||||
| extern int deflateReset OF((z_stream *strm)); | ||||
| extern int EXPORT deflateReset OF((z_stream *strm)); | ||||
| /* | ||||
|      This function is equivalent to deflateEnd followed by deflateInit, | ||||
|    but does not free and reallocate all the internal compression state. | ||||
| @@ -475,7 +489,7 @@ extern int deflateReset OF((z_stream *strm)); | ||||
|    stream state was inconsistent (such as zalloc or state being NULL). | ||||
| */ | ||||
|  | ||||
| extern int deflateParams OF((z_stream *strm, int level, int strategy)); | ||||
| extern int EXPORT deflateParams OF((z_stream *strm, int level, int strategy)); | ||||
| /* | ||||
|      Dynamically update the compression level and compression strategy. | ||||
|    This can be used to switch between compression and straight copy of | ||||
| @@ -484,12 +498,17 @@ extern int deflateParams OF((z_stream *strm, int level, int strategy)); | ||||
|    available so far is compressed with the old level (and may be flushed); | ||||
|    the new level will take effect only at the next call of deflate(). | ||||
|  | ||||
|      Before the call of deflateParams, the stream state must be set as for | ||||
|    a call of deflate(), since the currently available input may have to | ||||
|    be compressed and flushed. In particular, strm->avail_out must be non-zero. | ||||
|  | ||||
|      deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source | ||||
|    stream state was inconsistent or if a parameter was invalid. | ||||
|    stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR | ||||
|    if strm->avail_out was zero. | ||||
| */ | ||||
|  | ||||
| /*    | ||||
| extern int inflateInit2 OF((z_stream *strm, | ||||
| extern int EXPORT inflateInit2 OF((z_stream *strm, | ||||
|                                    int  windowBits)); | ||||
|  | ||||
|      This is another version of inflateInit with more compression options. The | ||||
| @@ -523,7 +542,7 @@ extern int inflateInit2 OF((z_stream *strm, | ||||
|    inflate(). | ||||
| */ | ||||
|  | ||||
| extern int inflateSetDictionary OF((z_stream *strm, | ||||
| extern int EXPORT inflateSetDictionary OF((z_stream *strm, | ||||
| 				           const Bytef *dictionary, | ||||
| 					   uInt  dictLength)); | ||||
| /* | ||||
| @@ -542,7 +561,7 @@ extern int inflateSetDictionary OF((z_stream *strm, | ||||
|    inflate(). | ||||
| */ | ||||
|  | ||||
| extern int inflateSync OF((z_stream *strm)); | ||||
| extern int EXPORT inflateSync OF((z_stream *strm)); | ||||
| /*  | ||||
|     Skips invalid compressed data until the special marker (see deflate() | ||||
|   above) can be found, or until all available input is skipped. No output | ||||
| @@ -557,7 +576,7 @@ extern int inflateSync OF((z_stream *strm)); | ||||
|   until success or end of the input data. | ||||
| */ | ||||
|  | ||||
| extern int inflateReset OF((z_stream *strm)); | ||||
| extern int EXPORT inflateReset OF((z_stream *strm)); | ||||
| /* | ||||
|      This function is equivalent to inflateEnd followed by inflateInit, | ||||
|    but does not free and reallocate all the internal decompression state. | ||||
| @@ -578,7 +597,7 @@ extern int inflateReset OF((z_stream *strm)); | ||||
|    utility functions can easily be modified if you need special options. | ||||
| */ | ||||
|  | ||||
| extern int compress OF((Bytef *dest,   uLongf *destLen, | ||||
| extern int EXPORT compress OF((Bytef *dest,   uLongf *destLen, | ||||
| 			       const Bytef *source, uLong sourceLen)); | ||||
| /* | ||||
|      Compresses the source buffer into the destination buffer.  sourceLen is | ||||
| @@ -593,7 +612,7 @@ extern int compress OF((Bytef *dest,   uLongf *destLen, | ||||
|    buffer. | ||||
| */ | ||||
|  | ||||
| extern int uncompress OF((Bytef *dest,   uLongf *destLen, | ||||
| extern int EXPORT uncompress OF((Bytef *dest,   uLongf *destLen, | ||||
| 				 const Bytef *source, uLong sourceLen)); | ||||
| /* | ||||
|      Decompresses the source buffer into the destination buffer.  sourceLen is | ||||
| @@ -614,7 +633,7 @@ extern int uncompress OF((Bytef *dest,   uLongf *destLen, | ||||
|  | ||||
| typedef voidp gzFile; | ||||
|  | ||||
| extern gzFile gzopen  OF((const char *path, const char *mode)); | ||||
| extern gzFile EXPORT gzopen  OF((const char *path, const char *mode)); | ||||
| /* | ||||
|      Opens a gzip (.gz) file for reading or writing. The mode parameter | ||||
|    is as in fopen ("rb" or "wb") but can also include a compression level | ||||
| @@ -626,12 +645,12 @@ extern gzFile gzopen  OF((const char *path, const char *mode)); | ||||
|    zlib error is Z_MEM_ERROR). | ||||
| */ | ||||
|  | ||||
| extern gzFile gzdopen  OF((int fd, const char *mode)); | ||||
| extern gzFile EXPORT gzdopen  OF((int fd, const char *mode)); | ||||
| /* | ||||
|      gzdopen() associates a gzFile with the file descriptor fd.  File | ||||
|    descriptors are obtained from calls like open, dup, creat, pipe or | ||||
|    fileno (in the file has been previously opened with fopen). | ||||
|    The mode parameter is as in fopen ("rb" or "wb"). | ||||
|    The mode parameter is as in gzopen. | ||||
|      The next call of gzclose on the returned gzFile will also close the | ||||
|    file descriptor fd, just like fclose(fdopen(fd), mode) closes the file | ||||
|    descriptor fd. If you want to keep fd open, use gzdopen(dup(fd), mode). | ||||
| @@ -639,7 +658,7 @@ extern gzFile gzdopen  OF((int fd, const char *mode)); | ||||
|    the (de)compression state. | ||||
| */ | ||||
|  | ||||
| extern int    gzread  OF((gzFile file, voidp buf, unsigned len)); | ||||
| extern int EXPORT    gzread  OF((gzFile file, voidp buf, unsigned len)); | ||||
| /* | ||||
|      Reads the given number of uncompressed bytes from the compressed file. | ||||
|    If the input file was not in gzip format, gzread copies the given number | ||||
| @@ -647,14 +666,14 @@ extern int    gzread  OF((gzFile file, voidp buf, unsigned len)); | ||||
|      gzread returns the number of uncompressed bytes actually read (0 for | ||||
|    end of file, -1 for error). */ | ||||
|  | ||||
| extern int    gzwrite OF((gzFile file, const voidp buf, unsigned len)); | ||||
| extern int EXPORT    gzwrite OF((gzFile file, const voidp buf, unsigned len)); | ||||
| /* | ||||
|      Writes the given number of uncompressed bytes into the compressed file. | ||||
|    gzwrite returns the number of uncompressed bytes actually written | ||||
|    (0 in case of error). | ||||
| */ | ||||
|  | ||||
| extern int    gzflush OF((gzFile file, int flush)); | ||||
| extern int EXPORT    gzflush OF((gzFile file, int flush)); | ||||
| /* | ||||
|      Flushes all pending output into the compressed file. The parameter | ||||
|    flush is as in the deflate() function. The return value is the zlib | ||||
| @@ -664,14 +683,14 @@ extern int    gzflush OF((gzFile file, int flush)); | ||||
|    degrade compression. | ||||
| */ | ||||
|  | ||||
| extern int    gzclose OF((gzFile file)); | ||||
| extern int EXPORT    gzclose OF((gzFile file)); | ||||
| /* | ||||
|      Flushes all pending output if necessary, closes the compressed file | ||||
|    and deallocates all the (de)compression state. The return value is the zlib | ||||
|    error number (see function gzerror below). | ||||
| */ | ||||
|  | ||||
| extern char*   gzerror OF((gzFile file, int *errnum)); | ||||
| extern char EXPORT  *gzerror OF((gzFile file, int *errnum)); | ||||
| /* | ||||
|      Returns the error message for the last error which occurred on the | ||||
|    given compressed file. errnum is set to zlib error number. If an | ||||
| @@ -688,7 +707,7 @@ extern char*   gzerror OF((gzFile file, int *errnum)); | ||||
|    compression library. | ||||
| */ | ||||
|  | ||||
| extern uLong adler32 OF((uLong adler, const Bytef *buf, uInt len)); | ||||
| extern uLong EXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); | ||||
|  | ||||
| /* | ||||
|      Update a running Adler-32 checksum with the bytes buf[0..len-1] and | ||||
| @@ -705,7 +724,7 @@ extern uLong adler32 OF((uLong adler, const Bytef *buf, uInt len)); | ||||
|      if (adler != original_adler) error(); | ||||
| */ | ||||
|  | ||||
| extern uLong crc32   OF((uLong crc, const Bytef *buf, uInt len)); | ||||
| extern uLong EXPORT crc32   OF((uLong crc, const Bytef *buf, uInt len)); | ||||
| /* | ||||
|      Update a running crc with the bytes buf[0..len-1] and return the updated | ||||
|    crc. If buf is NULL, this function returns the required initial value | ||||
| @@ -727,14 +746,14 @@ extern uLong crc32   OF((uLong crc, const Bytef *buf, uInt len)); | ||||
| /* deflateInit and inflateInit are macros to allow checking the zlib version | ||||
|  * and the compiler's view of z_stream: | ||||
|  */ | ||||
| extern int deflateInit_ OF((z_stream *strm, int level, | ||||
| extern int EXPORT deflateInit_ OF((z_stream *strm, int level, | ||||
| 			           const char *version, int stream_size)); | ||||
| extern int inflateInit_ OF((z_stream *strm, | ||||
| extern int EXPORT inflateInit_ OF((z_stream *strm, | ||||
| 				   const char *version, int stream_size)); | ||||
| extern int deflateInit2_ OF((z_stream *strm, int  level, int  method, | ||||
| extern int EXPORT deflateInit2_ OF((z_stream *strm, int  level, int  method, | ||||
| 				    int windowBits, int memLevel, int strategy, | ||||
| 				    const char *version, int stream_size)); | ||||
| extern int inflateInit2_ OF((z_stream *strm, int  windowBits, | ||||
| extern int EXPORT inflateInit2_ OF((z_stream *strm, int  windowBits, | ||||
| 				    const char *version, int stream_size)); | ||||
| #define deflateInit(strm, level) \ | ||||
|         deflateInit_((strm), (level),       ZLIB_VERSION, sizeof(z_stream)) | ||||
| @@ -746,7 +765,7 @@ extern int inflateInit2_ OF((z_stream *strm, int  windowBits, | ||||
| #define inflateInit2(strm, windowBits) \ | ||||
|         inflateInit2_((strm), (windowBits), ZLIB_VERSION, sizeof(z_stream)) | ||||
|  | ||||
| #ifndef _Z_UTIL_H | ||||
| #if !defined(_Z_UTIL_H) && !defined(NO_DUMMY_DECL) | ||||
|     struct internal_state {int dummy;}; /* hack for buggy compilers */ | ||||
| #endif | ||||
|  | ||||
|   | ||||
							
								
								
									
										32
									
								
								zlib.rc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								zlib.rc
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,32 @@ | ||||
| #include <windows.h> | ||||
|  | ||||
| #define IDR_VERSION1  1 | ||||
| IDR_VERSION1	VERSIONINFO	MOVEABLE IMPURE LOADONCALL DISCARDABLE | ||||
|   FILEVERSION	 1,0,2,0 | ||||
|   PRODUCTVERSION 1,0,2,0 | ||||
|   FILEFLAGSMASK	VS_FFI_FILEFLAGSMASK | ||||
|   FILEFLAGS	0 | ||||
|   FILEOS	VOS_DOS_WINDOWS32 | ||||
|   FILETYPE	VFT_DLL | ||||
|   FILESUBTYPE	0	// not used | ||||
| BEGIN | ||||
|   BLOCK "StringFileInfo" | ||||
|   BEGIN | ||||
|     BLOCK "040904E4" | ||||
|     //language ID = U.S. English, char set = Windows, Multilingual | ||||
|  | ||||
|     BEGIN | ||||
|       VALUE "FileDescription", "zlib data compression library\0" | ||||
|       VALUE "FileVersion",	"1.0.2\0" | ||||
|       VALUE "InternalName",	"zlib\0" | ||||
|       VALUE "OriginalFilename",	"zlib.lib\0" | ||||
|       VALUE "ProductName",	"ZLib.DLL\0" | ||||
|       VALUE "Comments",	"DLL support by Alessandro Iacopetti\0" | ||||
|       VALUE "LegalCopyright", "(C) 1995-1996 Jean-loup Gailly & Mark Adler\0" | ||||
|     END | ||||
|   END | ||||
|   BLOCK "VarFileInfo" | ||||
|   BEGIN | ||||
|     VALUE "Translation", 0x0409, 1252 | ||||
|   END | ||||
| END | ||||
							
								
								
									
										13
									
								
								zutil.c
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								zutil.c
									
									
									
									
									
								
							| @@ -3,7 +3,7 @@ | ||||
|  * For conditions of distribution and use, see copyright notice in zlib.h  | ||||
|  */ | ||||
|  | ||||
| /* $Id: zutil.c,v 1.8 1995/05/03 17:27:12 jloup Exp $ */ | ||||
| /* $Id: zutil.c,v 1.15 1996/05/23 17:11:36 me Exp $ */ | ||||
|  | ||||
| #include <stdio.h> | ||||
|  | ||||
| @@ -15,8 +15,6 @@ struct internal_state      {int dummy;}; /* for buggy compilers */ | ||||
| extern void exit OF((int)); | ||||
| #endif | ||||
|  | ||||
| const char *zlib_version = ZLIB_VERSION; | ||||
|  | ||||
| const char *z_errmsg[10] = { | ||||
| "need dictionary",     /* Z_NEED_DICT       2  */ | ||||
| "stream end",          /* Z_STREAM_END      1  */ | ||||
| @@ -30,6 +28,11 @@ const char *z_errmsg[10] = { | ||||
| ""}; | ||||
|  | ||||
|  | ||||
| char *zlibVersion() | ||||
| { | ||||
|     return ZLIB_VERSION; | ||||
| } | ||||
|  | ||||
| void z_error (m) | ||||
|     char *m; | ||||
| { | ||||
| @@ -178,7 +181,7 @@ voidpf zcalloc (opaque, items, size) | ||||
|     unsigned items; | ||||
|     unsigned size; | ||||
| { | ||||
|     if (opaque) opaque = 0; /* to make compiler happy */ | ||||
|     if (opaque) items += size - size; /* make compiler happy */ | ||||
|     return (voidpf)calloc(items, size); | ||||
| } | ||||
|  | ||||
| @@ -186,8 +189,8 @@ void  zcfree (opaque, ptr) | ||||
|     voidpf opaque; | ||||
|     voidpf ptr; | ||||
| { | ||||
|     if (opaque) opaque = 0; /* to make compiler happy */ | ||||
|     free(ptr); | ||||
|     if (opaque) return; /* make compiler happy */ | ||||
| } | ||||
|  | ||||
| #endif /* MY_ZCALLOC */ | ||||
|   | ||||
							
								
								
									
										6
									
								
								zutil.h
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								zutil.h
									
									
									
									
									
								
							| @@ -8,7 +8,7 @@ | ||||
|    subject to change. Applications should only use zlib.h. | ||||
|  */ | ||||
|  | ||||
| /* $Id: zutil.h,v 1.9 1995/05/03 17:27:12 jloup Exp $ */ | ||||
| /* $Id: zutil.h,v 1.14 1996/05/22 11:52:40 me Exp $ */ | ||||
|  | ||||
| #ifndef _Z_UTIL_H | ||||
| #define _Z_UTIL_H | ||||
| @@ -114,6 +114,10 @@ extern const char *z_errmsg[10]; /* indexed by 2-zlib_error */ | ||||
|  | ||||
| #ifdef TOPS20 | ||||
| #  define OS_CODE  0x0a | ||||
| #endif | ||||
|  | ||||
| #ifdef _BEOS_ | ||||
| #  define fdopen(fd,mode) NULL /* No fdopen() */ | ||||
| #endif | ||||
|  | ||||
|         /* Common defaults */ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user