Merge branch 'rs/remote-simplify'
* rs/remote-simplify: remote: simplify match_name_with_pattern() using strbuf
This commit is contained in:
commit
60dfd8461b
17
remote.c
17
remote.c
@ -862,21 +862,14 @@ static int match_name_with_pattern(const char *key, const char *name,
|
||||
ret = !strncmp(name, key, klen) && namelen >= klen + ksuffixlen &&
|
||||
!memcmp(name + namelen - ksuffixlen, kstar + 1, ksuffixlen);
|
||||
if (ret && value) {
|
||||
struct strbuf sb = STRBUF_INIT;
|
||||
const char *vstar = strchr(value, '*');
|
||||
size_t vlen;
|
||||
size_t vsuffixlen;
|
||||
if (!vstar)
|
||||
die("Value '%s' of pattern has no '*'", value);
|
||||
vlen = vstar - value;
|
||||
vsuffixlen = strlen(vstar + 1);
|
||||
*result = xmalloc(vlen + vsuffixlen +
|
||||
strlen(name) -
|
||||
klen - ksuffixlen + 1);
|
||||
strncpy(*result, value, vlen);
|
||||
strncpy(*result + vlen,
|
||||
name + klen, namelen - klen - ksuffixlen);
|
||||
strcpy(*result + vlen + namelen - klen - ksuffixlen,
|
||||
vstar + 1);
|
||||
strbuf_add(&sb, value, vstar - value);
|
||||
strbuf_add(&sb, name + klen, namelen - klen - ksuffixlen);
|
||||
strbuf_addstr(&sb, vstar + 1);
|
||||
*result = strbuf_detach(&sb, NULL);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user