From 7edd262a060c508a3a08b73dc18158eeac16c053 Mon Sep 17 00:00:00 2001 From: Dave Reisner Date: Tue, 29 Jan 2013 09:25:18 -0500 Subject: inline libarchive compat wrappers Suggested-by: Dan McGee Signed-off-by: Dave Reisner Signed-off-by: Allan McRae --- lib/libalpm/libarchive-compat.h | 60 ++++++++++++++++++++++++++++++++++------- 1 file changed, 50 insertions(+), 10 deletions(-) (limited to 'lib/libalpm/libarchive-compat.h') 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 . */ -#ifndef _LIBARCHIVE_H -#define _LIBARCHIVE_H -#include +#include + +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: */ -- cgit v1.2.3-54-g00ecf