diff options
author | nulltoken <emeric.fermas@gmail.com> | 2012-07-15 11:06:15 +0200 |
---|---|---|
committer | nulltoken <emeric.fermas@gmail.com> | 2012-07-17 20:32:40 +0200 |
commit | db9be9457d74a683916f107b39cad05a347b4c2c (patch) | |
tree | e315b7dd7b7c629c8a651a588ea8aec9543ed3bb /include/git2/object.h | |
parent | b8748c1217445a95d3b29b361b467eb66992f8a7 (diff) | |
download | libgit2-db9be9457d74a683916f107b39cad05a347b4c2c.tar.gz |
object: introduce git_object_peel()
Partially fix #530
Diffstat (limited to 'include/git2/object.h')
-rw-r--r-- | include/git2/object.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/include/git2/object.h b/include/git2/object.h index 414325121..d9e653fd4 100644 --- a/include/git2/object.h +++ b/include/git2/object.h @@ -167,6 +167,23 @@ GIT_EXTERN(int) git_object_typeisloose(git_otype type); */ GIT_EXTERN(size_t) git_object__size(git_otype type); +/** + * Recursively peel an object until an object of the specified + * type is met + * + * The retrieved `peeled` object is owned by the repository + * and should be closed with the `git_object_free` method. + * + * @param peeled Pointer to the peeled git_object + * @param object The object to be processed + * @param target_type The type of the requested object + * @return 0 or an error code + */ +GIT_EXTERN(int) git_object_peel( + git_object **peeled, + git_object *object, + git_otype target_type); + /** @} */ GIT_END_DECL |