diff options
Diffstat (limited to 'sha1_name.c')
-rw-r--r-- | sha1_name.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/sha1_name.c b/sha1_name.c index b48b91c507..2c3a5fb363 100644 --- a/sha1_name.c +++ b/sha1_name.c @@ -936,6 +936,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" |