diff options
author | Allan McRae <allan@archlinux.org> | 2019-11-26 02:37:32 +0100 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2019-11-26 02:37:32 +0100 |
commit | 1e23b4585146b5c2bced10293c0f3486e53d51ed (patch) | |
tree | 7511ff0dfe9f4cd6b6b60cbb05503ac9be4fdd3d /lib | |
parent | 3073752bcd9718b243661dd727e8f8bc18035938 (diff) | |
download | pacman-1e23b4585146b5c2bced10293c0f3486e53d51ed.tar.gz pacman-1e23b4585146b5c2bced10293c0f3486e53d51ed.tar.xz |
Fix documentation of alpm_mtree_next and remove libarchive exposure
The documentation of the return types of alpm_mtree_next was incorrect.
This extended into the relevant function in be_local.c.
Also, return explicit integer values, rather than the ARCHIVE_xxx values,
to avoid unnecessarily exposing frontends to libarchive internals (even
though it makes no functional difference).
Original-work-by: morganamilo <morganamilo@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libalpm/alpm.h | 2 | ||||
-rw-r--r-- | lib/libalpm/be_local.c | 18 |
2 files changed, 17 insertions, 3 deletions
diff --git a/lib/libalpm/alpm.h b/lib/libalpm/alpm.h index c200a5d8..956284bd 100644 --- a/lib/libalpm/alpm.h +++ b/lib/libalpm/alpm.h @@ -1329,7 +1329,7 @@ struct archive *alpm_pkg_mtree_open(alpm_pkg_t *pkg); * @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. */ int alpm_pkg_mtree_next(const alpm_pkg_t *pkg, struct archive *archive, struct archive_entry **entry); 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; } /** |