svn commit: r185667 - head/lib/libarchive

Tim Kientzle kientzle at FreeBSD.org
Fri Dec 5 21:56:44 PST 2008


Author: kientzle
Date: Sat Dec  6 05:56:43 2008
New Revision: 185667
URL: http://svn.freebsd.org/changeset/base/185667

Log:
  New internal archive_string_concat utility function.

Modified:
  head/lib/libarchive/archive_string.c
  head/lib/libarchive/archive_string.h

Modified: head/lib/libarchive/archive_string.c
==============================================================================
--- head/lib/libarchive/archive_string.c	Sat Dec  6 05:55:46 2008	(r185666)
+++ head/lib/libarchive/archive_string.c	Sat Dec  6 05:56:43 2008	(r185667)
@@ -70,6 +70,18 @@ __archive_string_copy(struct archive_str
 }
 
 void
+__archive_string_concat(struct archive_string *dest, struct archive_string *src)
+{
+	if (src->length > 0) {
+		if (__archive_string_ensure(dest, dest->length + src->length + 1) == NULL)
+			__archive_errx(1, "Out of memory");
+		memcpy(dest->s + dest->length, src->s, src->length);
+		dest->length += src->length;
+		dest->s[dest->length] = 0;
+	}
+}
+
+void
 __archive_string_free(struct archive_string *as)
 {
 	as->length = 0;

Modified: head/lib/libarchive/archive_string.h
==============================================================================
--- head/lib/libarchive/archive_string.h	Sat Dec  6 05:55:46 2008	(r185666)
+++ head/lib/libarchive/archive_string.h	Sat Dec  6 05:56:43 2008	(r185667)
@@ -92,6 +92,12 @@ __archive_string_copy(struct archive_str
 #define archive_string_copy(dest, src) \
 	__archive_string_copy(dest, src)
 
+/* Concatenate one archive_string to another */
+void
+__archive_string_concat(struct archive_string *dest, struct archive_string *src);
+#define archive_string_concat(dest, src) \
+	__archive_string_concat(dest, src)
+
 /* Ensure that the underlying buffer is at least as large as the request. */
 struct archive_string *
 __archive_string_ensure(struct archive_string *, size_t);


More information about the svn-src-head mailing list