You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-full-overlay/net-misc/zsync/files/zsync-0.6.2-zlib-1.2.3-supp...

202 lines
6.9 KiB

This is a forward-port to zlib-1.2.3 of the zlib-1.2.11 changes found in
zsync-0.6.2.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
diff -Nuar --exclude Makefile.in zlib-1.2.3.orig/deflate.c zlib-1.2.3/deflate.c
--- zlib-1.2.3.orig/deflate.c 2005-07-18 02:27:31.000000000 +0000
+++ zlib-1.2.3/deflate.c 2011-02-09 21:36:02.000000000 +0000
@@ -807,7 +807,7 @@
}
if (bstate == block_done) {
if (flush == Z_PARTIAL_FLUSH) {
- _tr_align(s);
+ // _tr_align(s);
} else { /* FULL_FLUSH or SYNC_FLUSH */
_tr_stored_block(s, (char*)0, 0L, 0);
/* For a full flush, this empty block will be recognized
diff -Nuar --exclude Makefile.in zlib-1.2.3.orig/inflate.c zlib-1.2.3/inflate.c
--- zlib-1.2.3.orig/inflate.c 2005-06-14 21:50:12.000000000 +0000
+++ zlib-1.2.3/inflate.c 2011-02-09 21:36:02.000000000 +0000
@@ -6,6 +6,12 @@
/*
* Change history:
*
+ * cph 26 Oct 2004
+ * - A few minor hacks to allow me to locate safe start points in streams
+ * and to position a new inflate on the right bit. I hereby place any
+ * changes to this file (and the zlib.h and inflate.h in this dir) into
+ * the public domain.
+ *
* 1.2.beta0 24 Nov 2002
* - First version -- complete rewrite of inflate to simplify code, avoid
* creation of window when not needed, minimize use of window when it is
@@ -83,7 +89,6 @@
#include "zutil.h"
#include "inftrees.h"
#include "inflate.h"
-#include "inffast.h"
#ifdef MAKEFIXED
# ifndef BUILDFIXED
@@ -93,7 +98,6 @@
/* function prototypes */
local void fixedtables OF((struct inflate_state FAR *state));
-local int updatewindow OF((z_streamp strm, unsigned out));
#ifdef BUILDFIXED
void makefixed OF((void));
#endif
@@ -320,7 +324,7 @@
output will fall in the output data, making match copies simpler and faster.
The advantage may be dependent on the size of the processor's data caches.
*/
-local int updatewindow(strm, out)
+int updatewindow(strm, out)
z_streamp strm;
unsigned out;
{
@@ -925,6 +929,9 @@
/* handle error breaks in while */
if (state->mode == BAD) break;
+ if (state->mode == BAD)
+ break;
+
/* build code tables */
state->next = state->codes;
state->lencode = (code const FAR *)(state->next);
@@ -948,12 +955,10 @@
Tracev((stderr, "inflate: codes ok\n"));
state->mode = LEN;
case LEN:
- if (have >= 6 && left >= 258) {
- RESTORE();
- inflate_fast(strm, out);
- LOAD();
- break;
- }
+ state->mode = LENDO;
+ goto inf_leave;
+ case LENDO:
+ /* cph - remove inflate_fast */
for (;;) {
this = state->lencode[BITS(state->lenbits)];
if ((unsigned)(this.bits) <= bits) break;
@@ -1366,3 +1371,48 @@
dest->state = (struct internal_state FAR *)copy;
return Z_OK;
}
+
+/* cph 2004/10/17
+ * Extra stuff I need to move around in gzip files
+ */
+
+void inflate_advance(strm,zoffset,b,s)
+ z_streamp strm;
+ int zoffset;
+ int b;
+ int s;
+{
+ struct inflate_state FAR* state = (struct inflate_state FAR *)strm->state;
+
+ if (s)
+ state->mode = TYPEDO;
+ else if (state->mode == COPY) {
+ /* Reduce length remaining to copy by correct number */
+ state->length -= zoffset - strm->total_in;
+ } else
+ state->mode = LENDO;
+
+ strm->total_in = zoffset; /* We are here, plus a few more bits. */
+
+ if (b) {
+ state->hold = *(strm->next_in)++;
+ state->hold >>= b;
+ state->bits = 8-b;
+ strm->avail_in--;
+ strm->total_in++;
+ } else {
+ state->bits = 0;
+ state->hold = 0;
+ }
+}
+
+int ZEXPORT inflateSafePoint(strm)
+z_streamp strm;
+{
+ struct inflate_state FAR *state;
+
+ if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
+ state = (struct inflate_state FAR *)strm->state;
+ return (state->mode == LENDO || state->mode == COPY);
+}
+
diff -Nuar --exclude Makefile.in zlib-1.2.3.orig/inflate.h zlib-1.2.3/inflate.h
--- zlib-1.2.3.orig/inflate.h 2004-11-13 05:38:28.000000000 +0000
+++ zlib-1.2.3/inflate.h 2011-02-09 21:36:02.000000000 +0000
@@ -37,6 +37,7 @@
LENLENS, /* i: waiting for code length code lengths */
CODELENS, /* i: waiting for length/lit and distance code lengths */
LEN, /* i: waiting for length/lit code */
+ LENDO, /* i: same, but skip exit check */
LENEXT, /* i: waiting for length extra bits */
DIST, /* i: waiting for distance code */
DISTEXT, /* i: waiting for distance extra bits */
diff -Nuar --exclude Makefile.in zlib-1.2.3.orig/Makefile.am zlib-1.2.3/Makefile.am
--- zlib-1.2.3.orig/Makefile.am 1970-01-01 00:00:00.000000000 +0000
+++ zlib-1.2.3/Makefile.am 2011-02-09 21:36:06.000000000 +0000
@@ -0,0 +1,6 @@
+
+noinst_LIBRARIES = libinflate.a libdeflate.a
+
+libinflate_a_SOURCES = zlib.h inflate.c inflate.h inffixed.h adler32.c inftrees.c inftrees.h zutil.c zutil.h crc32.c crc32.h zconf.h
+
+libdeflate_a_SOURCES = deflate.c deflate.h compress.c trees.c trees.h
diff -Nuar --exclude Makefile.in zlib-1.2.3.orig/zconf.h zlib-1.2.3/zconf.h
--- zlib-1.2.3.orig/zconf.h 2005-05-28 06:40:35.000000000 +0000
+++ zlib-1.2.3/zconf.h 2011-02-09 21:36:06.000000000 +0000
@@ -284,9 +284,8 @@
typedef Byte *voidp;
#endif
-#if 0 /* HAVE_UNISTD_H -- this line is updated by ./configure */
+#if 1 /* HAVE_UNISTD_H -- this line is updated by ./configure */
# include <sys/types.h> /* for off_t */
-# include <unistd.h> /* for SEEK_* and off_t */
# ifdef VMS
# include <unixio.h> /* for off_t */
# endif
diff -Nuar --exclude Makefile.in zlib-1.2.3.orig/zlib.h zlib-1.2.3/zlib.h
--- zlib-1.2.3.orig/zlib.h 2005-07-18 02:26:49.000000000 +0000
+++ zlib-1.2.3/zlib.h 2011-02-09 21:36:06.000000000 +0000
@@ -1110,9 +1110,10 @@
of bytes into the buffer.
gzread returns the number of uncompressed bytes actually read (0 for
end of file, -1 for error). */
-
+#if 0
ZEXTERN int ZEXPORT gzwrite OF((gzFile file,
voidpc buf, unsigned len));
+#endif
/*
Writes the given number of uncompressed bytes into the compressed file.
gzwrite returns the number of uncompressed bytes actually written
@@ -1308,6 +1309,8 @@
len2.
*/
+ZEXTERN int ZEXPORT updatewindow OF((z_streamp strm, unsigned out));
+ZEXTERN void ZEXPORT inflate_advance OF((z_streamp strm, int zoffset, int b, int s));
/* various hacks, don't look :) */
@@ -1348,6 +1351,7 @@
ZEXTERN const char * ZEXPORT zError OF((int));
ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp z));
+ZEXTERN int ZEXPORT inflateSafePoint OF((z_streamp z));
ZEXTERN const uLongf * ZEXPORT get_crc_table OF((void));
#ifdef __cplusplus