diff options
| author | Junio C Hamano <gitster@pobox.com> | 2025-10-14 12:56:08 -0700 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2025-10-14 12:56:08 -0700 |
| commit | 048625a6898f2bcc212f0d4baec1d18695b028a5 (patch) | |
| tree | 8a7ea947d64d5bd9a7fe79770b5056e8485cb14c /add-interactive.c | |
| parent | Merge branch 'kh/doc-patch-id-markup-fix' (diff) | |
| parent | refs: enable sign compare warnings check (diff) | |
| download | git-048625a6898f2bcc212f0d4baec1d18695b028a5.tar.gz git-048625a6898f2bcc212f0d4baec1d18695b028a5.zip | |
Merge branch 'sj/string-list'
The "string-list" API function to find where a given string would
be inserted got updated so that it can use unrealistically huge
array index that would only fit in size_t but not int or ssize_t
to achieve unstated goal.
* sj/string-list:
refs: enable sign compare warnings check
string-list: change "string_list_find_insert_index" return type to "size_t"
string-list: replace negative index encoding with "exact_match" parameter
string-list: use bool instead of int for "exact_match"
Diffstat (limited to 'add-interactive.c')
| -rw-r--r-- | add-interactive.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/add-interactive.c b/add-interactive.c index 6ffe64c38d..68fc09547d 100644 --- a/add-interactive.c +++ b/add-interactive.c @@ -244,7 +244,8 @@ static void find_unique_prefixes(struct prefix_item_list *list) static ssize_t find_unique(const char *string, struct prefix_item_list *list) { - int index = string_list_find_insert_index(&list->sorted, string, 1); + bool exact_match; + size_t index = string_list_find_insert_index(&list->sorted, string, &exact_match); struct string_list_item *item; if (list->items.nr != list->sorted.nr) @@ -252,8 +253,8 @@ static ssize_t find_unique(const char *string, struct prefix_item_list *list) " vs %"PRIuMAX")", (uintmax_t)list->items.nr, (uintmax_t)list->sorted.nr); - if (index < 0) - item = list->sorted.items[-1 - index].util; + if (exact_match) + item = list->sorted.items[index].util; else if (index > 0 && starts_with(list->sorted.items[index - 1].string, string)) return -1; |
