diff options
author | Timo Teräs <timo.teras@iki.fi> | 2023-03-06 21:37:29 +0200 |
---|---|---|
committer | Timo Teräs <timo.teras@iki.fi> | 2023-04-11 20:55:13 +0300 |
commit | 84e0e00805aca0530a8891975a8a04390df8945c (patch) | |
tree | b3e225b150c67340217af4407735dc426a1b3800 /src | |
parent | 58fa82642e1a155e92a218a58753974587b3b956 (diff) | |
download | apk-tools-84e0e00805aca0530a8891975a8a04390df8945c.tar.gz apk-tools-84e0e00805aca0530a8891975a8a04390df8945c.tar.bz2 apk-tools-84e0e00805aca0530a8891975a8a04390df8945c.tar.xz apk-tools-84e0e00805aca0530a8891975a8a04390df8945c.zip |
db: case insensitive searches
fixes #10871
Diffstat (limited to 'src')
-rw-r--r-- | src/apk_database.h | 2 | ||||
-rw-r--r-- | src/app_search.c | 4 | ||||
-rw-r--r-- | src/database.c | 2 |
3 files changed, 4 insertions, 4 deletions
diff --git a/src/apk_database.h b/src/apk_database.h index 06b714a..649cfc0 100644 --- a/src/apk_database.h +++ b/src/apk_database.h @@ -202,7 +202,7 @@ typedef union apk_database_or_void { } apk_database_t __attribute__ ((__transparent_union__)); static inline int apk_name_cmp_display(const struct apk_name *a, const struct apk_name *b) { - return strcmp(a->name, b->name); + return strcasecmp(a->name, b->name) ?: strcmp(a->name, b->name); } struct apk_provider_array *apk_name_sorted_providers(struct apk_name *); diff --git a/src/app_search.c b/src/app_search.c index 6b27620..db4c398 100644 --- a/src/app_search.c +++ b/src/app_search.c @@ -117,8 +117,8 @@ static void print_result_pkg(struct search_ctx *ctx, struct apk_package *pkg) if (ctx->search_description) { foreach_array_item(pmatch, ctx->filter) { - if (fnmatch(*pmatch, pkg->description, 0) == 0 || - fnmatch(*pmatch, pkg->name->name, 0) == 0) + if (fnmatch(*pmatch, pkg->description, FNM_CASEFOLD) == 0 || + fnmatch(*pmatch, pkg->name->name, FNM_CASEFOLD) == 0) goto match; } return; diff --git a/src/database.c b/src/database.c index dd11973..5ecd437 100644 --- a/src/database.c +++ b/src/database.c @@ -3013,7 +3013,7 @@ static int apk_string_match(const char *str, struct apk_string_array *filter, co char **pmatch; foreach_array_item(pmatch, filter) { - if (fnmatch(*pmatch, str, 0) == 0) { + if (fnmatch(*pmatch, str, FNM_CASEFOLD) == 0) { *res = *pmatch; return 1; } |