summaryrefslogtreecommitdiff
path: root/sha1_name.c
diff options
context:
space:
mode:
authorJonathan Nieder <jrnieder@gmail.com>2010-11-06 11:46:52 (GMT)
committerJunio C Hamano <gitster@pobox.com>2010-11-10 19:07:04 (GMT)
commit6bab74e7fb89b7427e5ef24b48a07fe9450c40e7 (patch)
treedf81e3ebbc067e2639d68b77481bda367aa4f772 /sha1_name.c
parent33f239365cce2682a1faac0d5670d684aa1981ad (diff)
downloadgit-6bab74e7fb89b7427e5ef24b48a07fe9450c40e7.zip
git-6bab74e7fb89b7427e5ef24b48a07fe9450c40e7.tar.gz
git-6bab74e7fb89b7427e5ef24b48a07fe9450c40e7.tar.bz2
strbuf: move strbuf_branchname to sha1_name.c
strbuf_branchname is a thin wrapper around interpret_branch_name from sha1_name.o. Most strbuf.o users do not need it. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'sha1_name.c')
-rw-r--r--sha1_name.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/sha1_name.c b/sha1_name.c
index 484081d..32522c0 100644
--- a/sha1_name.c
+++ b/sha1_name.c
@@ -934,6 +934,24 @@ int interpret_branch_name(const char *name, struct strbuf *buf)
return len;
}
+int strbuf_branchname(struct strbuf *sb, const char *name)
+{
+ int len = strlen(name);
+ if (interpret_branch_name(name, sb) == len)
+ return 0;
+ strbuf_add(sb, name, len);
+ return len;
+}
+
+int strbuf_check_branch_ref(struct strbuf *sb, const char *name)
+{
+ strbuf_branchname(sb, name);
+ if (name[0] == '-')
+ return CHECK_REF_FORMAT_ERROR;
+ strbuf_splice(sb, 0, 0, "refs/heads/", 11);
+ return check_ref_format(sb->buf);
+}
+
/*
* This is like "get_sha1_basic()", except it allows "sha1 expressions",
* notably "xyz^" for "parent of xyz"