summaryrefslogtreecommitdiffstats
path: root/contrib/amd/libamu/strutil.c
diff options
context:
space:
mode:
authorcy <cy@FreeBSD.org>2016-12-23 22:42:14 +0000
committercy <cy@FreeBSD.org>2016-12-23 22:42:14 +0000
commit78047153f3f320f60a8264a8a33abb8636dbfc7c (patch)
tree53c2e7da97b30a23be5e4d8f0bb2a8b5e5670e1c /contrib/amd/libamu/strutil.c
parentbff6b519ae43ad35a81ea361a71b814e97a51c7c (diff)
downloadFreeBSD-src-78047153f3f320f60a8264a8a33abb8636dbfc7c.zip
FreeBSD-src-78047153f3f320f60a8264a8a33abb8636dbfc7c.tar.gz
MFC r308493, r308619: Update amd from am-utils 6.1.5 to 6.2.
Used extensively on my network over the past ten weeks. Reviewed by: pfg, brooks Suggested by: pfg Obtained from: ftp://ftp.am-utils.org/pub/am-utils/ Relnotes: yes Differential Revision: D8405
Diffstat (limited to 'contrib/amd/libamu/strutil.c')
-rw-r--r--contrib/amd/libamu/strutil.c42
1 files changed, 36 insertions, 6 deletions
diff --git a/contrib/amd/libamu/strutil.c b/contrib/amd/libamu/strutil.c
index 5a1e759..03a8e88 100644
--- a/contrib/amd/libamu/strutil.c
+++ b/contrib/amd/libamu/strutil.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997-2006 Erez Zadok
+ * Copyright (c) 1997-2014 Erez Zadok
* Copyright (c) 1990 Jan-Simon Pendry
* Copyright (c) 1990 Imperial College of Science, Technology & Medicine
* Copyright (c) 1990 The Regents of the University of California.
@@ -16,11 +16,7 @@
* 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.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgment:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
+ * 3. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
@@ -268,3 +264,37 @@ xvsnprintf(char *str, size_t size, const char *format, va_list ap)
return ret;
}
+
+static size_t
+vstrlen(const char *src, va_list ap)
+{
+ size_t len = strlen(src);
+ while ((src = va_arg(ap, const char *)) != NULL)
+ len += strlen(src);
+ return len;
+}
+
+static void
+vstrcpy(char *dst, const char *src, va_list ap)
+{
+ strcpy(dst, src);
+ while ((src = va_arg(ap, const char *)) != NULL)
+ strcat(dst, src);
+}
+
+char *
+strvcat(const char *src, ...)
+{
+ size_t len;
+ char *dst;
+ va_list ap;
+
+ va_start(ap, src);
+ len = vstrlen(src, ap);
+ va_end(ap);
+ dst = xmalloc(len + 1);
+ va_start(ap, src);
+ vstrcpy(dst, src, ap);
+ va_end(ap);
+ return dst;
+}
OpenPOWER on IntegriCloud