diff --git a/bin/xbps-query/main.c b/bin/xbps-query/main.c index b64b3860..f294672c 100644 --- a/bin/xbps-query/main.c +++ b/bin/xbps-query/main.c @@ -27,6 +27,7 @@ #include #include #include +#include #include #include "defs.h" @@ -220,23 +221,33 @@ main(int argc, char **argv) /* show mode */ if (repo_mode) rv = repo_show_pkg_info(&xh, argv[optind], props); - else + else { rv = show_pkg_info_from_metadir(&xh, argv[optind], props); + if (rv == ENOENT) + rv = repo_show_pkg_info(&xh, + argv[optind], props); + } } else if (show_files) { /* show-files mode */ if (repo_mode) rv = repo_show_pkg_files(&xh, argv[optind]); - else + else { rv = show_pkg_files_from_metadir(&xh, argv[optind]); + if (rv == ENOENT) + rv = repo_show_pkg_files(&xh, argv[optind]); + } } else if (show_deps) { /* show-deps mode */ if (repo_mode) rv = repo_show_pkg_deps(&xh, argv[optind]); - else + else { rv = show_pkg_deps(&xh, argv[optind]); + if (rv == ENOENT) + rv = repo_show_pkg_deps(&xh, argv[optind]); + } } else if (show_rdeps) { /* show-rdeps mode */ diff --git a/bin/xbps-query/show-deps.c b/bin/xbps-query/show-deps.c index 489245a5..9a09979a 100644 --- a/bin/xbps-query/show-deps.c +++ b/bin/xbps-query/show-deps.c @@ -47,7 +47,7 @@ show_pkg_deps(struct xbps_handle *xhp, const char *pkgname) propsd = xbps_dictionary_from_metadata_plist(xhp, pkgname, XBPS_PKGPROPS); if (propsd == NULL) - return errno; + return ENOENT; rv = xbps_callback_array_iter_in_dict(xhp, propsd, "run_depends", list_strings_sep_in_array, NULL); @@ -66,7 +66,7 @@ show_pkg_revdeps(struct xbps_handle *xhp, const char *pkgname) if (pkgd == NULL) { pkgd = xbps_find_pkg_dict_installed(xhp, pkgname, false); if (pkgd == NULL) - return 0; + return ENOENT; } rv = xbps_callback_array_iter_in_dict(xhp, pkgd, "requiredby", list_strings_sep_in_array, NULL); diff --git a/bin/xbps-query/show-info-files.c b/bin/xbps-query/show-info-files.c index 39ce9164..c395faa2 100644 --- a/bin/xbps-query/show-info-files.c +++ b/bin/xbps-query/show-info-files.c @@ -176,7 +176,7 @@ show_pkg_info_from_metadir(struct xbps_handle *xhp, d = xbps_dictionary_from_metadata_plist(xhp, pkgname, XBPS_PKGPROPS); if (d == NULL) - return EINVAL; + return ENOENT; prop_dictionary_get_cstring_nocopy(d, "pkgname", &pname); pkgdb_d = xbps_pkgdb_get_pkgd(xhp, pname, false); @@ -209,7 +209,7 @@ show_pkg_files_from_metadir(struct xbps_handle *xhp, const char *pkgname) d = xbps_dictionary_from_metadata_plist(xhp, pkgname, XBPS_PKGFILES); if (d == NULL) - return EINVAL; + return ENOENT; rv = show_pkg_files(d); prop_object_release(d);