mirror of
https://github.com/MariaDB/server.git
synced 2026-05-06 23:25:34 +02:00
Import zlib-1.2.3 library
zlib/ChangeLog: Import zlib-1.2.3 zlib/FAQ: Import zlib-1.2.3 zlib/README: Import zlib-1.2.3 zlib/adler32.c: Import zlib-1.2.3 zlib/compress.c: Import zlib-1.2.3 zlib/crc32.c: Import zlib-1.2.3 zlib/deflate.c: Import zlib-1.2.3 zlib/deflate.h: Import zlib-1.2.3 zlib/gzio.c: Import zlib-1.2.3 zlib/infback.c: Import zlib-1.2.3 zlib/inffast.c: Import zlib-1.2.3 zlib/inflate.c: Import zlib-1.2.3 zlib/inflate.h: Import zlib-1.2.3 zlib/inftrees.c: Import zlib-1.2.3 zlib/inftrees.h: Import zlib-1.2.3 zlib/trees.c: Import zlib-1.2.3 zlib/zconf.h: Import zlib-1.2.3 zlib/zlib.3: Import zlib-1.2.3 zlib/zlib.h: Import zlib-1.2.3 zlib/zutil.c: Import zlib-1.2.3 zlib/zutil.h: Import zlib-1.2.3 zlib/README.MySQL: Import zlib-1.2.3
This commit is contained in:
parent
a4217760b4
commit
c0941e4278
22 changed files with 1008 additions and 213 deletions
51
zlib/gzio.c
51
zlib/gzio.c
|
|
@ -1,5 +1,5 @@
|
|||
/* gzio.c -- IO on .gz files
|
||||
* Copyright (C) 1995-2003 Jean-loup Gailly.
|
||||
* Copyright (C) 1995-2005 Jean-loup Gailly.
|
||||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||||
*
|
||||
* Compile this file with -DNO_GZCOMPRESS to avoid the compression code.
|
||||
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
#include "zutil.h"
|
||||
|
||||
#ifdef NO_DEFLATE /* for compatiblity with old definition */
|
||||
#ifdef NO_DEFLATE /* for compatibility with old definition */
|
||||
# define NO_GZCOMPRESS
|
||||
#endif
|
||||
|
||||
|
|
@ -220,7 +220,7 @@ gzFile ZEXPORT gzdopen (fd, mode)
|
|||
int fd;
|
||||
const char *mode;
|
||||
{
|
||||
char name[20];
|
||||
char name[46]; /* allow for up to 128-bit integers */
|
||||
|
||||
if (fd < 0) return (gzFile)Z_NULL;
|
||||
sprintf(name, "<fd:%d>", fd); /* for debugging */
|
||||
|
|
@ -264,7 +264,7 @@ local int get_byte(s)
|
|||
if (s->z_eof) return EOF;
|
||||
if (s->stream.avail_in == 0) {
|
||||
errno = 0;
|
||||
s->stream.avail_in = fread(s->inbuf, 1, Z_BUFSIZE, s->file);
|
||||
s->stream.avail_in = (uInt)fread(s->inbuf, 1, Z_BUFSIZE, s->file);
|
||||
if (s->stream.avail_in == 0) {
|
||||
s->z_eof = 1;
|
||||
if (ferror(s->file)) s->z_err = Z_ERRNO;
|
||||
|
|
@ -300,7 +300,7 @@ local void check_header(s)
|
|||
if (len < 2) {
|
||||
if (len) s->inbuf[0] = s->stream.next_in[0];
|
||||
errno = 0;
|
||||
len = fread(s->inbuf + len, 1, Z_BUFSIZE >> len, s->file);
|
||||
len = (uInt)fread(s->inbuf + len, 1, Z_BUFSIZE >> len, s->file);
|
||||
if (len == 0 && ferror(s->file)) s->z_err = Z_ERRNO;
|
||||
s->stream.avail_in += len;
|
||||
s->stream.next_in = s->inbuf;
|
||||
|
|
@ -415,6 +415,7 @@ int ZEXPORT gzread (file, buf, len)
|
|||
s->stream.avail_out--;
|
||||
s->back = EOF;
|
||||
s->out++;
|
||||
start++;
|
||||
if (s->last) {
|
||||
s->z_err = Z_STREAM_END;
|
||||
return 1;
|
||||
|
|
@ -436,8 +437,8 @@ int ZEXPORT gzread (file, buf, len)
|
|||
s->stream.avail_in -= n;
|
||||
}
|
||||
if (s->stream.avail_out > 0) {
|
||||
s->stream.avail_out -= fread(next_out, 1, s->stream.avail_out,
|
||||
s->file);
|
||||
s->stream.avail_out -=
|
||||
(uInt)fread(next_out, 1, s->stream.avail_out, s->file);
|
||||
}
|
||||
len -= s->stream.avail_out;
|
||||
s->in += len;
|
||||
|
|
@ -448,17 +449,13 @@ int ZEXPORT gzread (file, buf, len)
|
|||
if (s->stream.avail_in == 0 && !s->z_eof) {
|
||||
|
||||
errno = 0;
|
||||
s->stream.avail_in = fread(s->inbuf, 1, Z_BUFSIZE, s->file);
|
||||
s->stream.avail_in = (uInt)fread(s->inbuf, 1, Z_BUFSIZE, s->file);
|
||||
if (s->stream.avail_in == 0) {
|
||||
s->z_eof = 1;
|
||||
if (ferror(s->file)) {
|
||||
s->z_err = Z_ERRNO;
|
||||
break;
|
||||
}
|
||||
if (feof(s->file)) { /* avoid error for empty file */
|
||||
s->z_err = Z_STREAM_END;
|
||||
break;
|
||||
}
|
||||
}
|
||||
s->stream.next_in = s->inbuf;
|
||||
}
|
||||
|
|
@ -492,6 +489,9 @@ int ZEXPORT gzread (file, buf, len)
|
|||
}
|
||||
s->crc = crc32(s->crc, start, (uInt)(s->stream.next_out - start));
|
||||
|
||||
if (len == s->stream.avail_out &&
|
||||
(s->z_err == Z_DATA_ERROR || s->z_err == Z_ERRNO))
|
||||
return -1;
|
||||
return (int)(len - s->stream.avail_out);
|
||||
}
|
||||
|
||||
|
|
@ -902,6 +902,18 @@ int ZEXPORT gzeof (file)
|
|||
return s->z_err == Z_STREAM_END;
|
||||
}
|
||||
|
||||
/* ===========================================================================
|
||||
Returns 1 if reading and doing so transparently, otherwise zero.
|
||||
*/
|
||||
int ZEXPORT gzdirect (file)
|
||||
gzFile file;
|
||||
{
|
||||
gz_stream *s = (gz_stream*)file;
|
||||
|
||||
if (s == NULL || s->mode != 'r') return 0;
|
||||
return s->transparent;
|
||||
}
|
||||
|
||||
/* ===========================================================================
|
||||
Outputs a long in LSB order to the given file
|
||||
*/
|
||||
|
|
@ -941,7 +953,6 @@ local uLong getLong (s)
|
|||
int ZEXPORT gzclose (file)
|
||||
gzFile file;
|
||||
{
|
||||
int err;
|
||||
gz_stream *s = (gz_stream*)file;
|
||||
|
||||
if (s == NULL) return Z_STREAM_ERROR;
|
||||
|
|
@ -950,8 +961,8 @@ int ZEXPORT gzclose (file)
|
|||
#ifdef NO_GZCOMPRESS
|
||||
return Z_STREAM_ERROR;
|
||||
#else
|
||||
err = do_flush (file, Z_FINISH);
|
||||
if (err != Z_OK) return destroy((gz_stream*)file);
|
||||
if (do_flush (file, Z_FINISH) != Z_OK)
|
||||
return destroy((gz_stream*)file);
|
||||
|
||||
putLong (s->file, s->crc);
|
||||
putLong (s->file, (uLong)(s->in & 0xffffffff));
|
||||
|
|
@ -960,10 +971,16 @@ int ZEXPORT gzclose (file)
|
|||
return destroy((gz_stream*)file);
|
||||
}
|
||||
|
||||
#ifdef STDC
|
||||
# define zstrerror(errnum) strerror(errnum)
|
||||
#else
|
||||
# define zstrerror(errnum) ""
|
||||
#endif
|
||||
|
||||
/* ===========================================================================
|
||||
Returns the error message for the last error which occured on the
|
||||
Returns the error message for the last error which occurred on the
|
||||
given compressed file. errnum is set to zlib error number. If an
|
||||
error occured in the file system and not in the compression library,
|
||||
error occurred in the file system and not in the compression library,
|
||||
errnum is set to Z_ERRNO and the application may consult errno
|
||||
to get the exact error code.
|
||||
*/
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue