diff options
author | Dave Reisner <dreisner@archlinux.org> | 2013-01-29 15:25:18 +0100 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2013-02-07 01:48:11 +0100 |
commit | 7edd262a060c508a3a08b73dc18158eeac16c053 (patch) | |
tree | 043496b1ff1ce0c92333128a713f9dd48d8ccb3f /lib/libalpm/libarchive-compat.h | |
parent | 05d83c46fd0ae6fce3e220dd77d113cb448e068f (diff) | |
download | pacman-7edd262a060c508a3a08b73dc18158eeac16c053.tar.gz pacman-7edd262a060c508a3a08b73dc18158eeac16c053.tar.xz |
inline libarchive compat wrappers
Suggested-by: Dan McGee <dan@archlinux.org>
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
Diffstat (limited to 'lib/libalpm/libarchive-compat.h')
-rw-r--r-- | lib/libalpm/libarchive-compat.h | 60 |
1 files changed, 50 insertions, 10 deletions
diff --git a/lib/libalpm/libarchive-compat.h b/lib/libalpm/libarchive-compat.h index a1b379e2..1e2e1e82 100644 --- a/lib/libalpm/libarchive-compat.h +++ b/lib/libalpm/libarchive-compat.h @@ -1,3 +1,6 @@ +#ifndef _LIBARCHIVE_COMPAT_H +#define _LIBARCHIVE_COMPAT_H + /* * libarchive-compat.h * @@ -16,18 +19,55 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#ifndef _LIBARCHIVE_H -#define _LIBARCHIVE_H -#include <archive.h> +#include <stdint.h> + +static inline int _alpm_archive_read_free(struct archive *archive) +{ +#if ARCHIVE_VERSION_NUMBER >= 3000000 + return archive_read_free(archive); +#else + return archive_read_finish(archive); +#endif +} + +static inline int64_t _alpm_archive_compressed_ftell(struct archive *archive) +{ +#if ARCHIVE_VERSION_NUMBER >= 3000000 + return archive_filter_bytes(archive, -1); +#else + return archive_position_compressed(archive); +#endif +} + +static inline int _alpm_archive_read_open_file(struct archive *archive, + const char *filename, size_t block_size) +{ +#if ARCHIVE_VERSION_NUMBER >= 3000000 + return archive_read_open_filename(archive, filename, block_size); +#else + return archive_read_open_file(archive, filename, block_size); +#endif +} + +static inline int _alpm_archive_filter_code(struct archive *archive) +{ +#if ARCHIVE_VERSION_NUMBER >= 3000000 + return archive_filter_code(archive, 0); +#else + return archive_compression(archive); +#endif +} -int _alpm_archive_read_free(struct archive *archive); -int64_t _alpm_archive_compressed_ftell(struct archive *archive); -int _alpm_archive_read_open_file(struct archive *archive, - const char *filename, size_t block_size); -int _alpm_archive_filter_code(struct archive *archive); -int _alpm_archive_read_support_filter_all(struct archive *archive); +static inline int _alpm_archive_read_support_filter_all(struct archive *archive) +{ +#if ARCHIVE_VERSION_NUMBER >= 3000000 + return archive_read_support_filter_all(archive); +#else + return archive_read_support_compression_all(archive); +#endif +} -#endif /* _LIBARCHIVE_H */ +#endif /* _LIBARCHIVE_COMPAT_H */ /* vim: set ts=2 sw=2 noet: */ |