diff options
author | kientzle <kientzle@FreeBSD.org> | 2008-05-26 17:00:24 +0000 |
---|---|---|
committer | kientzle <kientzle@FreeBSD.org> | 2008-05-26 17:00:24 +0000 |
commit | a24d28f8e3d3892010c91baad77e2178c6a16ba2 (patch) | |
tree | d200bbdabe22d32b68a61172999be232d0c31d75 /lib/libarchive/archive_entry_private.h | |
parent | 268a4c430f25bc479b5e1e097f51394aa0f1fffb (diff) | |
download | FreeBSD-src-a24d28f8e3d3892010c91baad77e2178c6a16ba2.zip FreeBSD-src-a24d28f8e3d3892010c91baad77e2178c6a16ba2.tar.gz |
MFp4: libarchive 2.5.4b. (Still 'b' until I get a bit more
feedback, but the 2.5 branch is shaping up nicely.)
In addition to many small bug fixes and code improvements:
* Another iteration of versioning; I think I've got it right now.
* Portability: A lot of progress on Windows support (though I'm
not committing all of the Windows support files to FreeBSD CVS)
* Explicit tracking of MBS, WCS, and UTF-8 versions of strings
in archive_entry; the archive_entry routines now correctly return
NULL only when something is unset, setting NULL properly clears
string values. Most charset conversions have been pushed down to
archive_string.
* Better handling of charset conversion failure when writing or
reading UTF-8 headers in pax archives
* archive_entry_linkify() provides multiple strategies for
hardlink matching to suit different format expectations
* More accurate bzip2 format detection
* Joerg Sonnenberger's extensive improvements to mtree support
* Rough support for self-extracting ZIP archives. Not an ideal
approach, but it works for the archives I've tried.
* New "sparsify" option in archive_write_disk converts blocks of nulls
into seeks.
* Better default behavior for the test harness; it now reports
all failures by default instead of coredumping at the first one.
Diffstat (limited to 'lib/libarchive/archive_entry_private.h')
-rw-r--r-- | lib/libarchive/archive_entry_private.h | 26 |
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]; }; |