Refactor a "do I have an element like this?" pattern added in [1] and [2] to use unsorted_string_list_has_string() instead of a for_each_string_list_item() loop. A preceding commit added a "const" to the "struct string_list *" argument of unsorted_string_list_has_string(), it'll thus play nicely with git_config_get_const_value_multi() without needing a cast here. 1. 1ebe6b02970 (maintenance: add 'unregister --force', 2022-09-27) 2. 50a044f1e40 (gc: replace config subprocesses with API calls, 2022-09-27) Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> --- builtin/gc.c | 22 ++++------------------ 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/builtin/gc.c b/builtin/gc.c index 04c48638ef4..f435eda2e73 100644 --- a/builtin/gc.c +++ b/builtin/gc.c @@ -1467,7 +1467,6 @@ static int maintenance_register(int argc, const char **argv, const char *prefix) const char *key = "maintenance.repo"; char *config_value; char *maintpath = get_maintpath(); - struct string_list_item *item; const struct string_list *list; argc = parse_options(argc, argv, prefix, options, @@ -1485,14 +1484,8 @@ static int maintenance_register(int argc, const char **argv, const char *prefix) else git_config_set("maintenance.strategy", "incremental"); - if (!git_config_get_knownkey_value_multi(key, &list)) { - for_each_string_list_item(item, list) { - if (!strcmp(maintpath, item->string)) { - found = 1; - break; - } - } - } + if (!git_config_get_knownkey_value_multi(key, &list)) + found = unsorted_string_list_has_string(list, maintpath); if (!found) { int rc; @@ -1532,7 +1525,6 @@ static int maintenance_unregister(int argc, const char **argv, const char *prefi const char *key = "maintenance.repo"; char *maintpath = get_maintpath(); int found = 0; - struct string_list_item *item; const struct string_list *list; argc = parse_options(argc, argv, prefix, options, @@ -1541,14 +1533,8 @@ static int maintenance_unregister(int argc, const char **argv, const char *prefi usage_with_options(builtin_maintenance_unregister_usage, options); - if (!git_config_get_knownkey_value_multi(key, &list)) { - for_each_string_list_item(item, list) { - if (!strcmp(maintpath, item->string)) { - found = 1; - break; - } - } - } + if (!git_config_get_knownkey_value_multi(key, &list)) + found = unsorted_string_list_has_string(list, maintpath); if (found) { int rc; -- 2.38.0.1251.g3eefdfb5e7a