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:16:55
Branch: HEAD Handle: 2008070721165301
Added files:
rpm/rpmio bzdio.c
Modified files:
rpm CHANGES Doxyfile.in
rpm/po POTFILES.in
rpm/rpmio Makefile.am lzdio.c rpmio.c rpmio.h rpmurl.h
Log:
- rpm.org: Teach Fflush about lzdio.
- jbj: add _flush to FDIO_t, make bzdio.c standalone.
Summary:
Revision Changes Path
1.2471 +2 -0 rpm/CHANGES
2.92 +1 -0 rpm/Doxyfile.in
1.71 +1 -0 rpm/po/POTFILES.in
1.183 +1 -1 rpm/rpmio/Makefile.am
2.1 +206 -0 rpm/rpmio/bzdio.c
1.8 +3 -6 rpm/rpmio/lzdio.c
1.140 +13 -201 rpm/rpmio/rpmio.c
1.76 +7 -0 rpm/rpmio/rpmio.h
1.29 +1 -1 rpm/rpmio/rpmurl.h
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/CHANGES
============================================================================
$ cvs diff -u -r1.2470 -r1.2471 CHANGES
--- rpm/CHANGES 7 Jul 2008 20:02:31 -0000 1.2470
+++ rpm/CHANGES 7 Jul 2008 21:16:53 -0000 1.2471
@@ -1,5 +1,7 @@
5.1.0 -> 5.2a0:
+ - rpm.org: Teach Fflush about lzdio.
+ - jbj: add _flush to FDIO_t, make bzdio.c standalone.
- jbj: rpmio: start deconstructing the ancient URL callback.
- jbj: rpmwget: ... display connection state in wgetNotify.
- jbj: rpmdav: pass the neon callback thru (*u->notify) to ...
@@ .
patch -p0 <<'@@ .'
Index: rpm/Doxyfile.in
============================================================================
$ cvs diff -u -r2.91 -r2.92 Doxyfile.in
--- rpm/Doxyfile.in 4 Jun 2008 23:07:59 -0000 2.91
+++ rpm/Doxyfile.in 7 Jul 2008 21:16:53 -0000 2.92
@@ -583,6 +583,7 @@
@top_srcdir@/rpmio/ar.h \
@top_srcdir@/rpmio/argv.c \
@top_srcdir@/rpmio/argv.h \
+ @top_srcdir@/rpmio/bzdio.c \
@top_srcdir@/rpmio/cpio.c \
@top_srcdir@/rpmio/cpio.h \
@top_srcdir@/rpmio/digest.c \
@@ .
patch -p0 <<'@@ .'
Index: rpm/po/POTFILES.in
============================================================================
$ cvs diff -u -r1.70 -r1.71 POTFILES.in
--- rpm/po/POTFILES.in 4 Jun 2008 23:08:00 -0000 1.70
+++ rpm/po/POTFILES.in 7 Jul 2008 21:16:54 -0000 1.71
@@ -70,6 +70,7 @@
rpmdb/tagname.c
rpmio/ar.c
rpmio/argv.c
+rpmio/bzdio.c
rpmio/cpio.c
rpmio/digest.c
rpmio/fts.c
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmio/Makefile.am
============================================================================
$ cvs diff -u -r1.182 -r1.183 Makefile.am
--- rpm/rpmio/Makefile.am 2 Jul 2008 17:59:10 -0000 1.182
+++ rpm/rpmio/Makefile.am 7 Jul 2008 21:16:54 -0000 1.183
@@ -69,7 +69,7 @@
usrlibdir = $(libdir)
usrlib_LTLIBRARIES = librpmio.la
librpmio_la_SOURCES = \
- ar.c argv.c cpio.c digest.c fts.c getdate.c getpass.c \
+ 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 \
md2.c md4.c poptIO.c rmd128.c rmd160.c rmd256.c rmd320.c sha224.c \
salsa10.c salsa20.c tiger.c \
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmio/bzdio.c
============================================================================
$ cvs diff -u -r0 -r2.1 bzdio.c
--- /dev/null 2008-07-07 23:11:00 +0200
+++ bzdio.c 2008-07-07 23:16:54 +0200
@@ -0,0 +1,206 @@
+/* Support for BZIP2 compression library.
+ */
+
+#include "system.h"
+#include "rpmio_internal.h"
+#include <rpmmacro.h>
+#include <rpmcb.h>
+
+#if defined(HAVE_BZLIB_H)
+
+#include <bzlib.h>
+
+#include "debug.h"
+
+/[EMAIL PROTECTED] FD_t @*/
+
+#define BZDONLY(fd) assert(fdGetIo(fd) == bzdio)
+
+/* =============================================================== */
+
+/[EMAIL PROTECTED]@*/
+
+static inline /[EMAIL PROTECTED]@*/ void * bzdFileno(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 != bzdio)
+ continue;
+ rc = fps->fp;
+ break;
+ }
+
+ return rc;
+}
+
+/[EMAIL PROTECTED]@*/
+static /[EMAIL PROTECTED]@*/ FD_t bzdOpen(const char * path, const char *
fmode)
+ /[EMAIL PROTECTED] fileSystem, internalState @*/
+ /[EMAIL PROTECTED] fileSystem, internalState @*/
+{
+ FD_t fd;
+ BZFILE *bzfile;
+ mode_t mode = (fmode && fmode[0] == 'w' ? O_WRONLY : O_RDONLY);
+
+ if ((bzfile = BZ2_bzopen(path, fmode)) == NULL)
+ return NULL;
+ fd = fdNew("open (bzdOpen)");
+ fdPop(fd); fdPush(fd, bzdio, bzfile, -1);
+ fdSetOpen(fd, path, -1, mode);
+ return fdLink(fd, "bzdOpen");
+}
+/[EMAIL PROTECTED]@*/
+
+/[EMAIL PROTECTED]@*/
+static /[EMAIL PROTECTED]@*/ FD_t bzdFdopen(void * cookie, const char *
fmode)
+ /[EMAIL PROTECTED] fileSystem, internalState @*/
+ /[EMAIL PROTECTED] fileSystem, internalState @*/
+{
+ FD_t fd = c2f(cookie);
+ int fdno;
+ BZFILE *bzfile;
+
+ if (fmode == NULL) return NULL;
+ fdno = fdFileno(fd);
+ fdSetFdno(fd, -1); /* XXX skip the fdio close */
+ if (fdno < 0) return NULL;
+ bzfile = BZ2_bzdopen(fdno, fmode);
+ if (bzfile == NULL) return NULL;
+
+ fdPush(fd, bzdio, bzfile, fdno); /* Push bzdio onto stack */
+
+ return fdLink(fd, "bzdFdopen");
+}
+/[EMAIL PROTECTED]@*/
+
+/[EMAIL PROTECTED]@*/
+static int bzdFlush(void * cookie)
+ /[EMAIL PROTECTED] fileSystem @*/
+ /[EMAIL PROTECTED] fileSystem @*/
+{
+ FD_t fd = c2f(cookie);
+ return BZ2_bzflush(bzdFileno(fd));
+}
+/[EMAIL PROTECTED]@*/
+
+/* =============================================================== */
+/[EMAIL PROTECTED]@*/
+/[EMAIL PROTECTED]@*/ /* LCL: *buf is modified */
+static ssize_t bzdRead(void * cookie, /[EMAIL PROTECTED]@*/ char * buf,
size_t count)
+ /[EMAIL PROTECTED] fileSystem, internalState @*/
+ /[EMAIL PROTECTED] *buf, fileSystem, internalState @*/
+{
+ FD_t fd = c2f(cookie);
+ BZFILE *bzfile;
+ ssize_t rc = 0;
+
+ if (fd->bytesRemain == 0) return 0; /* XXX simulate EOF */
+ bzfile = bzdFileno(fd);
+ fdstat_enter(fd, FDSTAT_READ);
+ if (bzfile)
+ /[EMAIL PROTECTED]@*/
+ rc = BZ2_bzread(bzfile, buf, (int)count);
+ /[EMAIL PROTECTED]@*/
+ if (rc == -1) {
+ int zerror = 0;
+ if (bzfile)
+ fd->errcookie = BZ2_bzerror(bzfile, &zerror);
+ } else if (rc >= 0) {
+ fdstat_exit(fd, FDSTAT_READ, rc);
+ /[EMAIL PROTECTED]@*/
+ if (fd->ndigests && rc > 0) fdUpdateDigests(fd, (void *)buf, rc);
+ /[EMAIL PROTECTED]@*/
+ }
+ return rc;
+}
+/[EMAIL PROTECTED]@*/
+/[EMAIL PROTECTED]@*/
+
+/[EMAIL PROTECTED]@*/
+static ssize_t bzdWrite(void * cookie, const char * buf, size_t count)
+ /[EMAIL PROTECTED] fileSystem, internalState @*/
+ /[EMAIL PROTECTED] fileSystem, internalState @*/
+{
+ FD_t fd = c2f(cookie);
+ BZFILE *bzfile;
+ ssize_t rc;
+
+ if (fd->bytesRemain == 0) return 0; /* XXX simulate EOF */
+
+ if (fd->ndigests && count > 0) fdUpdateDigests(fd, (void *)buf, count);
+
+ bzfile = bzdFileno(fd);
+ fdstat_enter(fd, FDSTAT_WRITE);
+ rc = BZ2_bzwrite(bzfile, (void *)buf, (int)count);
+ if (rc == -1) {
+ int zerror = 0;
+ fd->errcookie = BZ2_bzerror(bzfile, &zerror);
+ } else if (rc > 0) {
+ fdstat_exit(fd, FDSTAT_WRITE, rc);
+ }
+ return rc;
+}
+/[EMAIL PROTECTED]@*/
+
+static inline int bzdSeek(void * cookie, /[EMAIL PROTECTED]@*/ _libio_pos_t
pos,
+ /[EMAIL PROTECTED]@*/ int whence)
+ /[EMAIL PROTECTED]/
+{
+ FD_t fd = c2f(cookie);
+
+ BZDONLY(fd);
+ return -2;
+}
+
+static int bzdClose( /[EMAIL PROTECTED]@*/ void * cookie)
+ /[EMAIL PROTECTED] fileSystem, internalState @*/
+ /[EMAIL PROTECTED] fileSystem, internalState @*/
+{
+ FD_t fd = c2f(cookie);
+ BZFILE *bzfile;
+ int rc;
+
+ bzfile = bzdFileno(fd);
+
+ if (bzfile == NULL) return -2;
+ fdstat_enter(fd, FDSTAT_CLOSE);
+ /[EMAIL PROTECTED]@*/ /* FIX: check rc */
+ BZ2_bzclose(bzfile);
+ /[EMAIL PROTECTED]@*/
+ rc = 0; /* XXX FIXME */
+
+ /* XXX TODO: preserve fd if errors */
+
+ if (fd) {
+ if (rc == -1) {
+ int zerror = 0;
+ fd->errcookie = BZ2_bzerror(bzfile, &zerror);
+ } else if (rc >= 0) {
+ fdstat_exit(fd, FDSTAT_CLOSE, rc);
+ }
+ }
+
+DBGIO(fd, (stderr, "==>\tbzdClose(%p) rc %lx %s\n", cookie, (unsigned
long)rc, fdbg(fd)));
+
+ if (_rpmio_debug || rpmIsDebug()) fdstat_print(fd, "BZDIO", stderr);
+ if (rc == 0)
+ fd = fdFree(fd, "open (bzdClose)");
+ return rc;
+}
+
+/[EMAIL PROTECTED]@*/ /* LCL: function typedefs */
+static struct FDIO_s bzdio_s = {
+ bzdRead, bzdWrite, bzdSeek, bzdClose, bzdOpen, bzdFdopen, bzdFlush,
+};
+/[EMAIL PROTECTED]@*/
+
+FDIO_t bzdio = /[EMAIL PROTECTED]@*/ &bzdio_s /[EMAIL PROTECTED]@*/ ;
+
+/[EMAIL PROTECTED]@*/
+#endif
+
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmio/lzdio.c
============================================================================
$ cvs diff -u -r1.7 -r1.8 lzdio.c
--- rpm/rpmio/lzdio.c 3 Jul 2008 20:52:10 -0000 1.7
+++ rpm/rpmio/lzdio.c 7 Jul 2008 21:16:54 -0000 1.8
@@ -101,13 +101,11 @@
return lzopen_internal(0, mode, fd);
}
-#ifdef UNUSED
static int lzflush(LZFILE *lzfile)
/[EMAIL PROTECTED] lzfile @*/
{
return fflush(lzfile->fp);
}
-#endif
static int lzclose(/[EMAIL PROTECTED]@*/ LZFILE *lzfile)
/[EMAIL PROTECTED] fileSystem @*/
@@ -266,16 +264,15 @@
}
/[EMAIL PROTECTED]@*/
-#ifdef UNUSED
/[EMAIL PROTECTED]@*/
-static int lzdFlush(FD_t fd)
+static int lzdFlush(void * cookie)
/[EMAIL PROTECTED] fileSystem @*/
/[EMAIL PROTECTED] fileSystem @*/
{
+ FD_t fd = c2f(cookie);
return lzflush(lzdFileno(fd));
}
/[EMAIL PROTECTED]@*/
-#endif
/* =============================================================== */
/[EMAIL PROTECTED]@*/
@@ -381,7 +378,7 @@
/[EMAIL PROTECTED]@*/ /* LCL: function typedefs */
static struct FDIO_s lzdio_s = {
- lzdRead, lzdWrite, lzdSeek, lzdClose, lzdOpen, lzdFdopen,
+ lzdRead, lzdWrite, lzdSeek, lzdClose, lzdOpen, lzdFdopen, lzdFlush,
};
/[EMAIL PROTECTED]@*/
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmio/rpmio.c
============================================================================
$ cvs diff -u -r1.139 -r1.140 rpmio.c
--- rpm/rpmio/rpmio.c 7 Jul 2008 20:02:31 -0000 1.139
+++ rpm/rpmio/rpmio.c 7 Jul 2008 21:16:54 -0000 1.140
@@ -124,7 +124,6 @@
#define FDONLY(fd) assert(fdGetIo(fd) == fdio)
#define GZDONLY(fd) assert(fdGetIo(fd) == gzdio)
-#define BZDONLY(fd) assert(fdGetIo(fd) == bzdio)
#define UFDONLY(fd) /* assert(fdGetIo(fd) == ufdio) */
@@ -536,7 +535,7 @@
/[EMAIL PROTECTED]@*/ /* LCL: function typedefs */
static struct FDIO_s fdio_s = {
- fdRead, fdWrite, fdSeek, fdClose, NULL, NULL,
+ fdRead, fdWrite, fdSeek, fdClose, NULL, NULL, NULL,
};
/[EMAIL PROTECTED]@*/
@@ -2299,7 +2298,7 @@
/[EMAIL PROTECTED]@*/ /* LCL: function typedefs */
static struct FDIO_s ufdio_s = {
- ufdRead, ufdWrite, ufdSeek, ufdClose, NULL, NULL,
+ ufdRead, ufdWrite, ufdSeek, ufdClose, NULL, NULL, NULL,
};
/[EMAIL PROTECTED]@*/
@@ -2372,12 +2371,12 @@
return fdLink(fd, "gzdFdopen");
}
-static int gzdFlush(FD_t fd)
+static int gzdFlush(void * cookie)
/[EMAIL PROTECTED] fileSystem @*/
/[EMAIL PROTECTED] fileSystem @*/
{
- gzFile gzfile;
- gzfile = gzdFileno(fd);
+ FD_t fd = c2f(cookie);
+ gzFile gzfile = gzdFileno(fd);
if (gzfile == NULL) return -2;
return gzflush(gzfile, Z_SYNC_FLUSH); /* XXX W2DO? */
}
@@ -2526,7 +2525,7 @@
/[EMAIL PROTECTED]@*/ /* LCL: function typedefs */
static struct FDIO_s gzdio_s = {
- gzdRead, gzdWrite, gzdSeek, gzdClose, gzdOpen, gzdFdopen,
+ gzdRead, gzdWrite, gzdSeek, gzdClose, gzdOpen, gzdFdopen, gzdFlush,
};
/[EMAIL PROTECTED]@*/
@@ -2536,197 +2535,6 @@
#endif /* HAVE_ZLIB_H */
/* =============================================================== */
-/* Support for BZIP2 library.
- */
-#if defined(HAVE_BZLIB_H)
-/[EMAIL PROTECTED]@*/
-
-#include <bzlib.h>
-
-static inline /[EMAIL PROTECTED]@*/ void * bzdFileno(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 != bzdio)
- continue;
- rc = fps->fp;
- break;
- }
-
- return rc;
-}
-
-/[EMAIL PROTECTED]@*/
-static /[EMAIL PROTECTED]@*/ FD_t bzdOpen(const char * path, const char *
fmode)
- /[EMAIL PROTECTED] fileSystem, internalState @*/
- /[EMAIL PROTECTED] fileSystem, internalState @*/
-{
- FD_t fd;
- BZFILE *bzfile;
- mode_t mode = (fmode && fmode[0] == 'w' ? O_WRONLY : O_RDONLY);
-
- if ((bzfile = BZ2_bzopen(path, fmode)) == NULL)
- return NULL;
- fd = fdNew("open (bzdOpen)");
- fdPop(fd); fdPush(fd, bzdio, bzfile, -1);
- fdSetOpen(fd, path, -1, mode);
- return fdLink(fd, "bzdOpen");
-}
-/[EMAIL PROTECTED]@*/
-
-/[EMAIL PROTECTED]@*/
-static /[EMAIL PROTECTED]@*/ FD_t bzdFdopen(void * cookie, const char *
fmode)
- /[EMAIL PROTECTED] fileSystem, internalState @*/
- /[EMAIL PROTECTED] fileSystem, internalState @*/
-{
- FD_t fd = c2f(cookie);
- int fdno;
- BZFILE *bzfile;
-
- if (fmode == NULL) return NULL;
- fdno = fdFileno(fd);
- fdSetFdno(fd, -1); /* XXX skip the fdio close */
- if (fdno < 0) return NULL;
- bzfile = BZ2_bzdopen(fdno, fmode);
- if (bzfile == NULL) return NULL;
-
- fdPush(fd, bzdio, bzfile, fdno); /* Push bzdio onto stack */
-
- return fdLink(fd, "bzdFdopen");
-}
-/[EMAIL PROTECTED]@*/
-
-/[EMAIL PROTECTED]@*/
-static int bzdFlush(FD_t fd)
- /[EMAIL PROTECTED] fileSystem @*/
- /[EMAIL PROTECTED] fileSystem @*/
-{
- return BZ2_bzflush(bzdFileno(fd));
-}
-/[EMAIL PROTECTED]@*/
-
-/* =============================================================== */
-/[EMAIL PROTECTED]@*/
-/[EMAIL PROTECTED]@*/ /* LCL: *buf is modified */
-static ssize_t bzdRead(void * cookie, /[EMAIL PROTECTED]@*/ char * buf,
size_t count)
- /[EMAIL PROTECTED] fileSystem, internalState @*/
- /[EMAIL PROTECTED] *buf, fileSystem, internalState @*/
-{
- FD_t fd = c2f(cookie);
- BZFILE *bzfile;
- ssize_t rc = 0;
-
- if (fd->bytesRemain == 0) return 0; /* XXX simulate EOF */
- bzfile = bzdFileno(fd);
- fdstat_enter(fd, FDSTAT_READ);
- if (bzfile)
- /[EMAIL PROTECTED]@*/
- rc = BZ2_bzread(bzfile, buf, (int)count);
- /[EMAIL PROTECTED]@*/
- if (rc == -1) {
- int zerror = 0;
- if (bzfile)
- fd->errcookie = BZ2_bzerror(bzfile, &zerror);
- } else if (rc >= 0) {
- fdstat_exit(fd, FDSTAT_READ, rc);
- /[EMAIL PROTECTED]@*/
- if (fd->ndigests && rc > 0) fdUpdateDigests(fd, (void *)buf, rc);
- /[EMAIL PROTECTED]@*/
- }
- return rc;
-}
-/[EMAIL PROTECTED]@*/
-/[EMAIL PROTECTED]@*/
-
-/[EMAIL PROTECTED]@*/
-static ssize_t bzdWrite(void * cookie, const char * buf, size_t count)
- /[EMAIL PROTECTED] fileSystem, internalState @*/
- /[EMAIL PROTECTED] fileSystem, internalState @*/
-{
- FD_t fd = c2f(cookie);
- BZFILE *bzfile;
- ssize_t rc;
-
- if (fd->bytesRemain == 0) return 0; /* XXX simulate EOF */
-
- if (fd->ndigests && count > 0) fdUpdateDigests(fd, (void *)buf, count);
-
- bzfile = bzdFileno(fd);
- fdstat_enter(fd, FDSTAT_WRITE);
- rc = BZ2_bzwrite(bzfile, (void *)buf, (int)count);
- if (rc == -1) {
- int zerror = 0;
- fd->errcookie = BZ2_bzerror(bzfile, &zerror);
- } else if (rc > 0) {
- fdstat_exit(fd, FDSTAT_WRITE, rc);
- }
- return rc;
-}
-/[EMAIL PROTECTED]@*/
-
-static inline int bzdSeek(void * cookie, /[EMAIL PROTECTED]@*/ _libio_pos_t
pos,
- /[EMAIL PROTECTED]@*/ int whence)
- /[EMAIL PROTECTED]/
-{
- FD_t fd = c2f(cookie);
-
- BZDONLY(fd);
- return -2;
-}
-
-static int bzdClose( /[EMAIL PROTECTED]@*/ void * cookie)
- /[EMAIL PROTECTED] fileSystem, internalState @*/
- /[EMAIL PROTECTED] fileSystem, internalState @*/
-{
- FD_t fd = c2f(cookie);
- BZFILE *bzfile;
- int rc;
-
- bzfile = bzdFileno(fd);
-
- if (bzfile == NULL) return -2;
- fdstat_enter(fd, FDSTAT_CLOSE);
- /[EMAIL PROTECTED]@*/ /* FIX: check rc */
- BZ2_bzclose(bzfile);
- /[EMAIL PROTECTED]@*/
- rc = 0; /* XXX FIXME */
-
- /* XXX TODO: preserve fd if errors */
-
- if (fd) {
- if (rc == -1) {
- int zerror = 0;
- fd->errcookie = BZ2_bzerror(bzfile, &zerror);
- } else if (rc >= 0) {
- fdstat_exit(fd, FDSTAT_CLOSE, rc);
- }
- }
-
-DBGIO(fd, (stderr, "==>\tbzdClose(%p) rc %lx %s\n", cookie, (unsigned
long)rc, fdbg(fd)));
-
- if (_rpmio_debug || rpmIsDebug()) fdstat_print(fd, "BZDIO", stderr);
- if (rc == 0)
- fd = fdFree(fd, "open (bzdClose)");
- return rc;
-}
-
-/[EMAIL PROTECTED]@*/ /* LCL: function typedefs */
-static struct FDIO_s bzdio_s = {
- bzdRead, bzdWrite, bzdSeek, bzdClose, bzdOpen, bzdFdopen,
-};
-/[EMAIL PROTECTED]@*/
-
-FDIO_t bzdio = /[EMAIL PROTECTED]@*/ &bzdio_s /[EMAIL PROTECTED]@*/ ;
-
-/[EMAIL PROTECTED]@*/
-#endif /* HAVE_BZLIB_H */
-
-/* =============================================================== */
/[EMAIL PROTECTED]@*/
static const char * getFdErrstr (FD_t fd)
/[EMAIL PROTECTED]/
@@ -3239,8 +3047,12 @@
return gzdFlush(vh);
#endif
#if defined(HAVE_BZLIB_H)
- if (vh && fdGetIo(fd) == bzdio)
- return bzdFlush(vh);
+ if (vh && fdGetIo(fd) == bzdio && bzdio->_flush != NULL)
+ return (*bzdio->_flush) ((void *)fd);
+#endif
+#if defined(HAVE_LZMA_H)
+ if (vh && fdGetIo(fd) == lzdio && lzdio->_flush != NULL)
+ return (*lzdio->_flush) ((void *)fd);
#endif
return 0;
@@ -3592,7 +3404,7 @@
/[EMAIL PROTECTED]@*/ /* LCL: function typedefs */
static struct FDIO_s fpio_s = {
- ufdRead, ufdWrite, fdSeek, ufdClose, NULL, NULL,
+ ufdRead, ufdWrite, fdSeek, ufdClose, NULL, NULL, NULL,
};
/[EMAIL PROTECTED]@*/
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmio/rpmio.h
============================================================================
$ cvs diff -u -r1.75 -r1.76 rpmio.h
--- rpm/rpmio/rpmio.h 5 Jul 2008 23:35:12 -0000 1.75
+++ rpm/rpmio/rpmio.h 7 Jul 2008 21:16:54 -0000 1.76
@@ -100,6 +100,12 @@
/[EMAIL PROTECTED] errno, fileSystem @*/
/[EMAIL PROTECTED] errno, fileSystem @*/;
+/**
+ */
+typedef int (*fdio_flush_function_t) (void * cookie)
+ /[EMAIL PROTECTED] errno, fileSystem @*/
+ /[EMAIL PROTECTED] errno, fileSystem @*/;
+
/[EMAIL PROTECTED]/
@@ -112,6 +118,7 @@
fdio_close_function_t close;
fdio_fopen_function_t _fopen;
fdio_fdopen_function_t _fdopen;
+ fdio_flush_function_t _flush;
};
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmio/rpmurl.h
============================================================================
$ cvs diff -u -r1.28 -r1.29 rpmurl.h
--- rpm/rpmio/rpmurl.h 7 Jul 2008 20:02:31 -0000 1.28
+++ rpm/rpmio/rpmurl.h 7 Jul 2008 21:16:54 -0000 1.29
@@ -29,7 +29,7 @@
/**
*/
-int (*urlNotify) (const urlinfo u, unsigned status)
+extern int (*urlNotify) (const urlinfo u, unsigned status)
/[EMAIL PROTECTED]/;
/**
@@ .
______________________________________________________________________
RPM Package Manager http://rpm5.org
CVS Sources Repository [email protected]