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/Makefile.am | 2 +- lib/libalpm/libarchive-compat.c | 65 ----------------------------------------- lib/libalpm/libarchive-compat.h | 60 ++++++++++++++++++++++++++++++------- 3 files changed, 51 insertions(+), 76 deletions(-) delete mode 100644 lib/libalpm/libarchive-compat.c (limited to 'lib') diff --git a/lib/libalpm/Makefile.am b/lib/libalpm/Makefile.am index 55fec9c9..171bc46e 100644 --- a/lib/libalpm/Makefile.am +++ b/lib/libalpm/Makefile.am @@ -44,7 +44,7 @@ libalpm_la_SOURCES = \ graph.h graph.c \ group.h group.c \ handle.h handle.c \ - libarchive-compat.h libarchive-compat.c \ + libarchive-compat.h \ log.h log.c \ package.h package.c \ pkghash.h pkghash.c \ diff --git a/lib/libalpm/libarchive-compat.c b/lib/libalpm/libarchive-compat.c deleted file mode 100644 index 56af2e11..00000000 --- a/lib/libalpm/libarchive-compat.c +++ /dev/null @@ -1,65 +0,0 @@ -/* - * libarchive-compat.c - * - * Copyright (c) 2013 Pacman Development Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include - -#include "libarchive-compat.h" - -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 -} - -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 -} - -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 -} - -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_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 -} - -/* vim: set ts=2 sw=2 noet: */ 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-70-g09d2