aboutsummaryrefslogtreecommitdiffstats
path: root/string-list.h
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2023-05-02 10:13:35 -0700
committerJunio C Hamano <gitster@pobox.com>2023-05-02 10:13:35 -0700
commitd699e27bd487598bc3c5bbf649d866c5274ef8cd (patch)
tree8e9f201a52546742933c5e92648788e5ca5c8795 /string-list.h
parentMerge branch 'jk/blame-fake-commit-label' (diff)
parentbanned.h: mark `strtok()` and `strtok_r()` as banned (diff)
downloadgit-d699e27bd487598bc3c5bbf649d866c5274ef8cd.tar.gz
git-d699e27bd487598bc3c5bbf649d866c5274ef8cd.zip
Merge branch 'tb/ban-strtok'
Mark strtok() and strtok_r() to be banned. * tb/ban-strtok: banned.h: mark `strtok()` and `strtok_r()` as banned t/helper/test-json-writer.c: avoid using `strtok()` t/helper/test-oidmap.c: avoid using `strtok()` t/helper/test-hashmap.c: avoid using `strtok()` string-list: introduce `string_list_setlen()` string-list: multi-delimiter `string_list_split_in_place()`
Diffstat (limited to 'string-list.h')
-rw-r--r--string-list.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/string-list.h b/string-list.h
index c7b0d5d000..122b318641 100644
--- a/string-list.h
+++ b/string-list.h
@@ -134,6 +134,16 @@ typedef void (*string_list_clear_func_t)(void *p, const char *str);
/** Call a custom clear function on each util pointer */
void string_list_clear_func(struct string_list *list, string_list_clear_func_t clearfunc);
+/*
+ * Set the length of a string_list to `nr`, provided that (a) `list`
+ * does not own its own storage, and (b) that `nr` is no larger than
+ * `list->nr`.
+ *
+ * Useful when "shrinking" `list` to write over existing entries that
+ * are no longer used without reallocating.
+ */
+void string_list_setlen(struct string_list *list, size_t nr);
+
/**
* Apply `func` to each item. If `func` returns nonzero, the
* iteration aborts and the return value is propagated.
@@ -270,5 +280,5 @@ int string_list_split(struct string_list *list, const char *string,
* list->strdup_strings must *not* be set.
*/
int string_list_split_in_place(struct string_list *list, char *string,
- int delim, int maxsplit);
+ const char *delim, int maxsplit);
#endif /* STRING_LIST_H */