From cf6da173f62ee96703714e66f8538069a46a63e3 Mon Sep 17 00:00:00 2001 From: Judd Vinet Date: Thu, 28 Sep 2006 20:51:33 +0000 Subject: removed libtar support in favour of libarchive --- lib/libalpm/sync.c | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) (limited to 'lib/libalpm/sync.c') diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c index 3223c916..05746bbc 100644 --- a/lib/libalpm/sync.c +++ b/lib/libalpm/sync.c @@ -29,8 +29,6 @@ #endif #include #include -#include -#include /* pacman */ #include "log.h" #include "util.h" @@ -110,27 +108,27 @@ static pmsyncpkg_t *find_pkginsync(char *needle, PMList *haystack) PMList *_alpm_sync_load_dbarchive(char *archive) { PMList *lp = NULL; - TAR *tar = NULL; - tartype_t gztype = { - (openfunc_t)_alpm_gzopen_frontend, - (closefunc_t)gzclose, - (readfunc_t)gzread, - (writefunc_t)gzwrite - }; - - if(tar_open(&tar, archive, &gztype, O_RDONLY, 0, TAR_GNU) == -1) { + register struct archive *_archive; + struct archive_entry *entry; + + if((_archive = archive_read_new()) == NULL) { + pm_errno = PM_ERR_LIBARCHIVE_ERROR; + goto error; + } + archive_read_support_compression_all(_archive); + archive_read_support_format_all(_archive); + + if(archive_read_open_file(_archive, archive, 10240) != ARCHIVE_OK) { pm_errno = PM_ERR_NOT_A_FILE; goto error; } - tar_close(tar); + archive_read_finish(_archive); return(lp); error: - if(tar) { - tar_close(tar); - } + archive_read_finish(_archive); return(NULL); } -- cgit v1.2.3