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:
Junio C Hamano
2013-12-17 11:47:35 -08:00
91 changed files with 484 additions and 481 deletions

View File

@ -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);