summaryrefslogtreecommitdiffstats
path: root/lib/libarchive/archive_entry_private.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libarchive/archive_entry_private.h')
-rw-r--r--lib/libarchive/archive_entry_private.h26
1 files changed, 20 insertions, 6 deletions
diff --git a/lib/libarchive/archive_entry_private.h b/lib/libarchive/archive_entry_private.h
index 6eb973e..86a3ba1 100644
--- a/lib/libarchive/archive_entry_private.h
+++ b/lib/libarchive/archive_entry_private.h
@@ -28,17 +28,25 @@
#ifndef ARCHIVE_ENTRY_PRIVATE_H_INCLUDED
#define ARCHIVE_ENTRY_PRIVATE_H_INCLUDED
+#include "archive_string.h"
+
/*
* Handle wide character (i.e., Unicode) and non-wide character
* strings transparently.
- *
*/
struct aes {
- const char *aes_mbs;
- char *aes_mbs_alloc;
+ struct archive_string aes_mbs;
+ struct archive_string aes_utf8;
const wchar_t *aes_wcs;
- wchar_t *aes_wcs_alloc;
+ /* Bitmap of which of the above are valid. Because we're lazy
+ * about malloc-ing and reusing the underlying storage, we
+ * can't rely on NULL pointers to indicate whether a string
+ * has been set. */
+ int aes_set;
+#define AES_SET_MBS 1
+#define AES_SET_UTF8 2
+#define AES_SET_WCS 4
};
struct ae_acl {
@@ -128,8 +136,6 @@ struct archive_entry {
dev_t aest_rdevminor;
} ae_stat;
-
-
/*
* Use aes here so that we get transparent mbs<->wcs conversions.
*/
@@ -141,15 +147,23 @@ struct archive_entry {
struct aes ae_pathname; /* Name of entry */
struct aes ae_symlink; /* symlink contents */
struct aes ae_uname; /* Name of owner */
+ unsigned char ae_hardlinkset;
+ unsigned char ae_symlinkset;
+
+ /* Not used within libarchive; useful for some clients. */
+ struct aes ae_sourcepath; /* Path this entry is sourced from. */
+ /* ACL support. */
struct ae_acl *acl_head;
struct ae_acl *acl_p;
int acl_state; /* See acl_next for details. */
wchar_t *acl_text_w;
+ /* extattr support. */
struct ae_xattr *xattr_head;
struct ae_xattr *xattr_p;
+ /* Miscellaneous. */
char strmode[12];
};
OpenPOWER on IntegriCloud