diff options
| author | Carlos Martín Nieto <cmn@dwim.me> | 2013-05-08 02:28:47 +0200 |
|---|---|---|
| committer | Carlos Martín Nieto <cmn@dwim.me> | 2013-05-08 02:28:47 +0200 |
| commit | 4f2eb2b7f4cf6b2b6594887edd8948cb149c8052 (patch) | |
| tree | f93422ce61b7a349b238d2d0642ef80f09b7bf55 /src/refs.c | |
| parent | af795759a7c1e753d440e3c3ca4dd5d8e391018c (diff) | |
| download | libgit2-4f2eb2b7f4cf6b2b6594887edd8948cb149c8052.tar.gz | |
Introduce git_reference_shorthand
Generate a shorthand name out of the full refname.
Diffstat (limited to 'src/refs.c')
| -rw-r--r-- | src/refs.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/refs.c b/src/refs.c index 8bba3941e..5ed2883d9 100644 --- a/src/refs.c +++ b/src/refs.c @@ -1016,3 +1016,20 @@ int git_reference_is_valid_name( refname, GIT_REF_FORMAT_ALLOW_ONELEVEL); } + +const char *git_reference_shorthand(git_reference *ref) +{ + const char *name = ref->name; + + if (!git__prefixcmp(name, GIT_REFS_HEADS_DIR)) + return name + strlen(GIT_REFS_HEADS_DIR); + else if (!git__prefixcmp(name, GIT_REFS_TAGS_DIR)) + return name + strlen(GIT_REFS_TAGS_DIR); + else if (!git__prefixcmp(name, GIT_REFS_REMOTES_DIR)) + return name + strlen(GIT_REFS_REMOTES_DIR); + else if (!git__prefixcmp(name, GIT_REFS_DIR)) + return name + strlen(GIT_REFS_DIR); + + /* No shorthands are avaiable, so just return the name */ + return name; +} |
