diff options
author | Jay Freeman (saurik) <saurik@saurik.com> | 2012-02-22 04:41:08 +0000 |
---|---|---|
committer | Jay Freeman (saurik) <saurik@saurik.com> | 2012-02-22 04:45:30 +0000 |
commit | b60deb0235404367af61e3d3638dfe88c13b0e7c (patch) | |
tree | d518458442918d56d1fd8af5d924d6143d40dbbf | |
parent | 9c94a356cc61daa85e17c6342db9b3d62f788802 (diff) | |
download | libgit2-b60deb0235404367af61e3d3638dfe88c13b0e7c.tar.gz |
Export parse_tag_buffer as git_tag__parse_buffer.
-rw-r--r-- | src/tag.c | 8 | ||||
-rw-r--r-- | src/tag.h | 1 |
2 files changed, 6 insertions, 3 deletions
@@ -61,7 +61,7 @@ const char *git_tag_message(git_tag *t) return t->message; } -static int parse_tag_buffer(git_tag *tag, const char *buffer, const char *buffer_end) +int git_tag__parse_buffer(git_tag *tag, const char *buffer, size_t length) { static const char *tag_types[] = { NULL, "commit\n", "tree\n", "blob\n", "tag\n" @@ -71,6 +71,8 @@ static int parse_tag_buffer(git_tag *tag, const char *buffer, const char *buffer char *search; int error; + const char *buffer_end = buffer + length; + if ((error = git_oid__parse(&tag->target, &buffer, buffer_end, "object ")) < 0) return git__rethrow(error, "Failed to parse tag. Object field invalid"); @@ -316,7 +318,7 @@ int git_tag_create_frombuffer(git_oid *oid, git_repository *repo, const char *bu return error; /* validate the buffer */ - if ((error = parse_tag_buffer(&tag, buffer, buffer + strlen(buffer))) < GIT_SUCCESS) + if ((error = git_tag__parse_buffer(&tag, buffer, strlen(buffer))) < GIT_SUCCESS) goto cleanup; /* validate the target */ @@ -397,7 +399,7 @@ int git_tag_delete(git_repository *repo, const char *tag_name) int git_tag__parse(git_tag *tag, git_odb_object *obj) { assert(tag); - return parse_tag_buffer(tag, obj->raw.data, (char *)obj->raw.data + obj->raw.len); + return git_tag__parse_buffer(tag, obj->raw.data, obj->raw.len); } typedef struct { @@ -24,5 +24,6 @@ struct git_tag { void git_tag__free(git_tag *tag); int git_tag__parse(git_tag *tag, git_odb_object *obj); +int git_tag__parse_buffer(git_tag *tag, const char *data, size_t len); #endif |