[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