Merge branch 'cc/starts-n-ends-with'
Remove a few duplicate implementations of prefix/suffix comparison
functions, and rename them to starts_with and ends_with.
* cc/starts-n-ends-with:
replace {pre,suf}fixcmp() with {starts,ends}_with()
strbuf: introduce starts_with() and ends_with()
builtin/remote: remove postfixcmp() and use suffixcmp() instead
environment: normalize use of prefixcmp() by removing " != 0"
This commit is contained in:
46
remote.c
46
remote.c
@ -76,7 +76,7 @@ static const char *alias_url(const char *url, struct rewrites *r)
|
||||
if (!r->rewrite[i])
|
||||
continue;
|
||||
for (j = 0; j < r->rewrite[i]->instead_of_nr; j++) {
|
||||
if (!prefixcmp(url, r->rewrite[i]->instead_of[j].s) &&
|
||||
if (starts_with(url, r->rewrite[i]->instead_of[j].s) &&
|
||||
(!longest ||
|
||||
longest->len < r->rewrite[i]->instead_of[j].len)) {
|
||||
longest = &(r->rewrite[i]->instead_of[j]);
|
||||
@ -239,13 +239,13 @@ static void read_remotes_file(struct remote *remote)
|
||||
int value_list;
|
||||
char *s, *p;
|
||||
|
||||
if (!prefixcmp(buffer, "URL:")) {
|
||||
if (starts_with(buffer, "URL:")) {
|
||||
value_list = 0;
|
||||
s = buffer + 4;
|
||||
} else if (!prefixcmp(buffer, "Push:")) {
|
||||
} else if (starts_with(buffer, "Push:")) {
|
||||
value_list = 1;
|
||||
s = buffer + 5;
|
||||
} else if (!prefixcmp(buffer, "Pull:")) {
|
||||
} else if (starts_with(buffer, "Pull:")) {
|
||||
value_list = 2;
|
||||
s = buffer + 5;
|
||||
} else
|
||||
@ -337,7 +337,7 @@ static int handle_config(const char *key, const char *value, void *cb)
|
||||
const char *subkey;
|
||||
struct remote *remote;
|
||||
struct branch *branch;
|
||||
if (!prefixcmp(key, "branch.")) {
|
||||
if (starts_with(key, "branch.")) {
|
||||
name = key + 7;
|
||||
subkey = strrchr(name, '.');
|
||||
if (!subkey)
|
||||
@ -361,7 +361,7 @@ static int handle_config(const char *key, const char *value, void *cb)
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
if (!prefixcmp(key, "url.")) {
|
||||
if (starts_with(key, "url.")) {
|
||||
struct rewrite *rewrite;
|
||||
name = key + 4;
|
||||
subkey = strrchr(name, '.');
|
||||
@ -380,7 +380,7 @@ static int handle_config(const char *key, const char *value, void *cb)
|
||||
}
|
||||
}
|
||||
|
||||
if (prefixcmp(key, "remote."))
|
||||
if (!starts_with(key, "remote."))
|
||||
return 0;
|
||||
name = key + 7;
|
||||
|
||||
@ -487,7 +487,7 @@ static void read_config(void)
|
||||
current_branch = NULL;
|
||||
head_ref = resolve_ref_unsafe("HEAD", sha1, 0, &flag);
|
||||
if (head_ref && (flag & REF_ISSYMREF) &&
|
||||
!prefixcmp(head_ref, "refs/heads/")) {
|
||||
starts_with(head_ref, "refs/heads/")) {
|
||||
current_branch =
|
||||
make_branch(head_ref + strlen("refs/heads/"), 0);
|
||||
}
|
||||
@ -1013,8 +1013,8 @@ static int count_refspec_match(const char *pattern,
|
||||
*/
|
||||
if (namelen != patlen &&
|
||||
patlen != namelen - 5 &&
|
||||
prefixcmp(name, "refs/heads/") &&
|
||||
prefixcmp(name, "refs/tags/")) {
|
||||
!starts_with(name, "refs/heads/") &&
|
||||
!starts_with(name, "refs/tags/")) {
|
||||
/* We want to catch the case where only weak
|
||||
* matches are found and there are multiple
|
||||
* matches, and where more than one strong
|
||||
@ -1085,9 +1085,9 @@ static char *guess_ref(const char *name, struct ref *peer)
|
||||
if (!r)
|
||||
return NULL;
|
||||
|
||||
if (!prefixcmp(r, "refs/heads/"))
|
||||
if (starts_with(r, "refs/heads/"))
|
||||
strbuf_addstr(&buf, "refs/heads/");
|
||||
else if (!prefixcmp(r, "refs/tags/"))
|
||||
else if (starts_with(r, "refs/tags/"))
|
||||
strbuf_addstr(&buf, "refs/tags/");
|
||||
else
|
||||
return NULL;
|
||||
@ -1135,7 +1135,7 @@ static int match_explicit(struct ref *src, struct ref *dst,
|
||||
dst_value = resolve_ref_unsafe(matched_src->name, sha1, 1, &flag);
|
||||
if (!dst_value ||
|
||||
((flag & REF_ISSYMREF) &&
|
||||
prefixcmp(dst_value, "refs/heads/")))
|
||||
!starts_with(dst_value, "refs/heads/")))
|
||||
die("%s cannot be resolved to branch.",
|
||||
matched_src->name);
|
||||
}
|
||||
@ -1224,7 +1224,7 @@ static char *get_ref_match(const struct refspec *rs, int rs_nr, const struct ref
|
||||
* including refs outside refs/heads/ hierarchy, but
|
||||
* that does not make much sense these days.
|
||||
*/
|
||||
if (!send_mirror && prefixcmp(ref->name, "refs/heads/"))
|
||||
if (!send_mirror && !starts_with(ref->name, "refs/heads/"))
|
||||
return NULL;
|
||||
name = xstrdup(ref->name);
|
||||
}
|
||||
@ -1279,7 +1279,7 @@ static void add_missing_tags(struct ref *src, struct ref **dst, struct ref ***ds
|
||||
add_to_tips(&sent_tips, ref->peer_ref->new_sha1);
|
||||
else
|
||||
add_to_tips(&sent_tips, ref->old_sha1);
|
||||
if (!prefixcmp(ref->name, "refs/tags/"))
|
||||
if (starts_with(ref->name, "refs/tags/"))
|
||||
string_list_append(&dst_tag, ref->name);
|
||||
}
|
||||
clear_commit_marks_many(sent_tips.nr, sent_tips.tip, TMP_MARK);
|
||||
@ -1288,7 +1288,7 @@ static void add_missing_tags(struct ref *src, struct ref **dst, struct ref ***ds
|
||||
|
||||
/* Collect tags they do not have. */
|
||||
for (ref = src; ref; ref = ref->next) {
|
||||
if (prefixcmp(ref->name, "refs/tags/"))
|
||||
if (!starts_with(ref->name, "refs/tags/"))
|
||||
continue; /* not a tag */
|
||||
if (string_list_has_string(&dst_tag, ref->name))
|
||||
continue; /* they already have it */
|
||||
@ -1512,7 +1512,7 @@ void set_ref_status_for_push(struct ref *remote_refs, int send_mirror,
|
||||
*/
|
||||
|
||||
else if (!ref->deletion && !is_null_sha1(ref->old_sha1)) {
|
||||
if (!prefixcmp(ref->name, "refs/tags/"))
|
||||
if (starts_with(ref->name, "refs/tags/"))
|
||||
reject_reason = REF_STATUS_REJECT_ALREADY_EXISTS;
|
||||
else if (!has_sha1_file(ref->old_sha1))
|
||||
reject_reason = REF_STATUS_REJECT_FETCH_FIRST;
|
||||
@ -1645,12 +1645,12 @@ static struct ref *get_local_ref(const char *name)
|
||||
if (!name || name[0] == '\0')
|
||||
return NULL;
|
||||
|
||||
if (!prefixcmp(name, "refs/"))
|
||||
if (starts_with(name, "refs/"))
|
||||
return alloc_ref(name);
|
||||
|
||||
if (!prefixcmp(name, "heads/") ||
|
||||
!prefixcmp(name, "tags/") ||
|
||||
!prefixcmp(name, "remotes/"))
|
||||
if (starts_with(name, "heads/") ||
|
||||
starts_with(name, "tags/") ||
|
||||
starts_with(name, "remotes/"))
|
||||
return alloc_ref_with_prefix("refs/", 5, name);
|
||||
|
||||
return alloc_ref_with_prefix("refs/heads/", 11, name);
|
||||
@ -1685,7 +1685,7 @@ int get_fetch_map(const struct ref *remote_refs,
|
||||
|
||||
for (rmp = &ref_map; *rmp; ) {
|
||||
if ((*rmp)->peer_ref) {
|
||||
if (prefixcmp((*rmp)->peer_ref->name, "refs/") ||
|
||||
if (!starts_with((*rmp)->peer_ref->name, "refs/") ||
|
||||
check_refname_format((*rmp)->peer_ref->name, 0)) {
|
||||
struct ref *ignore = *rmp;
|
||||
error("* Ignoring funny ref '%s' locally",
|
||||
@ -1969,7 +1969,7 @@ struct ref *guess_remote_head(const struct ref *head,
|
||||
/* Look for another ref that points there */
|
||||
for (r = refs; r; r = r->next) {
|
||||
if (r != head &&
|
||||
!prefixcmp(r->name, "refs/heads/") &&
|
||||
starts_with(r->name, "refs/heads/") &&
|
||||
!hashcmp(r->old_sha1, head->old_sha1)) {
|
||||
*tail = copy_ref(r);
|
||||
tail = &((*tail)->next);
|
||||
|
||||
Reference in New Issue
Block a user