Module Name: src
Committed By: mrg
Date: Sun Jun 21 06:06:01 UTC 2015
Modified Files:
src/usr.bin/audio/common: Makefile audio.c
src/usr.bin/midirecord: Makefile
Added Files:
src/usr.bin/audio/common: decode.c
Log Message:
separate the 3 functions midirecord uses from libaudio.a into its own
file and link it directly, instead of having an (implicit) dependancy
on usr.bin/audio/common being built before usr.bin/midirecord is linked.
To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/usr.bin/audio/common/Makefile
cvs rdiff -u -r1.23 -r1.24 src/usr.bin/audio/common/audio.c
cvs rdiff -u -r0 -r1.1 src/usr.bin/audio/common/decode.c
cvs rdiff -u -r1.1 -r1.2 src/usr.bin/midirecord/Makefile
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/audio/common/Makefile
diff -u src/usr.bin/audio/common/Makefile:1.8 src/usr.bin/audio/common/Makefile:1.9
--- src/usr.bin/audio/common/Makefile:1.8 Sat May 3 14:48:31 2008
+++ src/usr.bin/audio/common/Makefile Sun Jun 21 06:06:01 2015
@@ -1,8 +1,8 @@
-# $NetBSD: Makefile,v 1.8 2008/05/03 14:48:31 lukem Exp $
+# $NetBSD: Makefile,v 1.9 2015/06/21 06:06:01 mrg Exp $
LIBISPRIVATE= yes
LIB= audio
-SRCS= audio.c wav.c sun.c
+SRCS= audio.c decode.c wav.c sun.c
.include <bsd.lib.mk>
Index: src/usr.bin/audio/common/audio.c
diff -u src/usr.bin/audio/common/audio.c:1.23 src/usr.bin/audio/common/audio.c:1.24
--- src/usr.bin/audio/common/audio.c:1.23 Tue Dec 30 01:22:09 2014
+++ src/usr.bin/audio/common/audio.c Sun Jun 21 06:06:01 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: audio.c,v 1.23 2014/12/30 01:22:09 mrg Exp $ */
+/* $NetBSD: audio.c,v 1.24 2015/06/21 06:06:01 mrg Exp $ */
/*
* Copyright (c) 1999 Matthew R. Green
@@ -32,7 +32,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: audio.c,v 1.23 2014/12/30 01:22:09 mrg Exp $");
+__RCSID("$NetBSD: audio.c,v 1.24 2015/06/21 06:06:01 mrg Exp $");
#endif
@@ -139,83 +139,6 @@ audio_enc_to_val(const char *enc)
return (AUDIO_ENOENT);
}
-void
-decode_int(const char *arg, int *intp)
-{
- char *ep;
- int ret;
-
- ret = (int)strtoul(arg, &ep, 10);
-
- if (ep[0] == '\0') {
- *intp = ret;
- return;
- }
- errx(1, "argument `%s' not a valid integer", arg);
-}
-
-void
-decode_uint(const char *arg, unsigned *intp)
-{
- char *ep;
- unsigned ret;
-
- ret = (unsigned)strtoul(arg, &ep, 10);
-
- if (ep[0] == '\0') {
- *intp = ret;
- return;
- }
- errx(1, "argument `%s' not a valid integer", arg);
-}
-
-void
-decode_time(const char *arg, struct timeval *tvp)
-{
- char *s, *colon, *dot;
- char *copy = strdup(arg);
- int first;
-
- if (copy == NULL)
- err(1, "could not allocate a copy of %s", arg);
-
- tvp->tv_sec = tvp->tv_usec = 0;
- s = copy;
-
- /* handle [hh:]mm:ss.dd */
- if ((colon = strchr(s, ':')) != NULL) {
- *colon++ = '\0';
- decode_int(s, &first);
- tvp->tv_sec = first * 60; /* minutes */
- s = colon;
-
- if ((colon = strchr(s, ':')) != NULL) {
- *colon++ = '\0';
- decode_int(s, &first);
- tvp->tv_sec += first; /* minutes and hours */
- tvp->tv_sec *= 60;
- s = colon;
- }
- }
- if ((dot = strchr(s, '.')) != NULL) {
- int i, base = 100000;
-
- *dot++ = '\0';
-
- for (i = 0; i < 6; i++, base /= 10) {
- if (!dot[i])
- break;
- if (!isdigit((unsigned char)dot[i]))
- errx(1, "argument `%s' is not a value time specification", arg);
- tvp->tv_usec += base * (dot[i] - '0');
- }
- }
- decode_int(s, &first);
- tvp->tv_sec += first;
-
- free(copy);
-}
-
/*
* decode a string into an encoding value.
*/
Index: src/usr.bin/midirecord/Makefile
diff -u src/usr.bin/midirecord/Makefile:1.1 src/usr.bin/midirecord/Makefile:1.2
--- src/usr.bin/midirecord/Makefile:1.1 Tue Dec 30 04:14:25 2014
+++ src/usr.bin/midirecord/Makefile Sun Jun 21 06:06:01 2015
@@ -1,15 +1,18 @@
-# $NetBSD: Makefile,v 1.1 2014/12/30 04:14:25 mrg Exp $
+# $NetBSD: Makefile,v 1.2 2015/06/21 06:06:01 mrg Exp $
+SRCS= midirecord decode.c
PROG= midirecord
.include <bsd.own.mk>
-LIBAUDIO != cd ${.CURDIR}/../audio/common && ${PRINTOBJDIR}
+#LIBAUDIO != cd ${.CURDIR}/../audio/common && ${PRINTOBJDIR}
CPPFLAGS+=-I${.CURDIR}/../audio/common
-DPADD+= ${LIBAUDIO}/libaudio.a
-LDADD+= -L${LIBAUDIO} -laudio
+#DPADD+= ${LIBAUDIO}/libaudio.a
+#LDADD+= -L${LIBAUDIO} -laudio
DPADD+= ${LIBUTIL}
LDADD+= -lutil
+.PATH: ${.CURDIR}/../audio/common
+
.include <bsd.prog.mk>
Added files:
Index: src/usr.bin/audio/common/decode.c
diff -u /dev/null src/usr.bin/audio/common/decode.c:1.1
--- /dev/null Sun Jun 21 06:06:02 2015
+++ src/usr.bin/audio/common/decode.c Sun Jun 21 06:06:01 2015
@@ -0,0 +1,121 @@
+/* $NetBSD: decode.c,v 1.1 2015/06/21 06:06:01 mrg Exp $ */
+
+/*
+ * Copyright (c) 1999 Matthew R. Green
+ * All rights reserved.
+ *
+ * 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 AUTHOR ``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 AUTHOR 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>
+
+#ifndef lint
+__RCSID("$NetBSD: decode.c,v 1.1 2015/06/21 06:06:01 mrg Exp $");
+#endif
+
+#include <sys/types.h>
+#include <sys/time.h>
+
+#include <ctype.h>
+#include <string.h>
+#include <stdlib.h>
+#include <limits.h>
+#include <err.h>
+
+#include "libaudio.h"
+
+void
+decode_int(const char *arg, int *intp)
+{
+ char *ep;
+ int ret;
+
+ ret = (int)strtoul(arg, &ep, 10);
+
+ if (ep[0] == '\0') {
+ *intp = ret;
+ return;
+ }
+ errx(1, "argument `%s' not a valid integer", arg);
+}
+
+void
+decode_uint(const char *arg, unsigned *intp)
+{
+ char *ep;
+ unsigned ret;
+
+ ret = (unsigned)strtoul(arg, &ep, 10);
+
+ if (ep[0] == '\0') {
+ *intp = ret;
+ return;
+ }
+ errx(1, "argument `%s' not a valid integer", arg);
+}
+
+void
+decode_time(const char *arg, struct timeval *tvp)
+{
+ char *s, *colon, *dot;
+ char *copy = strdup(arg);
+ int first;
+
+ if (copy == NULL)
+ err(1, "could not allocate a copy of %s", arg);
+
+ tvp->tv_sec = tvp->tv_usec = 0;
+ s = copy;
+
+ /* handle [hh:]mm:ss.dd */
+ if ((colon = strchr(s, ':')) != NULL) {
+ *colon++ = '\0';
+ decode_int(s, &first);
+ tvp->tv_sec = first * 60; /* minutes */
+ s = colon;
+
+ if ((colon = strchr(s, ':')) != NULL) {
+ *colon++ = '\0';
+ decode_int(s, &first);
+ tvp->tv_sec += first; /* minutes and hours */
+ tvp->tv_sec *= 60;
+ s = colon;
+ }
+ }
+ if ((dot = strchr(s, '.')) != NULL) {
+ int i, base = 100000;
+
+ *dot++ = '\0';
+
+ for (i = 0; i < 6; i++, base /= 10) {
+ if (!dot[i])
+ break;
+ if (!isdigit((unsigned char)dot[i]))
+ errx(1, "argument `%s' is not a value time specification", arg);
+ tvp->tv_usec += base * (dot[i] - '0');
+ }
+ }
+ decode_int(s, &first);
+ tvp->tv_sec += first;
+
+ free(copy);
+}