From 3f5fadef3718f0ada963aeb25be70c8ba71b5c7c Mon Sep 17 00:00:00 2001 From: Patrick Steinhardt Date: Wed, 20 Nov 2024 14:39:38 +0100 Subject: 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 Signed-off-by: Junio C Hamano --- strvec.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'strvec.h') diff --git a/strvec.h b/strvec.h index 4b73c1f092..f74e061e14 100644 --- a/strvec.h +++ b/strvec.h @@ -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. -- cgit v1.2.3