[Glibc-bsd-commits] r5015 - in trunk/freebsd-glue: debian src
Robert Millan
rmh at alioth.debian.org
Mon Oct 7 22:31:45 UTC 2013
Author: rmh
Date: 2013-10-07 22:31:45 +0000 (Mon, 07 Oct 2013)
New Revision: 5015
Added:
trunk/freebsd-glue/src/zopen.c
Modified:
trunk/freebsd-glue/debian/changelog
trunk/freebsd-glue/debian/copyright
trunk/freebsd-glue/src/Makefile
Log:
Add zopen().
Modified: trunk/freebsd-glue/debian/changelog
===================================================================
--- trunk/freebsd-glue/debian/changelog 2013-10-07 22:30:06 UTC (rev 5014)
+++ trunk/freebsd-glue/debian/changelog 2013-10-07 22:31:45 UTC (rev 5015)
@@ -2,6 +2,7 @@
* Build with full -Werror.
* Implement funopen(), fropen() and fwopen().
+ * Add zopen().
-- Robert Millan <rmh at debian.org> Tue, 08 Oct 2013 00:28:49 +0200
Modified: trunk/freebsd-glue/debian/copyright
===================================================================
--- trunk/freebsd-glue/debian/copyright 2013-10-07 22:30:06 UTC (rev 5014)
+++ trunk/freebsd-glue/debian/copyright 2013-10-07 22:31:45 UTC (rev 5015)
@@ -151,6 +151,10 @@
Copyright: 1991-2009, 2010 Free Software Foundation, Inc.
License: LGPL-2.1
+Files: src/zopen.c
+Copyright: Johan Danielsson
+License: Public domain
+
License: LGPL-3+
On Debian systems the full text of the GNU Lesser General Public
License can be found in the `/usr/share/common-licenses/LGPL'
Modified: trunk/freebsd-glue/src/Makefile
===================================================================
--- trunk/freebsd-glue/src/Makefile 2013-10-07 22:30:06 UTC (rev 5014)
+++ trunk/freebsd-glue/src/Makefile 2013-10-07 22:31:45 UTC (rev 5015)
@@ -7,6 +7,7 @@
getosreldate.c \
random.c \
trimdomain.c \
+ zopen.c \
${NULL}
SYS!= dpkg-architecture -qDEB_HOST_GNU_SYSTEM
Added: trunk/freebsd-glue/src/zopen.c
===================================================================
--- trunk/freebsd-glue/src/zopen.c (rev 0)
+++ trunk/freebsd-glue/src/zopen.c 2013-10-07 22:31:45 UTC (rev 5015)
@@ -0,0 +1,43 @@
+/*
+ * Public domain stdio wrapper for libz, written by Johan Danielsson.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD: head/lib/libz/zopen.c 84228 2001-09-30 22:39:00Z dillon $");
+
+#include <stdio.h>
+#include <zlib.h>
+
+FILE *zopen(const char *fname, const char *mode);
+
+/* convert arguments */
+static int
+xgzread(void *cookie, char *data, int size)
+{
+ return gzread(cookie, data, size);
+}
+
+static int
+xgzwrite(void *cookie, const char *data, int size)
+{
+ return gzwrite(cookie, (void*)data, size);
+}
+
+static int
+xgzclose(void *cookie)
+{
+ return gzclose(cookie);
+}
+
+FILE *
+zopen(const char *fname, const char *mode)
+{
+ gzFile gz = gzopen(fname, mode);
+ if(gz == NULL)
+ return NULL;
+
+ if(*mode == 'r')
+ return (funopen(gz, xgzread, NULL, NULL, xgzclose));
+ else
+ return (funopen(gz, NULL, xgzwrite, NULL, xgzclose));
+}
More information about the Glibc-bsd-commits
mailing list