RPM Package Manager, CVS Repository
http://rpm5.org/cvs/
____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson
Root: /v/rpm/cvs Email: [EMAIL PROTECTED]
Module: rpm Date: 07-Jul-2008 23:44:07
Branch: HEAD Handle: 2008070721440600
Added files:
rpm/rpmio gzdio.c
Modified files:
rpm CHANGES Doxyfile.in
rpm/po POTFILES.in
rpm/rpmio Makefile.am bzdio.c lzdio.c rpmio.c
Log:
- make gzdio.c standalone.
Summary:
Revision Changes Path
1.2473 +1 -0 rpm/CHANGES
2.93 +1 -0 rpm/Doxyfile.in
1.72 +2 -0 rpm/po/POTFILES.in
1.184 +1 -1 rpm/rpmio/Makefile.am
2.2 +3 -1 rpm/rpmio/bzdio.c
2.1 +244 -0 rpm/rpmio/gzdio.c
1.9 +3 -1 rpm/rpmio/lzdio.c
1.141 +2 -233 rpm/rpmio/rpmio.c
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/CHANGES
============================================================================
$ cvs diff -u -r1.2472 -r1.2473 CHANGES
--- rpm/CHANGES 7 Jul 2008 21:23:09 -0000 1.2472
+++ rpm/CHANGES 7 Jul 2008 21:44:06 -0000 1.2473
@@ -1,5 +1,6 @@
5.1.0 -> 5.2a0:
+ - jbj: make gzdio.c standalone.
- rpm.org: Make verifyAttrs and virtualFileAttributes static.
- rpm.org: Teach Fflush about lzdio.
- jbj: add _flush to FDIO_t, make bzdio.c standalone.
@@ .
patch -p0 <<'@@ .'
Index: rpm/Doxyfile.in
============================================================================
$ cvs diff -u -r2.92 -r2.93 Doxyfile.in
--- rpm/Doxyfile.in 7 Jul 2008 21:16:53 -0000 2.92
+++ rpm/Doxyfile.in 7 Jul 2008 21:44:06 -0000 2.93
@@ -590,6 +590,7 @@
@top_srcdir@/rpmio/fts.c \
@top_srcdir@/rpmio/fts.h \
@top_srcdir@/rpmio/getpass.c \
+ @top_srcdir@/rpmio/gzdio.c \
@top_srcdir@/rpmio/iosm.c \
@top_srcdir@/rpmio/iosm.h \
@top_srcdir@/rpmio/lookup3.c \
@@ .
patch -p0 <<'@@ .'
Index: rpm/po/POTFILES.in
============================================================================
$ cvs diff -u -r1.71 -r1.72 POTFILES.in
--- rpm/po/POTFILES.in 7 Jul 2008 21:16:54 -0000 1.71
+++ rpm/po/POTFILES.in 7 Jul 2008 21:44:06 -0000 1.72
@@ -75,6 +75,8 @@
rpmio/digest.c
rpmio/fts.c
rpmio/getpass.c
+rpmio/gzdio.c
+rpmio/iosm.c
rpmio/lookup3.c
rpmio/lzdio.c
rpmio/macro.c
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmio/Makefile.am
============================================================================
$ cvs diff -u -r1.183 -r1.184 Makefile.am
--- rpm/rpmio/Makefile.am 7 Jul 2008 21:16:54 -0000 1.183
+++ rpm/rpmio/Makefile.am 7 Jul 2008 21:44:06 -0000 1.184
@@ -70,7 +70,7 @@
usrlib_LTLIBRARIES = librpmio.la
librpmio_la_SOURCES = \
ar.c argv.c bzdio.c cpio.c digest.c fts.c getdate.c getpass.c \
- iosm.c lzdio.c macro.c mire.c mount.c \
+ gzdio.c iosm.c lzdio.c macro.c mire.c mount.c \
md2.c md4.c poptIO.c rmd128.c rmd160.c rmd256.c rmd320.c sha224.c \
salsa10.c salsa20.c tiger.c \
rpmbc.c rpmdav.c rpmgc.c rpmhash.c rpmhook.c rpmio.c rpmio-stub.c \
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmio/bzdio.c
============================================================================
$ cvs diff -u -r2.1 -r2.2 bzdio.c
--- rpm/rpmio/bzdio.c 7 Jul 2008 21:16:54 -0000 2.1
+++ rpm/rpmio/bzdio.c 7 Jul 2008 21:44:06 -0000 2.2
@@ -1,4 +1,6 @@
-/* Support for BZIP2 compression library.
+/** \ingroup rpmio
+ * \file rpmio/bzdio.c
+ * Support for BZIP2 compression library.
*/
#include "system.h"
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmio/gzdio.c
============================================================================
$ cvs diff -u -r0 -r2.1 gzdio.c
--- /dev/null 2008-07-07 23:44:00 +0200
+++ gzdio.c 2008-07-07 23:44:07 +0200
@@ -0,0 +1,244 @@
+/** \ingroup rpmio
+ * \file rpmio/gzdio.c
+ * Support for ZLIB compression library.
+ */
+
+#include "system.h"
+#include "rpmio_internal.h"
+#include <rpmmacro.h>
+#include <rpmcb.h>
+
+#ifdef HAVE_ZLIB_H
+
+/[EMAIL PROTECTED]@*/
+#include <zlib.h>
+/[EMAIL PROTECTED]@*/
+
+#include "debug.h"
+
+/[EMAIL PROTECTED] FD_t @*/
+
+#define GZDONLY(fd) assert(fdGetIo(fd) == gzdio)
+
+/* =============================================================== */
+/[EMAIL PROTECTED]@*/
+
+static inline /[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ void *
gzdFileno(FD_t fd)
+ /[EMAIL PROTECTED]/
+{
+ void * rc = NULL;
+ int i;
+
+ FDSANE(fd);
+ for (i = fd->nfps; i >= 0; i--) {
+ FDSTACK_t * fps = &fd->fps[i];
+ if (fps->io != gzdio)
+ continue;
+ rc = fps->fp;
+ break;
+ }
+
+ return rc;
+}
+
+static /[EMAIL PROTECTED]@*/
+FD_t gzdOpen(const char * path, const char * fmode)
+ /[EMAIL PROTECTED] fileSystem, internalState @*/
+ /[EMAIL PROTECTED] fileSystem, internalState @*/
+{
+ FD_t fd;
+ gzFile gzfile;
+ mode_t mode = (fmode && fmode[0] == 'w' ? O_WRONLY : O_RDONLY);
+
+ if ((gzfile = gzopen(path, fmode)) == NULL)
+ return NULL;
+ fd = fdNew("open (gzdOpen)");
+ fdPop(fd); fdPush(fd, gzdio, gzfile, -1);
+ fdSetOpen(fd, path, -1, mode);
+
+DBGIO(fd, (stderr, "==>\tgzdOpen(\"%s\", \"%s\") fd %p %s\n", path, fmode,
(fd ? fd : NULL), fdbg(fd)));
+ return fdLink(fd, "gzdOpen");
+}
+
+static /[EMAIL PROTECTED]@*/ FD_t gzdFdopen(void * cookie, const char *fmode)
+ /[EMAIL PROTECTED] fileSystem, internalState @*/
+ /[EMAIL PROTECTED] fileSystem, internalState @*/
+{
+ FD_t fd = c2f(cookie);
+ int fdno;
+ gzFile gzfile;
+
+ if (fmode == NULL) return NULL;
+ fdno = fdFileno(fd);
+ fdSetFdno(fd, -1); /* XXX skip the fdio close */
+ if (fdno < 0) return NULL;
+ gzfile = gzdopen(fdno, fmode);
+ if (gzfile == NULL) return NULL;
+
+ fdPush(fd, gzdio, gzfile, fdno); /* Push gzdio onto stack */
+
+ return fdLink(fd, "gzdFdopen");
+}
+
+static int gzdFlush(void * cookie)
+ /[EMAIL PROTECTED] fileSystem @*/
+ /[EMAIL PROTECTED] fileSystem @*/
+{
+ FD_t fd = c2f(cookie);
+ gzFile gzfile = gzdFileno(fd);
+ if (gzfile == NULL) return -2;
+ return gzflush(gzfile, Z_SYNC_FLUSH); /* XXX W2DO? */
+}
+
+/* =============================================================== */
+static ssize_t gzdRead(void * cookie, /[EMAIL PROTECTED]@*/ char * buf,
size_t count)
+ /[EMAIL PROTECTED] fileSystem, internalState @*/
+ /[EMAIL PROTECTED] buf, fileSystem, internalState @*/
+{
+ FD_t fd = c2f(cookie);
+ gzFile gzfile;
+ ssize_t rc;
+
+ if (fd == NULL || fd->bytesRemain == 0) return 0; /* XXX simulate
EOF */
+
+ gzfile = gzdFileno(fd);
+ if (gzfile == NULL) return -2; /* XXX can't happen */
+
+ fdstat_enter(fd, FDSTAT_READ);
+ rc = gzread(gzfile, buf, (unsigned)count);
+DBGIO(fd, (stderr, "==>\tgzdRead(%p,%p,%u) rc %lx %s\n", cookie, buf,
(unsigned)count, (unsigned long)rc, fdbg(fd)));
+ if (rc < 0) {
+ int zerror = 0;
+ fd->errcookie = gzerror(gzfile, &zerror);
+ if (zerror == Z_ERRNO) {
+ fd->syserrno = errno;
+ fd->errcookie = strerror(fd->syserrno);
+ }
+ } else if (rc >= 0) {
+ fdstat_exit(fd, FDSTAT_READ, rc);
+ if (fd->ndigests && rc > 0) fdUpdateDigests(fd, (void *)buf, rc);
+ }
+ return rc;
+}
+
+static ssize_t gzdWrite(void * cookie, const char * buf, size_t count)
+ /[EMAIL PROTECTED] fileSystem, internalState @*/
+ /[EMAIL PROTECTED] fileSystem, internalState @*/
+{
+ FD_t fd = c2f(cookie);
+ gzFile gzfile;
+ ssize_t rc;
+
+ if (fd == NULL || fd->bytesRemain == 0) return 0; /* XXX simulate
EOF */
+
+ if (fd->ndigests && count > 0) fdUpdateDigests(fd, (void *)buf, count);
+
+ gzfile = gzdFileno(fd);
+ if (gzfile == NULL) return -2; /* XXX can't happen */
+
+ fdstat_enter(fd, FDSTAT_WRITE);
+ rc = gzwrite(gzfile, (void *)buf, (unsigned)count);
+DBGIO(fd, (stderr, "==>\tgzdWrite(%p,%p,%u) rc %lx %s\n", cookie, buf,
(unsigned)count, (unsigned long)rc, fdbg(fd)));
+ if (rc < 0) {
+ int zerror = 0;
+ fd->errcookie = gzerror(gzfile, &zerror);
+ if (zerror == Z_ERRNO) {
+ fd->syserrno = errno;
+ fd->errcookie = strerror(fd->syserrno);
+ }
+ } else if (rc > 0) {
+ fdstat_exit(fd, FDSTAT_WRITE, rc);
+ }
+ return rc;
+}
+
+/* XXX zlib-1.0.4 has not */
+#define HAVE_GZSEEK /* XXX autoFu doesn't set this anymore. */
+static inline int gzdSeek(void * cookie, _libio_pos_t pos, int whence)
+ /[EMAIL PROTECTED] fileSystem, internalState @*/
+ /[EMAIL PROTECTED] fileSystem, internalState @*/
+{
+ int rc;
+#if defined(HAVE_GZSEEK)
+#ifdef USE_COOKIE_SEEK_POINTER
+ _IO_off64_t p = *pos;
+#else
+ off_t p = pos;
+#endif
+ FD_t fd = c2f(cookie);
+ gzFile gzfile;
+
+ if (fd == NULL) return -2;
+ assert(fd->bytesRemain == -1); /* XXX FIXME */
+
+ gzfile = gzdFileno(fd);
+ if (gzfile == NULL) return -2; /* XXX can't happen */
+
+ fdstat_enter(fd, FDSTAT_SEEK);
+ rc = gzseek(gzfile, (long)p, whence);
+DBGIO(fd, (stderr, "==>\tgzdSeek(%p,%ld,%d) rc %lx %s\n", cookie, (long)p,
whence, (unsigned long)rc, fdbg(fd)));
+ if (rc < 0) {
+ int zerror = 0;
+ fd->errcookie = gzerror(gzfile, &zerror);
+ if (zerror == Z_ERRNO) {
+ fd->syserrno = errno;
+ fd->errcookie = strerror(fd->syserrno);
+ }
+ } else if (rc >= 0) {
+ fdstat_exit(fd, FDSTAT_SEEK, rc);
+ }
+#else
+ rc = -2;
+#endif
+ return rc;
+}
+
+static int gzdClose( /[EMAIL PROTECTED]@*/ void * cookie)
+ /[EMAIL PROTECTED] fileSystem, internalState @*/
+ /[EMAIL PROTECTED] fileSystem, internalState @*/
+{
+ FD_t fd = c2f(cookie);
+ gzFile gzfile;
+ int rc;
+
+ gzfile = gzdFileno(fd);
+ if (gzfile == NULL) return -2; /* XXX can't happen */
+
+ fdstat_enter(fd, FDSTAT_CLOSE);
+ /[EMAIL PROTECTED]@*/
+ rc = gzclose(gzfile);
+ /[EMAIL PROTECTED]@*/
+
+ /* XXX TODO: preserve fd if errors */
+
+ if (fd) {
+DBGIO(fd, (stderr, "==>\tgzdClose(%p) zerror %d %s\n", cookie, rc,
fdbg(fd)));
+ if (rc < 0) {
+ fd->errcookie = "gzclose error";
+ if (rc == Z_ERRNO) {
+ fd->syserrno = errno;
+ fd->errcookie = strerror(fd->syserrno);
+ }
+ } else if (rc >= 0) {
+ fdstat_exit(fd, FDSTAT_CLOSE, rc);
+ }
+ }
+
+DBGIO(fd, (stderr, "==>\tgzdClose(%p) rc %lx %s\n", cookie, (unsigned
long)rc, fdbg(fd)));
+
+ if (_rpmio_debug || rpmIsDebug()) fdstat_print(fd, "GZDIO", stderr);
+ if (rc == 0)
+ fd = fdFree(fd, "open (gzdClose)");
+ return rc;
+}
+
+/[EMAIL PROTECTED]@*/ /* LCL: function typedefs */
+static struct FDIO_s gzdio_s = {
+ gzdRead, gzdWrite, gzdSeek, gzdClose, gzdOpen, gzdFdopen, gzdFlush,
+};
+/[EMAIL PROTECTED]@*/
+
+FDIO_t gzdio = /[EMAIL PROTECTED]@*/ &gzdio_s /[EMAIL PROTECTED]@*/ ;
+
+/[EMAIL PROTECTED]@*/
+#endif /* HAVE_ZLIB_H */
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmio/lzdio.c
============================================================================
$ cvs diff -u -r1.8 -r1.9 lzdio.c
--- rpm/rpmio/lzdio.c 7 Jul 2008 21:16:54 -0000 1.8
+++ rpm/rpmio/lzdio.c 7 Jul 2008 21:44:06 -0000 1.9
@@ -1,4 +1,6 @@
-/* Support for LZMA library.
+/** \ingroup rpmio
+ * \file rpmio/lzdio.c
+ * Support for LZMA compression library.
*/
#include "system.h"
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmio/rpmio.c
============================================================================
$ cvs diff -u -r1.140 -r1.141 rpmio.c
--- rpm/rpmio/rpmio.c 7 Jul 2008 21:16:54 -0000 1.140
+++ rpm/rpmio/rpmio.c 7 Jul 2008 21:44:06 -0000 1.141
@@ -123,7 +123,6 @@
#define FDCPIOPOS(fd) (fd ? ((FD_t)fd)->fd_cpioPos : -99)
#define FDONLY(fd) assert(fdGetIo(fd) == fdio)
-#define GZDONLY(fd) assert(fdGetIo(fd) == gzdio)
#define UFDONLY(fd) /* assert(fdGetIo(fd) == ufdio) */
@@ -2305,236 +2304,6 @@
FDIO_t ufdio = /[EMAIL PROTECTED]@*/ &ufdio_s /[EMAIL PROTECTED]@*/ ;
/* =============================================================== */
-/* Support for GZIP library.
- */
-#ifdef HAVE_ZLIB_H
-/[EMAIL PROTECTED]@*/
-
-/[EMAIL PROTECTED]@*/
-#include <zlib.h>
-/[EMAIL PROTECTED]@*/
-
-static inline /[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ void *
gzdFileno(FD_t fd)
- /[EMAIL PROTECTED]/
-{
- void * rc = NULL;
- int i;
-
- FDSANE(fd);
- for (i = fd->nfps; i >= 0; i--) {
- FDSTACK_t * fps = &fd->fps[i];
- if (fps->io != gzdio)
- continue;
- rc = fps->fp;
- break;
- }
-
- return rc;
-}
-
-static /[EMAIL PROTECTED]@*/
-FD_t gzdOpen(const char * path, const char * fmode)
- /[EMAIL PROTECTED] fileSystem, internalState @*/
- /[EMAIL PROTECTED] fileSystem, internalState @*/
-{
- FD_t fd;
- gzFile gzfile;
- mode_t mode = (fmode && fmode[0] == 'w' ? O_WRONLY : O_RDONLY);
-
- if ((gzfile = gzopen(path, fmode)) == NULL)
- return NULL;
- fd = fdNew("open (gzdOpen)");
- fdPop(fd); fdPush(fd, gzdio, gzfile, -1);
- fdSetOpen(fd, path, -1, mode);
-
-DBGIO(fd, (stderr, "==>\tgzdOpen(\"%s\", \"%s\") fd %p %s\n", path, fmode,
(fd ? fd : NULL), fdbg(fd)));
- return fdLink(fd, "gzdOpen");
-}
-
-static /[EMAIL PROTECTED]@*/ FD_t gzdFdopen(void * cookie, const char *fmode)
- /[EMAIL PROTECTED] fileSystem, internalState @*/
- /[EMAIL PROTECTED] fileSystem, internalState @*/
-{
- FD_t fd = c2f(cookie);
- int fdno;
- gzFile gzfile;
-
- if (fmode == NULL) return NULL;
- fdno = fdFileno(fd);
- fdSetFdno(fd, -1); /* XXX skip the fdio close */
- if (fdno < 0) return NULL;
- gzfile = gzdopen(fdno, fmode);
- if (gzfile == NULL) return NULL;
-
- fdPush(fd, gzdio, gzfile, fdno); /* Push gzdio onto stack */
-
- return fdLink(fd, "gzdFdopen");
-}
-
-static int gzdFlush(void * cookie)
- /[EMAIL PROTECTED] fileSystem @*/
- /[EMAIL PROTECTED] fileSystem @*/
-{
- FD_t fd = c2f(cookie);
- gzFile gzfile = gzdFileno(fd);
- if (gzfile == NULL) return -2;
- return gzflush(gzfile, Z_SYNC_FLUSH); /* XXX W2DO? */
-}
-
-/* =============================================================== */
-static ssize_t gzdRead(void * cookie, /[EMAIL PROTECTED]@*/ char * buf,
size_t count)
- /[EMAIL PROTECTED] fileSystem, internalState @*/
- /[EMAIL PROTECTED] buf, fileSystem, internalState @*/
-{
- FD_t fd = c2f(cookie);
- gzFile gzfile;
- ssize_t rc;
-
- if (fd == NULL || fd->bytesRemain == 0) return 0; /* XXX simulate
EOF */
-
- gzfile = gzdFileno(fd);
- if (gzfile == NULL) return -2; /* XXX can't happen */
-
- fdstat_enter(fd, FDSTAT_READ);
- rc = gzread(gzfile, buf, (unsigned)count);
-DBGIO(fd, (stderr, "==>\tgzdRead(%p,%p,%u) rc %lx %s\n", cookie, buf,
(unsigned)count, (unsigned long)rc, fdbg(fd)));
- if (rc < 0) {
- int zerror = 0;
- fd->errcookie = gzerror(gzfile, &zerror);
- if (zerror == Z_ERRNO) {
- fd->syserrno = errno;
- fd->errcookie = strerror(fd->syserrno);
- }
- } else if (rc >= 0) {
- fdstat_exit(fd, FDSTAT_READ, rc);
- if (fd->ndigests && rc > 0) fdUpdateDigests(fd, (void *)buf, rc);
- }
- return rc;
-}
-
-static ssize_t gzdWrite(void * cookie, const char * buf, size_t count)
- /[EMAIL PROTECTED] fileSystem, internalState @*/
- /[EMAIL PROTECTED] fileSystem, internalState @*/
-{
- FD_t fd = c2f(cookie);
- gzFile gzfile;
- ssize_t rc;
-
- if (fd == NULL || fd->bytesRemain == 0) return 0; /* XXX simulate
EOF */
-
- if (fd->ndigests && count > 0) fdUpdateDigests(fd, (void *)buf, count);
-
- gzfile = gzdFileno(fd);
- if (gzfile == NULL) return -2; /* XXX can't happen */
-
- fdstat_enter(fd, FDSTAT_WRITE);
- rc = gzwrite(gzfile, (void *)buf, (unsigned)count);
-DBGIO(fd, (stderr, "==>\tgzdWrite(%p,%p,%u) rc %lx %s\n", cookie, buf,
(unsigned)count, (unsigned long)rc, fdbg(fd)));
- if (rc < 0) {
- int zerror = 0;
- fd->errcookie = gzerror(gzfile, &zerror);
- if (zerror == Z_ERRNO) {
- fd->syserrno = errno;
- fd->errcookie = strerror(fd->syserrno);
- }
- } else if (rc > 0) {
- fdstat_exit(fd, FDSTAT_WRITE, rc);
- }
- return rc;
-}
-
-/* XXX zlib-1.0.4 has not */
-#define HAVE_GZSEEK /* XXX autoFu doesn't set this anymore. */
-static inline int gzdSeek(void * cookie, _libio_pos_t pos, int whence)
- /[EMAIL PROTECTED] fileSystem, internalState @*/
- /[EMAIL PROTECTED] fileSystem, internalState @*/
-{
- int rc;
-#if defined(HAVE_GZSEEK)
-#ifdef USE_COOKIE_SEEK_POINTER
- _IO_off64_t p = *pos;
-#else
- off_t p = pos;
-#endif
- FD_t fd = c2f(cookie);
- gzFile gzfile;
-
- if (fd == NULL) return -2;
- assert(fd->bytesRemain == -1); /* XXX FIXME */
-
- gzfile = gzdFileno(fd);
- if (gzfile == NULL) return -2; /* XXX can't happen */
-
- fdstat_enter(fd, FDSTAT_SEEK);
- rc = gzseek(gzfile, (long)p, whence);
-DBGIO(fd, (stderr, "==>\tgzdSeek(%p,%ld,%d) rc %lx %s\n", cookie, (long)p,
whence, (unsigned long)rc, fdbg(fd)));
- if (rc < 0) {
- int zerror = 0;
- fd->errcookie = gzerror(gzfile, &zerror);
- if (zerror == Z_ERRNO) {
- fd->syserrno = errno;
- fd->errcookie = strerror(fd->syserrno);
- }
- } else if (rc >= 0) {
- fdstat_exit(fd, FDSTAT_SEEK, rc);
- }
-#else
- rc = -2;
-#endif
- return rc;
-}
-
-static int gzdClose( /[EMAIL PROTECTED]@*/ void * cookie)
- /[EMAIL PROTECTED] fileSystem, internalState @*/
- /[EMAIL PROTECTED] fileSystem, internalState @*/
-{
- FD_t fd = c2f(cookie);
- gzFile gzfile;
- int rc;
-
- gzfile = gzdFileno(fd);
- if (gzfile == NULL) return -2; /* XXX can't happen */
-
- fdstat_enter(fd, FDSTAT_CLOSE);
- /[EMAIL PROTECTED]@*/
- rc = gzclose(gzfile);
- /[EMAIL PROTECTED]@*/
-
- /* XXX TODO: preserve fd if errors */
-
- if (fd) {
-DBGIO(fd, (stderr, "==>\tgzdClose(%p) zerror %d %s\n", cookie, rc,
fdbg(fd)));
- if (rc < 0) {
- fd->errcookie = "gzclose error";
- if (rc == Z_ERRNO) {
- fd->syserrno = errno;
- fd->errcookie = strerror(fd->syserrno);
- }
- } else if (rc >= 0) {
- fdstat_exit(fd, FDSTAT_CLOSE, rc);
- }
- }
-
-DBGIO(fd, (stderr, "==>\tgzdClose(%p) rc %lx %s\n", cookie, (unsigned
long)rc, fdbg(fd)));
-
- if (_rpmio_debug || rpmIsDebug()) fdstat_print(fd, "GZDIO", stderr);
- if (rc == 0)
- fd = fdFree(fd, "open (gzdClose)");
- return rc;
-}
-
-/[EMAIL PROTECTED]@*/ /* LCL: function typedefs */
-static struct FDIO_s gzdio_s = {
- gzdRead, gzdWrite, gzdSeek, gzdClose, gzdOpen, gzdFdopen, gzdFlush,
-};
-/[EMAIL PROTECTED]@*/
-
-FDIO_t gzdio = /[EMAIL PROTECTED]@*/ &gzdio_s /[EMAIL PROTECTED]@*/ ;
-
-/[EMAIL PROTECTED]@*/
-#endif /* HAVE_ZLIB_H */
-
-/* =============================================================== */
/[EMAIL PROTECTED]@*/
static const char * getFdErrstr (FD_t fd)
/[EMAIL PROTECTED]/
@@ -3043,8 +2812,8 @@
vh = fdGetFp(fd);
#if defined(HAVE_ZLIB_H)
- if (vh && fdGetIo(fd) == gzdio)
- return gzdFlush(vh);
+ if (vh && fdGetIo(fd) == gzdio && gzdio->_flush != NULL)
+ return (*gzdio->_flush) ((void *)fd);
#endif
#if defined(HAVE_BZLIB_H)
if (vh && fdGetIo(fd) == bzdio && bzdio->_flush != NULL)
@@ .
______________________________________________________________________
RPM Package Manager http://rpm5.org
CVS Sources Repository [email protected]