diff options
-rw-r--r-- | src/apk_package.h | 1 | ||||
-rw-r--r-- | src/commit.c | 2 | ||||
-rw-r--r-- | src/database.c | 2 | ||||
-rw-r--r-- | src/info.c | 4 | ||||
-rw-r--r-- | src/search.c | 4 | ||||
-rw-r--r-- | src/ver.c | 5 |
6 files changed, 13 insertions, 5 deletions
diff --git a/src/apk_package.h b/src/apk_package.h index db3965b..2d8a431 100644 --- a/src/apk_package.h +++ b/src/apk_package.h @@ -42,6 +42,7 @@ struct apk_provider; #define APK_DEP_CONFLICTS 0x04 #define APK_FOREACH_INSTALLED 0x10 #define APK_FOREACH_MARKED 0x20 +#define APK_FOREACH_NULL_MATCHES_ALL 0x40 #define APK_FOREACH_GENID_MASK 0xffffff00 struct apk_sign_ctx { diff --git a/src/commit.c b/src/commit.c index af9e34c..fc4fafd 100644 --- a/src/commit.c +++ b/src/commit.c @@ -259,7 +259,7 @@ int apk_solver_commit_changeset(struct apk_database *db, "disk space will be freed." : "additional disk space will be used."); } - if (changeset->changes->num > 0 && + if (changeset->num_total_changes > 0 && (apk_flags & APK_INTERACTIVE)) { printf("Do you want to continue [Y/n]? "); fflush(stdout); diff --git a/src/database.c b/src/database.c index 72e568d..2360bda 100644 --- a/src/database.c +++ b/src/database.c @@ -2741,6 +2741,8 @@ void apk_name_foreach_matching(struct apk_database *db, struct apk_string_array }; if (filter == NULL || filter->num == 0) { + if (!(match & APK_FOREACH_NULL_MATCHES_ALL)) + return; apk_string_array_init(&mctx.filter); goto all; } @@ -399,7 +399,9 @@ static int info_main(void *ctx, struct apk_database *db, struct apk_string_array if (args->num > 0) { /* Print info on given names */ - apk_name_foreach_matching(db, args, apk_foreach_genid(), print_name_info, ctx); + apk_name_foreach_matching( + db, args, APK_FOREACH_NULL_MATCHES_ALL | apk_foreach_genid(), + print_name_info, ctx); } else { /* Print all installed packages */ list_for_each_entry(ipkg, &db->installed.packages, installed_pkgs_list) diff --git a/src/search.c b/src/search.c index 3c323db..2b7b5e1 100644 --- a/src/search.c +++ b/src/search.c @@ -157,7 +157,9 @@ static int search_main(void *pctx, struct apk_database *db, struct apk_string_ar *pmatch = tmp; } } - apk_name_foreach_matching(db, args, apk_foreach_genid(), print_result, ctx); + apk_name_foreach_matching( + db, args, APK_FOREACH_NULL_MATCHES_ALL | apk_foreach_genid(), + print_result, ctx); return 0; } @@ -174,8 +174,9 @@ 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_genid(), - ver_print_package_status, ctx); + apk_name_foreach_matching( + db, args, APK_FOREACH_NULL_MATCHES_ALL | apk_foreach_genid(), + ver_print_package_status, ctx); return 0; } |