diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libalpm/Makefile.am | 2 | ||||
-rw-r--r-- | lib/libalpm/libarchive-compat.c | 65 | ||||
-rw-r--r-- | lib/libalpm/libarchive-compat.h | 60 |
3 files changed, 51 insertions, 76 deletions
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 <pacman-dev@archlinux.org> - * - * 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 <http://www.gnu.org/licenses/>. - */ - -#include <stdint.h> - -#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 <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: */ |