summaryrefslogtreecommitdiff
path: root/builtin/remote.c
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2014-06-30 16:58:51 (GMT)
committerJunio C Hamano <gitster@pobox.com>2014-06-30 20:43:17 (GMT)
commit26936bfd9bde1ec46901bea3e53d4fb9ae1b4a4c (patch)
tree168d00b14d97061b2db5b1d068ec01870f2ce3d9 /builtin/remote.c
parent2975c770ca609ea5afc80631c4ac9087c527b6fd (diff)
downloadgit-26936bfd9bde1ec46901bea3e53d4fb9ae1b4a4c.zip
git-26936bfd9bde1ec46901bea3e53d4fb9ae1b4a4c.tar.gz
git-26936bfd9bde1ec46901bea3e53d4fb9ae1b4a4c.tar.bz2
use strip_suffix instead of ends_with in simple cases
When stripping a suffix like: if (ends_with(str, "foo")) buf = xmemdupz(str, strlen(str) - 3); we can instead use strip_suffix to avoid the constant 3, which must match the literal "foo" (we sometimes use strlen("foo") instead, but that means we are repeating ourselves). The example above becomes: if (strip_suffix(str, "foo", &len)) buf = xmemdupz(str, len); This also saves a strlen(), since we calculate the string length when detecting the suffix. Note that in some cases we also switch from xstrndup to xmemdupz, which saves a further strlen call. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/remote.c')
-rw-r--r--builtin/remote.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/builtin/remote.c b/builtin/remote.c
index 9b3e368..0a6f3ef 100644
--- a/builtin/remote.c
+++ b/builtin/remote.c
@@ -265,16 +265,17 @@ static int config_read_branches(const char *key, const char *value, void *cb)
struct string_list_item *item;
struct branch_info *info;
enum { REMOTE, MERGE, REBASE } type;
+ size_t key_len;
key += 7;
- if (ends_with(key, ".remote")) {
- name = xstrndup(key, strlen(key) - 7);
+ if (strip_suffix(key, ".remote", &key_len)) {
+ name = xmemdupz(key, key_len);
type = REMOTE;
- } else if (ends_with(key, ".merge")) {
- name = xstrndup(key, strlen(key) - 6);
+ } else if (strip_suffix(key, ".merge", &key_len)) {
+ name = xmemdupz(key, key_len);
type = MERGE;
- } else if (ends_with(key, ".rebase")) {
- name = xstrndup(key, strlen(key) - 7);
+ } else if (strip_suffix(key, ".rebase", &key_len)) {
+ name = xmemdupz(key, key_len);
type = REBASE;
} else
return 0;