diff options
author | nulltoken <emeric.fermas@gmail.com> | 2012-07-10 20:52:56 +0200 |
---|---|---|
committer | nulltoken <emeric.fermas@gmail.com> | 2012-07-12 01:06:10 +0200 |
commit | 8f17ed801f211e8481b2e0903da547c9e329b010 (patch) | |
tree | c298631c835782662b1645b2cce6b739fffaed9b /src/revparse.c | |
parent | 111ee3fe2d4c6de6729b94235c709986b4079c4b (diff) | |
download | libgit2-8f17ed801f211e8481b2e0903da547c9e329b010.tar.gz |
revparse: simplify the parsing of described object
Diffstat (limited to 'src/revparse.c')
-rw-r--r-- | src/revparse.c | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/src/revparse.c b/src/revparse.c index f9859b18b..10b8376f9 100644 --- a/src/revparse.c +++ b/src/revparse.c @@ -104,7 +104,16 @@ cleanup: return error; } -extern int revparse_lookup_object(git_object **out, git_repository *repo, const char *spec); +static int maybe_sha_or_abbrev(git_object**out, git_repository *repo, const char *spec) +{ + git_oid oid; + size_t speclen = strlen(spec); + + if (git_oid_fromstrn(&oid, spec, speclen) < 0) + return GIT_ENOTFOUND; + + return git_object_lookup_prefix(out, repo, &oid, speclen, GIT_OBJ_ANY); +} static int maybe_describe(git_object**out, git_repository *repo, const char *spec) { @@ -123,21 +132,10 @@ static int maybe_describe(git_object**out, git_repository *repo, const char *spe if (!match) return GIT_ENOTFOUND; - return revparse_lookup_object(out, repo, substr+2); -} - -static int maybe_sha_or_abbrev(git_object**out, git_repository *repo, const char *spec) -{ - git_oid oid; - size_t speclen = strlen(spec); - - if (git_oid_fromstrn(&oid, spec, speclen) < 0) - return GIT_ENOTFOUND; - - return git_object_lookup_prefix(out, repo, &oid, speclen, GIT_OBJ_ANY); + return maybe_sha_or_abbrev(out, repo, substr+2); } -int revparse_lookup_object(git_object **out, git_repository *repo, const char *spec) +static int revparse_lookup_object(git_object **out, git_repository *repo, const char *spec) { int error; git_reference *ref; |