summaryrefslogtreecommitdiffstats
path: root/lib/libalpm/be_local.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libalpm/be_local.c')
-rw-r--r--lib/libalpm/be_local.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/lib/libalpm/be_local.c b/lib/libalpm/be_local.c
index 5d4a7508..b89acf05 100644
--- a/lib/libalpm/be_local.c
+++ b/lib/libalpm/be_local.c
@@ -284,12 +284,26 @@ error:
* @param pkg the package that the mtree file is being read from
* @param archive the archive structure reading from the mtree file
* @param entry an archive_entry to store the entry header information
- * @return 0 if end of archive is reached, non-zero otherwise.
+ * @return 0 on success, 1 if end of archive is reached, -1 otherwise.
*/
static int _cache_mtree_next(const alpm_pkg_t UNUSED *pkg,
struct archive *mtree, struct archive_entry **entry)
{
- return archive_read_next_header(mtree, entry);
+ int ret;
+ ret = archive_read_next_header(mtree, entry);
+
+ switch(ret) {
+ case ARCHIVE_OK:
+ return 0;
+ break;
+ case ARCHIVE_EOF:
+ return 1;
+ break;
+ default:
+ break;
+ }
+
+ return -1;
}
/**