diff options
author | morganamilo <morganamilo@gmail.com> | 2019-11-06 02:42:11 +0100 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2019-11-08 07:32:55 +0100 |
commit | 27f354a7874b965bf223832bdf9749504cd1a590 (patch) | |
tree | bc3b4c976c71469185d5d7cefd5229888fed8375 /src/pacman/package.c | |
parent | 94982d0061890529cc22401b6763fb5e9ef4e7d1 (diff) | |
download | pacman-27f354a7874b965bf223832bdf9749504cd1a590.tar.gz pacman-27f354a7874b965bf223832bdf9749504cd1a590.tar.xz |
pacman+libalpm: handle search errors
Previously, pacman treated no matches and an error during search the
same.
To fix this, alpm_db_search now returns its status as an int and
instead takes the to be returned list as a param. Allowing front ends to
easily differentiate between errors and no matches.
Signed-off-by: morganamilo <morganamilo@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
Diffstat (limited to 'src/pacman/package.c')
-rw-r--r-- | src/pacman/package.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/pacman/package.c b/src/pacman/package.c index 35cfcd94..ec6e78fc 100644 --- a/src/pacman/package.c +++ b/src/pacman/package.c @@ -518,12 +518,13 @@ void print_groups(alpm_pkg_t *pkg) * @param db the database we're searching * @param targets the targets we're searching for * @param show_status show if the package is also in the local db + * @return -1 on error, 0 if there were matches, 1 if there were not */ int dump_pkg_search(alpm_db_t *db, alpm_list_t *targets, int show_status) { int freelist = 0; alpm_db_t *db_local; - alpm_list_t *i, *searchlist; + alpm_list_t *i, *searchlist = NULL; unsigned short cols; const colstr_t *colstr = &config->colstr; @@ -533,7 +534,9 @@ int dump_pkg_search(alpm_db_t *db, alpm_list_t *targets, int show_status) /* if we have a targets list, search for packages matching it */ if(targets) { - searchlist = alpm_db_search(db, targets); + if(alpm_db_search(db, targets, &searchlist) != 0) { + return -1; + } freelist = 1; } else { searchlist = alpm_db_get_pkgcache(db); |