mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-15 21:05:08 +00:00
New internal archive_string_concat utility function.
This commit is contained in:
parent
fe7350cb22
commit
0a68927a88
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=185667
|
@ -69,6 +69,18 @@ __archive_string_copy(struct archive_string *dest, struct archive_string *src)
|
|||
}
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
|
|
|
@ -92,6 +92,12 @@ __archive_string_copy(struct archive_string *dest, struct archive_string *src);
|
|||
#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);
|
||||
|
|
Loading…
Reference in a new issue