strvec: introduce new strvec_splice() function

Introduce a new `strvec_splice()` function that can replace a range of
strings in the vector with another array of strings. This function will
be used in subsequent commits.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Patrick Steinhardt
2024-11-20 14:39:38 +01:00
committed by Junio C Hamano
parent 141766d1bb
commit 3f5fadef37
3 changed files with 93 additions and 0 deletions

View File

@ -67,6 +67,15 @@ void strvec_pushl(struct strvec *, ...);
/* Push a null-terminated array of strings onto the end of the array. */
void strvec_pushv(struct strvec *, const char **);
/*
* Replace `len` values starting at `idx` with the provided replacement
* strings. If `len` is zero this is effectively an insert at the given `idx`.
* If `replacement_len` is zero this is effectively a delete of `len` items
* starting at `idx`.
*/
void strvec_splice(struct strvec *array, size_t idx, size_t len,
const char **replacement, size_t replacement_len);
/**
* Replace the value at the given index with a new value. The index must be
* valid. Returns a pointer to the inserted value.