diff options
Diffstat (limited to 'include/git2/strarray.h')
-rw-r--r-- | include/git2/strarray.h | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/include/git2/strarray.h b/include/git2/strarray.h index 6ea570c14..df34a5b88 100644 --- a/include/git2/strarray.h +++ b/include/git2/strarray.h @@ -43,8 +43,8 @@ GIT_EXTERN(void) git_strarray_free(git_strarray *array); /** * Copy a string array object from source to target. * - * Note: target is overwritten and hence should be empty, - * otherwise its contents are leaked. + * Note: target is overwritten and hence should be empty, otherwise its + * contents are leaked. Call git_strarray_free() if necessary. * * @param tgt target * @param src source @@ -52,6 +52,32 @@ GIT_EXTERN(void) git_strarray_free(git_strarray *array); */ GIT_EXTERN(int) git_strarray_copy(git_strarray *tgt, const git_strarray *src); +/** + * Initialize a string array from a list of strings + * + * Note: target is overwritten and hence should be empty, otherwise its + * contents are leaked. Call git_strarray_free() if necessary. + * + * @param tgt target + * @param count number of strings to follow + * @return 0 on success, <0 on allocation failure + */ +GIT_EXTERN(int) git_strarray_set(git_strarray *tgt, size_t count, ...); + +/** + * Insert a strarray into the beginning of another + * + * In this case, tgt is an existing (initialized) strarray and the result + * will be reallocated with all the strings in src inserted before all of + * the existing strings in tgt. Strings in src will be strdup'ed, so + * you should still `git_strarray_free()` src when you are done with it. + * + * @param tgt strarray to update + * @param src strarray to copy from + * @return 0 on success, <0 on allocation failure (tgt will be unchanged) + */ +GIT_EXTERN(int) git_strarray_prepend(git_strarray *tgt, const git_strarray *src); + /** @} */ GIT_END_DECL |