From 8a1a72f8807b980c632338470d77edde86f446f6 Mon Sep 17 00:00:00 2001 From: Stefan Berger Date: Fri, 6 May 2016 15:20:30 -0400 Subject: [PATCH] Introduce archive_array_append to append a raw array to an archive_string Introduce archive_array_append to append a raw array to an archive_string. We need this for binary values in the PAX header. We can append arbitray data to the archive_string since its string append operations simply append at the end pointer rather than walking the string and appending at the zero byte. --- libarchive/archive_string.c | 6 ++++++ libarchive/archive_string.h | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/libarchive/archive_string.c b/libarchive/archive_string.c index bbb1e4585..e56f583bd 100644 --- a/libarchive/archive_string.c +++ b/libarchive/archive_string.c @@ -219,6 +219,12 @@ archive_wstring_append(struct archive_wstring *as, const wchar_t *p, size_t s) return (as); } +struct archive_string * +archive_array_append(struct archive_string *as, const char *p, size_t s) +{ + return archive_string_append(as, p, s); +} + void archive_string_concat(struct archive_string *dest, struct archive_string *src) { diff --git a/libarchive/archive_string.h b/libarchive/archive_string.h index bac22e6d2..56dfbb28f 100644 --- a/libarchive/archive_string.h +++ b/libarchive/archive_string.h @@ -81,6 +81,10 @@ archive_strappend_char(struct archive_string *, char); struct archive_wstring * archive_wstrappend_wchar(struct archive_wstring *, wchar_t); +/* Append a raw array to an archive_string, resizing as necessary */ +struct archive_string * +archive_array_append(struct archive_string *, const char *, size_t); + /* Convert a Unicode string to current locale and append the result. */ /* Returns -1 if conversion fails. */ int -- 2.47.3