[PATCH 1/4] Replace most uses of strncmp() with prefixcmp()

Lukas Fleischer cgit at cryptocrack.de
Fri Jan 10 12:44:35 CET 2014


This is a preparation for replacing all prefix checks with either
strip_prefix() or starts_with() when Git 1.8.6 is released.

Signed-off-by: Lukas Fleischer <cgit at cryptocrack.de>
---
 cgit.c       | 18 +++++++++---------
 parsing.c    | 12 ++++++------
 scan-tree.c  |  2 +-
 ui-refs.c    |  4 ++--
 ui-shared.c  |  2 +-
 ui-summary.c |  2 +-
 6 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/cgit.c b/cgit.c
index 1f84da8..e31962d 100644
--- a/cgit.c
+++ b/cgit.c
@@ -863,7 +863,7 @@ static void cgit_parse_args(int argc, const char **argv)
 	int scan = 0;
 
 	for (i = 1; i < argc; i++) {
-		if (!strncmp(argv[i], "--cache=", 8)) {
+		if (!prefixcmp(argv[i], "--cache=")) {
 			ctx.cfg.cache_root = xstrdup(argv[i] + 8);
 		}
 		if (!strcmp(argv[i], "--nocache")) {
@@ -872,28 +872,28 @@ static void cgit_parse_args(int argc, const char **argv)
 		if (!strcmp(argv[i], "--nohttp")) {
 			ctx.env.no_http = "1";
 		}
-		if (!strncmp(argv[i], "--query=", 8)) {
+		if (!prefixcmp(argv[i], "--query=")) {
 			ctx.qry.raw = xstrdup(argv[i] + 8);
 		}
-		if (!strncmp(argv[i], "--repo=", 7)) {
+		if (!prefixcmp(argv[i], "--repo=")) {
 			ctx.qry.repo = xstrdup(argv[i] + 7);
 		}
-		if (!strncmp(argv[i], "--page=", 7)) {
+		if (!prefixcmp(argv[i], "--page=")) {
 			ctx.qry.page = xstrdup(argv[i] + 7);
 		}
-		if (!strncmp(argv[i], "--head=", 7)) {
+		if (!prefixcmp(argv[i], "--head=")) {
 			ctx.qry.head = xstrdup(argv[i] + 7);
 			ctx.qry.has_symref = 1;
 		}
-		if (!strncmp(argv[i], "--sha1=", 7)) {
+		if (!prefixcmp(argv[i], "--sha1=")) {
 			ctx.qry.sha1 = xstrdup(argv[i] + 7);
 			ctx.qry.has_sha1 = 1;
 		}
-		if (!strncmp(argv[i], "--ofs=", 6)) {
+		if (!prefixcmp(argv[i], "--ofs=")) {
 			ctx.qry.ofs = atoi(argv[i] + 6);
 		}
-		if (!strncmp(argv[i], "--scan-tree=", 12) ||
-		    !strncmp(argv[i], "--scan-path=", 12)) {
+		if (!prefixcmp(argv[i], "--scan-tree=") ||
+		    !prefixcmp(argv[i], "--scan-path=")) {
 			/* HACK: the global snapshot bitmask defines the
 			 * set of allowed snapshot formats, but the config
 			 * file hasn't been parsed yet so the mask is
diff --git a/parsing.c b/parsing.c
index 248b6ee..d740d38 100644
--- a/parsing.c
+++ b/parsing.c
@@ -142,25 +142,25 @@ struct commitinfo *cgit_parse_commit(struct commit *commit)
 	if (p == NULL)
 		return ret;
 
-	if (strncmp(p, "tree ", 5))
+	if (prefixcmp(p, "tree "))
 		die("Bad commit: %s", sha1_to_hex(commit->object.sha1));
 	else
 		p += 46; // "tree " + hex[40] + "\n"
 
-	while (!strncmp(p, "parent ", 7))
+	while (!prefixcmp(p, "parent "))
 		p += 48; // "parent " + hex[40] + "\n"
 
-	if (p && !strncmp(p, "author ", 7)) {
+	if (p && !prefixcmp(p, "author ")) {
 		p = parse_user(p + 7, &ret->author, &ret->author_email,
 			&ret->author_date);
 	}
 
-	if (p && !strncmp(p, "committer ", 9)) {
+	if (p && !prefixcmp(p, "committer ")) {
 		p = parse_user(p + 9, &ret->committer, &ret->committer_email,
 			&ret->committer_date);
 	}
 
-	if (p && !strncmp(p, "encoding ", 9)) {
+	if (p && !prefixcmp(p, "encoding ")) {
 		p += 9;
 		t = strchr(p, '\n');
 		if (t) {
@@ -239,7 +239,7 @@ struct taginfo *cgit_parse_tag(struct tag *tag)
 		if (*p == '\n')
 			break;
 
-		if (!strncmp(p, "tagger ", 7)) {
+		if (!prefixcmp(p, "tagger ")) {
 			p = parse_user(p + 7, &ret->tagger, &ret->tagger_email,
 				&ret->tagger_date);
 		} else {
diff --git a/scan-tree.c b/scan-tree.c
index 1a2ea87..49de658 100644
--- a/scan-tree.c
+++ b/scan-tree.c
@@ -105,7 +105,7 @@ static void add_repo(const char *base, struct strbuf *path, repo_config_fn fn)
 		return;
 	strbuf_setlen(path, pathlen);
 
-	if (strncmp(base, path->buf, strlen(base)))
+	if (prefixcmp(path->buf, base))
 		strbuf_addbuf(&rel, path);
 	else
 		strbuf_addstr(&rel, path->buf + strlen(base) + 1);
diff --git a/ui-refs.c b/ui-refs.c
index 7af6fed..20c91e3 100644
--- a/ui-refs.c
+++ b/ui-refs.c
@@ -240,9 +240,9 @@ void cgit_print_refs()
 
 	html("<table class='list nowrap'>");
 
-	if (ctx.qry.path && !strncmp(ctx.qry.path, "heads", 5))
+	if (ctx.qry.path && !prefixcmp(ctx.qry.path, "heads"))
 		cgit_print_branches(0);
-	else if (ctx.qry.path && !strncmp(ctx.qry.path, "tags", 4))
+	else if (ctx.qry.path && !prefixcmp(ctx.qry.path, "tags"))
 		cgit_print_tags(0);
 	else {
 		cgit_print_branches(0);
diff --git a/ui-shared.c b/ui-shared.c
index d32852f..2c12de7 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -120,7 +120,7 @@ const char *cgit_repobasename(const char *reponame)
 	/* strip trailing slashes */
 	while (p && rvbuf[p] == '/') rvbuf[p--] = 0;
 	/* strip trailing .git */
-	if (p >= 3 && !strncmp(&rvbuf[p-3], ".git", 4)) {
+	if (p >= 3 && !prefixcmp(&rvbuf[p-3], ".git")) {
 		p -= 3; rvbuf[p--] = 0;
 	}
 	/* strip more trailing slashes if any */
diff --git a/ui-summary.c b/ui-summary.c
index 3a7c7a7..63a5a75 100644
--- a/ui-summary.c
+++ b/ui-summary.c
@@ -116,7 +116,7 @@ static char* append_readme_path(const char *filename, const char *ref, const cha
 	if (!ref) {
 		resolved_base = realpath(base_dir, NULL);
 		resolved_full = realpath(full_path, NULL);
-		if (!resolved_base || !resolved_full || strncmp(resolved_base, resolved_full, strlen(resolved_base))) {
+		if (!resolved_base || !resolved_full || prefixcmp(resolved_full, resolved_base)) {
 			free(full_path);
 			full_path = NULL;
 		}
-- 
1.8.5.2



More information about the CGit mailing list