summaryrefslogtreecommitdiffstats
path: root/lib/libarchive/archive_string.h
diff options
context:
space:
mode:
authorkientzle <kientzle@FreeBSD.org>2004-03-19 22:37:06 +0000
committerkientzle <kientzle@FreeBSD.org>2004-03-19 22:37:06 +0000
commitef0d6eb5985e7a4f4fd2f0f42925e8328b8cf004 (patch)
tree31fad164e4fe18412497337d4c8e1a7e7c792609 /lib/libarchive/archive_string.h
parentedf0b18239fcd09677972580f323c10d3a59afab (diff)
downloadFreeBSD-src-ef0d6eb5985e7a4f4fd2f0f42925e8328b8cf004.zip
FreeBSD-src-ef0d6eb5985e7a4f4fd2f0f42925e8328b8cf004.tar.gz
Many fixes:
* Disabled shared-library building, as some API breakage is still likely. (I didn't realize it was turned on by default.) If you have an existing /usr/lib/libarchive.so.2, I recommend deleting it. * Pax interchange format now correctly stores and reads UTF8 for extended attributes. In particular, pax format can portably handle arbitrarily long pathnames containing arbitrary characters. * Library compiles cleanly at -O2, -O3, and WARNS=6 on all FreeBSD-CURRENT platforms. * Minor portability improvements inspired by Juergen Lock and Greg Lewis. (Less reliance on stdint.h, isolating of various portability-challenged constructs.) * archive_entry transparently converts multi-byte <-> wide character strings, allowing clients and format handlers to deal with either one, as appropriate. * Support for reading 'L' and 'K' entries in standard tar archives for star compatibility. * Recognize (but don't yet handle) ACL entries from Solaris tar. * Pushed format-specific data for format readers down into format-specific storage and out of library-global storage. This should make it easier to maintain individual formats without mucking with the core library management. * Documentation updates to track the above changes. * Updates to tar.5 to correct a few mistakes and add some additional information about GNU tar and Solaris tar formats. Notes: * The basic 'tar' reader is getting more general; there's not much point in keeping the 'gnutar' reader separate. Merging the two would lose a bunch of duplicate code. * The libc ACL support is looking increasingly inadequate for my needs here. I might need to assemble some fairly significant code for parsing and building ACLs. <sigh>
Diffstat (limited to 'lib/libarchive/archive_string.h')
-rw-r--r--lib/libarchive/archive_string.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/libarchive/archive_string.h b/lib/libarchive/archive_string.h
index f6076a4..6cbe722 100644
--- a/lib/libarchive/archive_string.h
+++ b/lib/libarchive/archive_string.h
@@ -50,14 +50,15 @@ struct archive_string {
size_t buffer_length; /* Length of malloc-ed storage */
};
-#define EMPTY_ARCHIVE_STRING {0,0,0}
+/* Initialize an archive_string object on the stack or elsewhere. */
+#define archive_string_init(a) \
+ do { (a)->s = NULL; (a)->length = 0; (a)->buffer_length = 0; } while(0)
/* Append a C char to an archive_string, resizing as necessary. */
struct archive_string *
__archive_strappend_char(struct archive_string *, char);
#define archive_strappend_char __archive_strappend_char
-
/* Append a char to an archive_string using UTF8. */
struct archive_string *
__archive_strappend_char_UTF8(struct archive_string *, int);
@@ -86,7 +87,7 @@ __archive_strncat(struct archive_string *, const char *, size_t);
/* Copy a C string to an archive_string with limit, resizing as necessary. */
#define archive_strncpy(as,p,l) \
- ((as)->length=0,archive_strncat((as), (p), (l)))
+ ((as)->length=0, archive_strncat((as), (p), (l)))
/* Return length of string. */
#define archive_strlen(a) ((a)->length)
OpenPOWER on IntegriCloud