summaryrefslogtreecommitdiff
path: root/builtin/merge.c
diff options
context:
space:
mode:
authorMartin Ågren <martin.agren@gmail.com>2020-04-11 07:11:45 (GMT)
committerJunio C Hamano <gitster@pobox.com>2020-04-11 21:21:12 (GMT)
commit9881b451f33b7b0df247a4b28a9c08c65eb4ca95 (patch)
tree79dd7d81efd6e918de2f2d3b6e5ff9da694b887f /builtin/merge.c
parent9fadedd637b312089337d73c3ed8447e9f0aa775 (diff)
downloadgit-9881b451f33b7b0df247a4b28a9c08c65eb4ca95.zip
git-9881b451f33b7b0df247a4b28a9c08c65eb4ca95.tar.gz
git-9881b451f33b7b0df247a4b28a9c08c65eb4ca95.tar.bz2
merge: use skip_prefix to parse config key
Instead of using `starts_with()`, the magic number 7, `strlen()` and a fair number of additions to verify the three parts of the config key "branch.<branch>.mergeoptions", use `skip_prefix()` to jump through them more explicitly. We need to introduce a new variable for this (we certainly can't modify `k` just because we see "branch."!). With `skip_prefix()` we often use quite bland names like `p` or `str`. Let's do the same. If and when this function needs to do more prefix-skipping, we'll have a generic variable ready for this. Signed-off-by: Martin Ågren <martin.agren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/merge.c')
-rw-r--r--builtin/merge.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/builtin/merge.c b/builtin/merge.c
index d127d22..df83ba2 100644
--- a/builtin/merge.c
+++ b/builtin/merge.c
@@ -597,10 +597,12 @@ static void parse_branch_merge_options(char *bmo)
static int git_merge_config(const char *k, const char *v, void *cb)
{
int status;
+ const char *str;
- if (branch && starts_with(k, "branch.") &&
- starts_with(k + 7, branch) &&
- !strcmp(k + 7 + strlen(branch), ".mergeoptions")) {
+ if (branch &&
+ skip_prefix(k, "branch.", &str) &&
+ skip_prefix(str, branch, &str) &&
+ !strcmp(str, ".mergeoptions")) {
free(branch_mergeoptions);
branch_mergeoptions = xstrdup(v);
return 0;