diff options
author | Tilman Sauerbeck <tilman@crux.nu> | 2012-03-27 20:28:18 +0200 |
---|---|---|
committer | Tilman Sauerbeck <tilman@crux.nu> | 2012-03-27 20:28:46 +0200 |
commit | f30a8abd09ed6cb6db1446baae9538b30a072d1d (patch) | |
tree | d3c04936e444867edd12ffeb52aac435f194a14c | |
parent | 508581b16b2615ad6cdb506eb86238aac96659c3 (diff) | |
download | pkgutils-f30a8abd09ed6cb6db1446baae9538b30a072d1d.tar.gz pkgutils-f30a8abd09ed6cb6db1446baae9538b30a072d1d.tar.xz |
Switched to libarchive 3.x.
-rw-r--r-- | pkgutil.cc | 32 |
1 files changed, 17 insertions, 15 deletions
@@ -44,11 +44,13 @@ #include <archive_entry.h> #define INIT_ARCHIVE(ar) \ - archive_read_support_compression_gzip((ar)); \ - archive_read_support_compression_bzip2((ar)); \ - archive_read_support_compression_xz((ar)); \ + archive_read_support_filter_gzip((ar)); \ + archive_read_support_filter_bzip2((ar)); \ + archive_read_support_filter_xz((ar)); \ archive_read_support_format_tar((ar)) +#define DEFAULT_BYTES_PER_BLOCK (20 * 512) + using __gnu_cxx::stdio_filebuf; pkgutil::pkgutil(const string& name) @@ -352,8 +354,8 @@ pair<string, pkgutil::pkginfo_t> pkgutil::pkg_open(const string& filename) const INIT_ARCHIVE(archive); if (archive_read_open_filename(archive, - const_cast<char*>(filename.c_str()), - ARCHIVE_DEFAULT_BYTES_PER_BLOCK) != ARCHIVE_OK) + filename.c_str(), + DEFAULT_BYTES_PER_BLOCK) != ARCHIVE_OK) throw runtime_error_with_errno("could not open " + filename, archive_errno(archive)); for (i = 0; archive_read_next_header(archive, &entry) == @@ -376,7 +378,7 @@ pair<string, pkgutil::pkginfo_t> pkgutil::pkg_open(const string& filename) const throw runtime_error("could not read " + filename); } - archive_read_finish(archive); + archive_read_free(archive); return result; } @@ -393,8 +395,8 @@ void pkgutil::pkg_install(const string& filename, const set<string>& keep_list, INIT_ARCHIVE(archive); if (archive_read_open_filename(archive, - const_cast<char*>(filename.c_str()), - ARCHIVE_DEFAULT_BYTES_PER_BLOCK) != ARCHIVE_OK) + filename.c_str(), + DEFAULT_BYTES_PER_BLOCK) != ARCHIVE_OK) throw runtime_error_with_errno("could not open " + filename, archive_errno(archive)); chdir(root.c_str()); @@ -467,7 +469,7 @@ void pkgutil::pkg_install(const string& filename, const set<string>& keep_list, throw runtime_error("could not read " + filename); } - archive_read_finish(archive); + archive_read_free(archive); } void pkgutil::ldconfig() const @@ -509,8 +511,8 @@ void pkgutil::pkg_footprint(string& filename) const INIT_ARCHIVE(archive); if (archive_read_open_filename(archive, - const_cast<char*>(filename.c_str()), - ARCHIVE_DEFAULT_BYTES_PER_BLOCK) != ARCHIVE_OK) + filename.c_str(), + DEFAULT_BYTES_PER_BLOCK) != ARCHIVE_OK) throw runtime_error_with_errno("could not open " + filename, archive_errno(archive)); for (i = 0; archive_read_next_header(archive, &entry) == @@ -528,7 +530,7 @@ void pkgutil::pkg_footprint(string& filename) const throw runtime_error_with_errno("could not read " + filename, archive_errno(archive)); } - archive_read_finish(archive); + archive_read_free(archive); // Too bad, there doesn't seem to be a way to reuse our archive // instance @@ -536,8 +538,8 @@ void pkgutil::pkg_footprint(string& filename) const INIT_ARCHIVE(archive); if (archive_read_open_filename(archive, - const_cast<char*>(filename.c_str()), - ARCHIVE_DEFAULT_BYTES_PER_BLOCK) != ARCHIVE_OK) + filename.c_str(), + DEFAULT_BYTES_PER_BLOCK) != ARCHIVE_OK) throw runtime_error_with_errno("could not open " + filename, archive_errno(archive)); for (i = 0; archive_read_next_header(archive, &entry) == @@ -610,7 +612,7 @@ void pkgutil::pkg_footprint(string& filename) const throw runtime_error("could not read " + filename); } - archive_read_finish(archive); + archive_read_free(archive); } void pkgutil::print_version() const |