diff options
author | Timo Teräs <timo.teras@iki.fi> | 2023-03-04 13:54:54 +0200 |
---|---|---|
committer | Timo Teräs <timo.teras@iki.fi> | 2023-04-11 20:47:43 +0300 |
commit | 67f5a753e50da8737dc28b0ea2c2194b21d76fdd (patch) | |
tree | 657a81a529d2733eecae1837cc48ac25abe73357 /src/app_version.c | |
parent | efb55ce650d3cac9a607560d840f95c1127e68f5 (diff) | |
download | apk-tools-67f5a753e50da8737dc28b0ea2c2194b21d76fdd.tar.gz apk-tools-67f5a753e50da8737dc28b0ea2c2194b21d76fdd.tar.bz2 apk-tools-67f5a753e50da8737dc28b0ea2c2194b21d76fdd.tar.xz apk-tools-67f5a753e50da8737dc28b0ea2c2194b21d76fdd.zip |
db, apps: sort display results based on package names
Diffstat (limited to 'src/app_version.c')
-rw-r--r-- | src/app_version.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/app_version.c b/src/app_version.c index d5d9c88..2a8cdb8 100644 --- a/src/app_version.c +++ b/src/app_version.c @@ -107,7 +107,7 @@ static const struct apk_option_group optgroup_applet = { .parse = option_parse_applet, }; -static void ver_print_package_status(struct apk_database *db, const char *match, struct apk_name *name, void *pctx) +static int ver_print_package_status(struct apk_database *db, const char *match, struct apk_name *name, void *pctx) { struct ver_ctx *ctx = (struct ver_ctx *) pctx; struct apk_package *pkg; @@ -119,10 +119,10 @@ static void ver_print_package_status(struct apk_database *db, const char *match, int i, r = -1; unsigned short tag, allowed_repos; - if (!name) return; + if (!name) return 0; pkg = apk_pkg_get_installed(name); - if (!pkg) return; + if (!pkg) return 0; tag = pkg->ipkg->repository_tag; allowed_repos = db->repo_tags[tag].allowed_repos; @@ -148,10 +148,10 @@ static void ver_print_package_status(struct apk_database *db, const char *match, : APK_VERSION_UNKNOWN; opstr = apk_version_op_string(r); if ((ctx->limchars != NULL) && (strchr(ctx->limchars, *opstr) == NULL)) - return; + return 0; if (apk_verbosity <= 0) { printf("%s\n", pkg->name->name); - return; + return 0; } tag = APK_DEFAULT_REPOSITORY_TAG; @@ -167,6 +167,7 @@ static void ver_print_package_status(struct apk_database *db, const char *match, pkgname, opstr, BLOB_PRINTF(*latest), BLOB_PRINTF(db->repo_tags[tag].tag)); + return 0; } static int ver_main(void *pctx, struct apk_database *db, struct apk_string_array *args) @@ -186,10 +187,7 @@ static int ver_main(void *pctx, struct apk_database *db, struct apk_string_array if (apk_verbosity > 0) printf("%-42sAvailable:\n", "Installed:"); - apk_name_foreach_matching( - db, args, APK_FOREACH_NULL_MATCHES_ALL | apk_foreach_genid(), - ver_print_package_status, ctx); - + apk_db_foreach_sorted_name(db, args, ver_print_package_status, ctx); return 0; } |