cgit

commit 36bdb2171f7154fcdf1a24d38c8ce3bd7e448cb1

Author: Lukas Fleischer <cgit@cryptocrack.de>

Replace most uses of strncmp() with prefixcmp()

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@cryptocrack.de>

 cgit.c | 18 +++++++++---------
 parsing.c | 12 ++++++------
 scan-tree.c | 2 +-
 ui-refs.c | 4 ++--
 ui-shared.c | 2 +-
 ui-summary.c | 2 +-


diff --git a/cgit.c b/cgit.c
index 1f84da86a03bb483f36a75af0612dff557c7f003..e31962d43bc919c14e08f4ddbd4ff5e8cfc7a4b4 100644
--- a/cgit.c
+++ b/cgit.c
@@ -863,7 +863,7 @@ 	int i;
 	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 @@ 		}
 		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 248b6ee9d8ca8e60df28e25456e2ae04c901d34d..d740d383882dc8fb90142e97eb848c8eb749b88d 100644
--- a/parsing.c
+++ b/parsing.c
@@ -142,25 +142,25 @@
 	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 @@ 	while (p && *p) {
 		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 1a2ea87e5008afe396df231114fabb59df8ce1b2..49de6583ff55852b6bd5af1c063e21d03d7c1d5d 100644
--- a/scan-tree.c
+++ b/scan-tree.c
@@ -105,7 +105,7 @@ 	if (!stat(path->buf, &st))
 		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 7af6fed0ad0c85b6db64472330fcfcf06bc0a065..20c91e3c2401d7da4d6fa3c634623ef60f71e5fe 100644
--- a/ui-refs.c
+++ b/ui-refs.c
@@ -240,9 +240,9 @@ {
 
 	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 d32852f4d213a933be4c3ee9165bc40cbb5fb594..2c12de73d7cea9885f31fa58e0b5b325088b436e 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -120,7 +120,7 @@ 	p = strlen(rvbuf)-1;
 	/* 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 3a7c7a75b000c949845af8e46c69df3757c1c0a9..63a5a754ba0297e8775c666495a885d942cf1b0e 100644
--- a/ui-summary.c
+++ b/ui-summary.c
@@ -116,7 +116,7 @@ 	
 	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;
 		}