Module Name:    src
Committed By:   riastradh
Date:           Wed Jan 22 06:14:20 UTC 2014

Modified Files:
        src/usr.bin/vndcompress: Makefile vndcompress.c
Added Files:
        src/usr.bin/vndcompress: utils.c utils.h

Log Message:
Move vndcompress utilities to utils.c.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/usr.bin/vndcompress/Makefile
cvs rdiff -u -r0 -r1.1 src/usr.bin/vndcompress/utils.c \
    src/usr.bin/vndcompress/utils.h
cvs rdiff -u -r1.13 -r1.14 src/usr.bin/vndcompress/vndcompress.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/vndcompress/Makefile
diff -u src/usr.bin/vndcompress/Makefile:1.4 src/usr.bin/vndcompress/Makefile:1.5
--- src/usr.bin/vndcompress/Makefile:1.4	Sun Aug 11 06:33:30 2013
+++ src/usr.bin/vndcompress/Makefile	Wed Jan 22 06:14:20 2014
@@ -1,5 +1,5 @@
 PROG=	vndcompress
-SRCS=	main.c vndcompress.c vnduncompress.c
+SRCS=	main.c utils.c vndcompress.c vnduncompress.c
 
 LINKS=	${BINDIR}/vndcompress ${BINDIR}/vnduncompress
 MLINKS=	vndcompress.1 vnduncompress.1

Index: src/usr.bin/vndcompress/vndcompress.c
diff -u src/usr.bin/vndcompress/vndcompress.c:1.13 src/usr.bin/vndcompress/vndcompress.c:1.14
--- src/usr.bin/vndcompress/vndcompress.c:1.13	Mon May  6 22:53:24 2013
+++ src/usr.bin/vndcompress/vndcompress.c	Wed Jan 22 06:14:20 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: vndcompress.c,v 1.13 2013/05/06 22:53:24 riastradh Exp $	*/
+/*	$NetBSD: vndcompress.c,v 1.14 2014/01/22 06:14:20 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: vndcompress.c,v 1.13 2013/05/06 22:53:24 riastradh Exp $");
+__RCSID("$NetBSD: vndcompress.c,v 1.14 2014/01/22 06:14:20 riastradh Exp $");
 
 #include <sys/endian.h>
 
@@ -49,13 +49,8 @@ __RCSID("$NetBSD: vndcompress.c,v 1.13 2
 #include <unistd.h>
 #include <zlib.h>
 
-/* XXX Seems to be missing from <stdio.h>...  */
-int	snprintf_ss(char *restrict, size_t, const char *restrict, ...)
-	    __printflike(3, 4);
-int	vsnprintf_ss(char *restrict, size_t, const char *restrict, va_list)
-	    __printflike(3, 0);
-
 #include "common.h"
+#include "utils.h"
 
 /*
  * XXX Switch to control bug-for-bug byte-for-byte compatibility with
@@ -116,12 +111,6 @@ static uint32_t	compress_block(int, int,
 static void	compress_maybe_checkpoint(struct compress_state *);
 static void	compress_checkpoint(struct compress_state *);
 static void	compress_exit(struct compress_state *);
-static ssize_t	read_block(int, void *, size_t);
-static void	err_ss(int, const char *) __dead;
-static void	errx_ss(int, const char *, ...) __printflike(2, 3) __dead;
-static void	warn_ss(const char *);
-static void	warnx_ss(const char *, ...) __printflike(1, 2);
-static void	vwarnx_ss(const char *, va_list) __printflike(1, 0);
 
 /*
  * Compression entry point.
@@ -949,97 +938,3 @@ compress_exit(struct compress_state *S)
 	if (close(S->image_fd) == -1)
 		warn("close(image fd)");
 }
-
-/*
- * Read, returning partial data only at end of file.
- */
-static ssize_t
-read_block(int fd, void *buffer, size_t n)
-{
-	char *p = buffer, *const end __unused = (p + n);
-	size_t total_read = 0;
-
-	while (n > 0) {
-		const ssize_t n_read = read(fd, p, n);
-		if (n_read == -1)
-			return -1;
-		assert(n_read >= 0);
-		if (n_read == 0)
-			break;
-
-		assert((size_t)n_read <= n);
-		n -= (size_t)n_read;
-
-		assert(p <= end);
-		assert(n_read <= (end - p));
-		p += (size_t)n_read;
-
-		assert((size_t)n_read <= (SIZE_MAX - total_read));
-		total_read += (size_t)n_read;
-	}
-
-	return total_read;
-}
-
-/*
- * Signal-safe err/warn utilities.  The errno varieties are limited to
- * having no format arguments for reasons of laziness.
- */
-
-static void
-err_ss(int exit_value, const char *msg)
-{
-	warn_ss(msg);
-	_Exit(exit_value);
-}
-
-static void
-errx_ss(int exit_value, const char *format, ...)
-{
-	va_list va;
-
-	va_start(va, format);
-	vwarnx_ss(format, va);
-	va_end(va);
-	_Exit(exit_value);
-}
-
-static void
-warn_ss(const char *msg)
-{
-	int error = errno;
-
-	warnx_ss("%s: %s", msg, strerror(error));
-
-	errno = error;
-}
-
-static void
-warnx_ss(const char *format, ...)
-{
-	va_list va;
-
-	va_start(va, format);
-	vwarnx_ss(format, va);
-	va_end(va);
-}
-
-static void
-vwarnx_ss(const char *format, va_list va)
-{
-	char buf[128];
-
-	(void)strlcpy(buf, getprogname(), sizeof(buf));
-	(void)strlcat(buf, ": ", sizeof(buf));
-
-	const int n = vsnprintf_ss(&buf[strlen(buf)], (sizeof(buf) -
-		strlen(buf)), format, va);
-	if (n <= 0) {
-		const char fallback[] =
-		    "vndcompress: Help!  I'm trapped in a signal handler!\n";
-		(void)write(STDERR_FILENO, fallback, __arraycount(fallback));
-	} else {
-		(void)strlcat(buf, "\n", sizeof(buf));
-		(void)write(STDERR_FILENO, buf, strlen(buf));
-	}
-}

Added files:

Index: src/usr.bin/vndcompress/utils.c
diff -u /dev/null src/usr.bin/vndcompress/utils.c:1.1
--- /dev/null	Wed Jan 22 06:14:20 2014
+++ src/usr.bin/vndcompress/utils.c	Wed Jan 22 06:14:20 2014
@@ -0,0 +1,147 @@
+/*	$NetBSD: utils.c,v 1.1 2014/01/22 06:14:20 riastradh Exp $	*/
+
+/*-
+ * Copyright (c) 2013 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Taylor R. Campbell.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__RCSID("$NetBSD: utils.c,v 1.1 2014/01/22 06:14:20 riastradh Exp $");
+
+#include <sys/types.h>
+
+#include <assert.h>
+#include <err.h>
+#include <errno.h>
+#include <inttypes.h>
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+/* XXX Seems to be missing from <stdio.h>...  */
+int	snprintf_ss(char *restrict, size_t, const char *restrict, ...)
+	    __printflike(3, 4);
+int	vsnprintf_ss(char *restrict, size_t, const char *restrict, va_list)
+	    __printflike(3, 0);
+
+#include "utils.h"
+
+/*
+ * Read, returning partial data only at end of file.
+ */
+ssize_t
+read_block(int fd, void *buffer, size_t n)
+{
+	char *p = buffer, *const end __unused = (p + n);
+	size_t total_read = 0;
+
+	while (n > 0) {
+		const ssize_t n_read = read(fd, p, n);
+		if (n_read == -1)
+			return -1;
+		assert(n_read >= 0);
+		if (n_read == 0)
+			break;
+
+		assert((size_t)n_read <= n);
+		n -= (size_t)n_read;
+
+		assert(p <= end);
+		assert(n_read <= (end - p));
+		p += (size_t)n_read;
+
+		assert((size_t)n_read <= (SIZE_MAX - total_read));
+		total_read += (size_t)n_read;
+	}
+
+	return total_read;
+}
+
+/*
+ * Signal-safe err/warn utilities.  The errno varieties are limited to
+ * having no format arguments for reasons of laziness.
+ */
+
+void
+err_ss(int exit_value, const char *msg)
+{
+	warn_ss(msg);
+	_Exit(exit_value);
+}
+
+void
+errx_ss(int exit_value, const char *format, ...)
+{
+	va_list va;
+
+	va_start(va, format);
+	vwarnx_ss(format, va);
+	va_end(va);
+	_Exit(exit_value);
+}
+
+void
+warn_ss(const char *msg)
+{
+	int error = errno;
+
+	warnx_ss("%s: %s", msg, strerror(error));
+
+	errno = error;
+}
+
+void
+warnx_ss(const char *format, ...)
+{
+	va_list va;
+
+	va_start(va, format);
+	vwarnx_ss(format, va);
+	va_end(va);
+}
+
+void
+vwarnx_ss(const char *format, va_list va)
+{
+	char buf[128];
+
+	(void)strlcpy(buf, getprogname(), sizeof(buf));
+	(void)strlcat(buf, ": ", sizeof(buf));
+
+	const int n = vsnprintf_ss(&buf[strlen(buf)], (sizeof(buf) -
+		strlen(buf)), format, va);
+	if (n <= 0) {
+		const char fallback[] =
+		    "vndcompress: Help!  I'm trapped in a signal handler!\n";
+		(void)write(STDERR_FILENO, fallback, __arraycount(fallback));
+	} else {
+		(void)strlcat(buf, "\n", sizeof(buf));
+		(void)write(STDERR_FILENO, buf, strlen(buf));
+	}
+}
Index: src/usr.bin/vndcompress/utils.h
diff -u /dev/null src/usr.bin/vndcompress/utils.h:1.1
--- /dev/null	Wed Jan 22 06:14:20 2014
+++ src/usr.bin/vndcompress/utils.h	Wed Jan 22 06:14:20 2014
@@ -0,0 +1,51 @@
+/*	$NetBSD: utils.h,v 1.1 2014/01/22 06:14:20 riastradh Exp $	*/
+
+/*-
+ * Copyright (c) 2014 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Taylor R. Campbell.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef	VNDCOMPRESS_UTILS_H
+#define	VNDCOMPRESS_UTILS_H
+
+#include <sys/types.h>
+#include <sys/cdefs.h>
+
+/* XXX Seems to be missing from <stdio.h>...  */
+int	snprintf_ss(char *restrict, size_t, const char *restrict, ...)
+	    __printflike(3, 4);
+int	vsnprintf_ss(char *restrict, size_t, const char *restrict, va_list)
+	    __printflike(3, 0);
+
+ssize_t	read_block(int, void *, size_t);
+void	err_ss(int, const char *) __dead;
+void	errx_ss(int, const char *, ...) __printflike(2, 3) __dead;
+void	warn_ss(const char *);
+void	warnx_ss(const char *, ...) __printflike(1, 2);
+void	vwarnx_ss(const char *, va_list) __printflike(1, 0);
+
+#endif	/* VNDCOMPRESS_UTILS_H */

Reply via email to