hook: move unsorted_string_list_remove() to string-list.[ch]

Move the convenience wrapper from hook to string-list since
it's a more suitable place. Add a doc comment to the header.

Suggested-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Adrian Ratiu <adrian.ratiu@collabora.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Adrian Ratiu
2026-03-09 02:54:07 +02:00
committed by Junio C Hamano
parent 83677335ae
commit fd9e8f102f
3 changed files with 17 additions and 8 deletions

8
hook.c
View File

@@ -110,14 +110,6 @@ static void list_hooks_add_default(struct repository *r, const char *hookname,
string_list_append(hook_list, hook_path)->util = h;
}
static void unsorted_string_list_remove(struct string_list *list,
const char *str)
{
struct string_list_item *item = unsorted_string_list_lookup(list, str);
if (item)
unsorted_string_list_delete_item(list, item - list->items, 0);
}
/*
* Callback struct to collect all hook.* keys in a single config pass.
* commands: friendly-name to command map.

View File

@@ -281,6 +281,15 @@ void unsorted_string_list_delete_item(struct string_list *list, int i, int free_
list->nr--;
}
void unsorted_string_list_remove(struct string_list *list, const char *str,
int free_util)
{
struct string_list_item *item = unsorted_string_list_lookup(list, str);
if (item)
unsorted_string_list_delete_item(list, item - list->items,
free_util);
}
/*
* append a substring [p..end] to list; return number of things it
* appended to the list.

View File

@@ -265,6 +265,14 @@ struct string_list_item *unsorted_string_list_lookup(struct string_list *list,
*/
void unsorted_string_list_delete_item(struct string_list *list, int i, int free_util);
/**
* Remove the first item matching `str` from an unsorted string_list.
* No-op if `str` is not found. If `free_util` is non-zero, the `util`
* pointer of the removed item is freed before deletion.
*/
void unsorted_string_list_remove(struct string_list *list, const char *str,
int free_util);
/**
* Split string into substrings on characters in `delim` and append the
* substrings to `list`. The input string is not modified.