diff options
author | Patrick Steinhardt <ps@pks.im> | 2024-05-27 13:47:04 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2024-05-27 20:20:02 +0200 |
commit | 11ce77b5cc04e2a42b98f0f9f42d367f50f3b1fc (patch) | |
tree | de3d223621a5afca4f2d9a24b9d8b280adee2d7c /strvec.h | |
parent | submodule: fix leaking memory for submodule entries (diff) | |
download | git-11ce77b5cc04e2a42b98f0f9f42d367f50f3b1fc.tar.xz git-11ce77b5cc04e2a42b98f0f9f42d367f50f3b1fc.zip |
strvec: add functions to replace and remove strings
Add two functions that allow to replace and remove strings contained in
the strvec. This will be used by a subsequent commit that refactors
git-mv(1).
While at it, add a bunch of unit tests that cover both old and new
functionality.
Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'strvec.h')
-rw-r--r-- | strvec.h | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -65,6 +65,19 @@ void strvec_pushl(struct strvec *, ...); void strvec_pushv(struct strvec *, const char **); /** + * Replace the value at the given index with a new value. The index must be + * valid. Returns a pointer to the inserted value. + */ +const char *strvec_replace(struct strvec *array, size_t idx, const char *replacement); + +/* + * Remove the value at the given index. The remainder of the array will be + * moved to fill the resulting gap. The provided index must point into the + * array. + */ +void strvec_remove(struct strvec *array, size_t idx); + +/** * Remove the final element from the array. If there are no * elements in the array, do nothing. */ |