diff options
author | Junio C Hamano <gitster@pobox.com> | 2009-04-12 17:55:18 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-04-12 17:56:25 -0700 |
commit | 7d5a1806e8c2d9980938a05a56939272ad2ec338 (patch) | |
tree | 6a09da6a7a0d76a3bf1fc0f2d860349c6efe1de9 /strbuf.c | |
parent | 078688213f321ac52c224c1cfa264d686c7264bd (diff) | |
parent | c965c029330b1f81cc107c5d829e7fd79c61d8ea (diff) | |
download | git-7d5a1806e8c2d9980938a05a56939272ad2ec338.tar.gz |
Mark t1301 permission test to depend on POSIXPERM
This prepares the topic for inclusion to master.
Diffstat (limited to 'strbuf.c')
-rw-r--r-- | strbuf.c | 30 |
1 files changed, 22 insertions, 8 deletions
@@ -1,4 +1,5 @@ #include "cache.h" +#include "refs.h" int prefixcmp(const char *str, const char *prefix) { @@ -139,14 +140,11 @@ void strbuf_list_free(struct strbuf **sbs) int strbuf_cmp(const struct strbuf *a, const struct strbuf *b) { - int cmp; - if (a->len < b->len) { - cmp = memcmp(a->buf, b->buf, a->len); - return cmp ? cmp : -1; - } else { - cmp = memcmp(a->buf, b->buf, b->len); - return cmp ? cmp : a->len != b->len; - } + int len = a->len < b->len ? a->len: b->len; + int cmp = memcmp(a->buf, b->buf, len); + if (cmp) + return cmp; + return a->len < b->len ? -1: a->len != b->len; } void strbuf_splice(struct strbuf *sb, size_t pos, size_t len, @@ -360,3 +358,19 @@ int strbuf_read_file(struct strbuf *sb, const char *path, size_t hint) 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); + strbuf_splice(sb, 0, 0, "refs/heads/", 11); + return check_ref_format(sb->buf); +} |