List for cgit developers and users
 help / color / mirror / Atom feed
* [PATCH 1/1] git: update for git 2.0
@ 2014-05-29 15:35 mail
  2014-06-28 13:15 ` Jason
  2014-06-29 16:24 ` Jason
  0 siblings, 2 replies; 8+ messages in thread
From: mail @ 2014-05-29 15:35 UTC (permalink / raw)


prefixcmp() and suffixcmp() have been remove, functionality is now
provided by starts_with() and ends_with(). Retrurn values have been
changed, so instead of just renaming we have to fix logic.
Everything else looks just fine.
---
 Makefile      |  2 +-
 cgit.c        | 26 +++++++++++++-------------
 git           |  2 +-
 parsing.c     | 12 ++++++------
 scan-tree.c   | 10 +++++++---
 ui-clone.c    |  2 +-
 ui-log.c      |  8 ++++----
 ui-refs.c     |  6 +++---
 ui-repolist.c |  2 +-
 ui-shared.c   |  2 +-
 ui-snapshot.c |  4 ++--
 ui-summary.c  |  2 +-
 12 files changed, 41 insertions(+), 37 deletions(-)

diff --git a/Makefile b/Makefile
index e6ec0dc..0223a17 100644
--- a/Makefile
+++ b/Makefile
@@ -14,7 +14,7 @@ htmldir = $(docdir)
 pdfdir = $(docdir)
 mandir = $(prefix)/share/man
 SHA1_HEADER = <openssl/sha.h>
-GIT_VER = 1.9.2
+GIT_VER = 2.0.0
 GIT_URL = https://www.kernel.org/pub/software/scm/git/git-$(GIT_VER).tar.gz
 INSTALL = install
 COPYTREE = cp -r
diff --git a/cgit.c b/cgit.c
index f488ebf..20f6e27 100644
--- a/cgit.c
+++ b/cgit.c
@@ -69,7 +69,7 @@ static void repo_config(struct cgit_repo *repo, const char *name, const char *va
 		repo->max_stats = cgit_find_stats_period(value, NULL);
 	else if (!strcmp(name, "module-link"))
 		repo->module_link= xstrdup(value);
-	else if (!prefixcmp(name, "module-link.")) {
+	else if (starts_with(name, "module-link.")) {
 		item = string_list_append(&repo->submodules, xstrdup(name + 12));
 		item->util = xstrdup(value);
 	} else if (!strcmp(name, "section"))
@@ -102,7 +102,7 @@ static void config_cb(const char *name, const char *value)
 		ctx.repo = cgit_add_repo(value);
 	else if (ctx.repo && !strcmp(name, "repo.path"))
 		ctx.repo->path = trim_end(value, '/');
-	else if (ctx.repo && !prefixcmp(name, "repo."))
+	else if (ctx.repo && starts_with(name, "repo."))
 		repo_config(ctx.repo, name + 5, value);
 	else if (!strcmp(name, "readme") && value != NULL)
 		string_list_append(&ctx.cfg.readme, xstrdup(value));
@@ -264,7 +264,7 @@ static void config_cb(const char *name, const char *value)
 			ctx.cfg.branch_sort = 1;
 		if (!strcmp(value, "name"))
 			ctx.cfg.branch_sort = 0;
-	} else if (!prefixcmp(name, "mimetype."))
+	} else if (starts_with(name, "mimetype."))
 		add_mimetype(name + 9, value);
 	else if (!strcmp(name, "include"))
 		parse_configfile(expand_macros(value), config_cb);
@@ -454,7 +454,7 @@ static char *guess_defbranch(void)
 	unsigned char sha1[20];
 
 	ref = resolve_ref_unsafe("HEAD", sha1, 0, NULL);
-	if (!ref || prefixcmp(ref, "refs/heads/"))
+	if (!ref || !starts_with(ref, "refs/heads/"))
 		return "master";
 	return xstrdup(ref + 11);
 }
@@ -941,28 +941,28 @@ static void cgit_parse_args(int argc, const char **argv)
 
 			exit(0);
 		}
-		if (!prefixcmp(argv[i], "--cache=")) {
+		if (starts_with(argv[i], "--cache=")) {
 			ctx.cfg.cache_root = xstrdup(argv[i] + 8);
 		} else if (!strcmp(argv[i], "--nocache")) {
 			ctx.cfg.nocache = 1;
 		} else if (!strcmp(argv[i], "--nohttp")) {
 			ctx.env.no_http = "1";
-		} else if (!prefixcmp(argv[i], "--query=")) {
+		} else if (starts_with(argv[i], "--query=")) {
 			ctx.qry.raw = xstrdup(argv[i] + 8);
-		} else if (!prefixcmp(argv[i], "--repo=")) {
+		} else if (starts_with(argv[i], "--repo=")) {
 			ctx.qry.repo = xstrdup(argv[i] + 7);
-		} else if (!prefixcmp(argv[i], "--page=")) {
+		} else if (starts_with(argv[i], "--page=")) {
 			ctx.qry.page = xstrdup(argv[i] + 7);
-		} else if (!prefixcmp(argv[i], "--head=")) {
+		} else if (starts_with(argv[i], "--head=")) {
 			ctx.qry.head = xstrdup(argv[i] + 7);
 			ctx.qry.has_symref = 1;
-		} else if (!prefixcmp(argv[i], "--sha1=")) {
+		} else if (starts_with(argv[i], "--sha1=")) {
 			ctx.qry.sha1 = xstrdup(argv[i] + 7);
 			ctx.qry.has_sha1 = 1;
-		} else if (!prefixcmp(argv[i], "--ofs=")) {
+		} else if (starts_with(argv[i], "--ofs=")) {
 			ctx.qry.ofs = atoi(argv[i] + 6);
-		} else if (!prefixcmp(argv[i], "--scan-tree=") ||
-		           !prefixcmp(argv[i], "--scan-path=")) {
+		} else if (starts_with(argv[i], "--scan-tree=") ||
+		           starts_with(argv[i], "--scan-path=")) {
 			/*
 			 * HACK: The global snapshot bit mask defines the set
 			 * of allowed snapshot formats, but the config file
diff --git a/git b/git
index 0bc85ab..e156455 160000
--- a/git
+++ b/git
@@ -1 +1 @@
-Subproject commit 0bc85abb7aa9b24b093253018801a0fb43d01122
+Subproject commit e156455ea49124c140a67623f22a393db62d5d98
diff --git a/parsing.c b/parsing.c
index 5b4b1f4..073f46f 100644
--- a/parsing.c
+++ b/parsing.c
@@ -147,25 +147,25 @@ struct commitinfo *cgit_parse_commit(struct commit *commit)
 	if (p == NULL)
 		return ret;
 
-	if (prefixcmp(p, "tree "))
+	if (!starts_with(p, "tree "))
 		die("Bad commit: %s", sha1_to_hex(commit->object.sha1));
 	else
 		p += 46; // "tree " + hex[40] + "\n"
 
-	while (!prefixcmp(p, "parent "))
+	while (starts_with(p, "parent "))
 		p += 48; // "parent " + hex[40] + "\n"
 
-	if (p && !prefixcmp(p, "author ")) {
+	if (p && starts_with(p, "author ")) {
 		p = parse_user(p + 7, &ret->author, &ret->author_email,
 			&ret->author_date);
 	}
 
-	if (p && !prefixcmp(p, "committer ")) {
+	if (p && starts_with(p, "committer ")) {
 		p = parse_user(p + 10, &ret->committer, &ret->committer_email,
 			&ret->committer_date);
 	}
 
-	if (p && !prefixcmp(p, "encoding ")) {
+	if (p && starts_with(p, "encoding ")) {
 		p += 9;
 		t = strchr(p, '\n');
 		if (t) {
@@ -244,7 +244,7 @@ struct taginfo *cgit_parse_tag(struct tag *tag)
 		if (*p == '\n')
 			break;
 
-		if (!prefixcmp(p, "tagger ")) {
+		if (starts_with(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 49de658..87fa0c7 100644
--- a/scan-tree.c
+++ b/scan-tree.c
@@ -61,7 +61,7 @@ static int gitconfig_config(const char *key, const char *value, void *cb)
 		config_fn(repo, "desc", value);
 	else if (!strcmp(key, "gitweb.category"))
 		config_fn(repo, "section", value);
-	else if (!prefixcmp(key, "cgit."))
+	else if (starts_with(key, "cgit."))
 		config_fn(repo, key + 5, value);
 
 	return 0;
@@ -105,7 +105,7 @@ static void add_repo(const char *base, struct strbuf *path, repo_config_fn fn)
 		return;
 	strbuf_setlen(path, pathlen);
 
-	if (prefixcmp(path->buf, base))
+	if (!starts_with(path->buf, base))
 		strbuf_addbuf(&rel, path);
 	else
 		strbuf_addstr(&rel, path->buf + strlen(base) + 1);
@@ -115,6 +115,7 @@ static void add_repo(const char *base, struct strbuf *path, repo_config_fn fn)
 	else if (rel.len && rel.buf[rel.len - 1] == '/')
 		strbuf_setlen(&rel, rel.len - 1);
 
+	fprintf(stderr, "add_repo(): %s\n", rel.buf);
 	repo = cgit_add_repo(rel.buf);
 	config_fn = fn;
 	if (ctx.cfg.enable_git_config) {
@@ -161,7 +162,8 @@ static void add_repo(const char *base, struct strbuf *path, repo_config_fn fn)
 			*slash = '\0';
 			repo->section = xstrdup(rel.buf);
 			*slash = '/';
-			if (!prefixcmp(repo->name, repo->section)) {
+			fprintf(stderr, "repo->name %s, repo->section %s\n", repo->name, repo->section);
+			if (starts_with(repo->name, repo->section)) {
 				repo->name += strlen(repo->section);
 				if (*repo->name == '/')
 					repo->name++;
@@ -184,6 +186,7 @@ static void scan_path(const char *base, const char *path, repo_config_fn fn)
 	size_t pathlen = strlen(path);
 	struct stat st;
 
+	fprintf(stderr, "scan_path(): %s\n", path);
 	if (!dir) {
 		fprintf(stderr, "Error opening directory %s: %s (%d)\n",
 			path, strerror(errno), errno);
@@ -192,6 +195,7 @@ static void scan_path(const char *base, const char *path, repo_config_fn fn)
 
 	strbuf_add(&pathbuf, path, strlen(path));
 	if (is_git_dir(pathbuf.buf)) {
+		fprintf(stderr, "scan_path() is_git_dir: %s\n", path);
 		add_repo(base, &pathbuf, fn);
 		goto end;
 	}
diff --git a/ui-clone.c b/ui-clone.c
index d25553b..a4ffd6e 100644
--- a/ui-clone.c
+++ b/ui-clone.c
@@ -63,7 +63,7 @@ static void send_file(char *path)
 	}
 	ctx.page.mimetype = "application/octet-stream";
 	ctx.page.filename = path;
-	if (prefixcmp(ctx.repo->path, path))
+	if (!starts_with(ctx.repo->path, path))
 		ctx.page.filename += strlen(ctx.repo->path) + 1;
 	cgit_print_http_headers();
 	html_include(path);
diff --git a/ui-log.c b/ui-log.c
index 499534c..2de8017 100644
--- a/ui-log.c
+++ b/ui-log.c
@@ -63,21 +63,21 @@ void show_commit_decorations(struct commit *commit)
 	deco = lookup_decoration(&name_decoration, &commit->object);
 	html("<span class='decoration'>");
 	while (deco) {
-		if (!prefixcmp(deco->name, "refs/heads/")) {
+		if (starts_with(deco->name, "refs/heads/")) {
 			strncpy(buf, deco->name + 11, sizeof(buf) - 1);
 			cgit_log_link(buf, NULL, "branch-deco", buf, NULL,
 				      ctx.qry.vpath, 0, NULL, NULL,
 				      ctx.qry.showmsg);
 		}
-		else if (!prefixcmp(deco->name, "tag: refs/tags/")) {
+		else if (starts_with(deco->name, "tag: refs/tags/")) {
 			strncpy(buf, deco->name + 15, sizeof(buf) - 1);
 			cgit_tag_link(buf, NULL, "tag-deco", ctx.qry.head, buf);
 		}
-		else if (!prefixcmp(deco->name, "refs/tags/")) {
+		else if (starts_with(deco->name, "refs/tags/")) {
 			strncpy(buf, deco->name + 10, sizeof(buf) - 1);
 			cgit_tag_link(buf, NULL, "tag-deco", ctx.qry.head, buf);
 		}
-		else if (!prefixcmp(deco->name, "refs/remotes/")) {
+		else if (starts_with(deco->name, "refs/remotes/")) {
 			if (!ctx.repo->enable_remote_branches)
 				goto next;
 			strncpy(buf, deco->name + 13, sizeof(buf) - 1);
diff --git a/ui-refs.c b/ui-refs.c
index 0da063f..7e58737 100644
--- a/ui-refs.c
+++ b/ui-refs.c
@@ -101,7 +101,7 @@ static void print_tag_downloads(const struct cgit_repo *repo, const char *ref)
 		return;
 
 	basename = cgit_repobasename(repo->url);
-	if (prefixcmp(ref, basename) != 0) {
+	if (!starts_with(ref, basename)) {
 		if ((ref[0] == 'v' || ref[0] == 'V') && isdigit(ref[1]))
 			ref++;
 		if (isdigit(ref[0])) {
@@ -239,9 +239,9 @@ void cgit_print_refs()
 
 	html("<table class='list nowrap'>");
 
-	if (ctx.qry.path && !prefixcmp(ctx.qry.path, "heads"))
+	if (ctx.qry.path && starts_with(ctx.qry.path, "heads"))
 		cgit_print_branches(0);
-	else if (ctx.qry.path && !prefixcmp(ctx.qry.path, "tags"))
+	else if (ctx.qry.path && starts_with(ctx.qry.path, "tags"))
 		cgit_print_tags(0);
 	else {
 		cgit_print_branches(0);
diff --git a/ui-repolist.c b/ui-repolist.c
index 477a949..c2bcce1 100644
--- a/ui-repolist.c
+++ b/ui-repolist.c
@@ -99,7 +99,7 @@ static int is_in_url(struct cgit_repo *repo)
 {
 	if (!ctx.qry.url)
 		return 1;
-	if (repo->url && !prefixcmp(repo->url, ctx.qry.url))
+	if (repo->url && starts_with(repo->url, ctx.qry.url))
 		return 1;
 	return 0;
 }
diff --git a/ui-shared.c b/ui-shared.c
index 1ede2b0..9dde0a3 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -128,7 +128,7 @@ const char *cgit_repobasename(const char *reponame)
 	/* strip trailing slashes */
 	while (p && rvbuf[p] == '/') rvbuf[p--] = 0;
 	/* strip trailing .git */
-	if (p >= 3 && !prefixcmp(&rvbuf[p-3], ".git")) {
+	if (p >= 3 && starts_with(&rvbuf[p-3], ".git")) {
 		p -= 3; rvbuf[p--] = 0;
 	}
 	/* strip more trailing slashes if any */
diff --git a/ui-snapshot.c b/ui-snapshot.c
index 3107b05..ea77eb4 100644
--- a/ui-snapshot.c
+++ b/ui-snapshot.c
@@ -99,7 +99,7 @@ static const struct cgit_snapshot_format *get_format(const char *filename)
 	const struct cgit_snapshot_format *fmt;
 
 	for (fmt = cgit_snapshot_formats; fmt->suffix; fmt++) {
-		if (!suffixcmp(filename, fmt->suffix))
+		if (ends_with(filename, fmt->suffix))
 			return fmt;
 	}
 	return NULL;
@@ -151,7 +151,7 @@ static const char *get_ref_from_filename(const char *url, const char *filename,
 		goto out;
 
 	reponame = cgit_repobasename(url);
-	if (prefixcmp(snapshot.buf, reponame) == 0) {
+	if (starts_with(snapshot.buf, reponame)) {
 		const char *new_start = snapshot.buf;
 		new_start += strlen(reponame);
 		while (new_start && (*new_start == '-' || *new_start == '_'))
diff --git a/ui-summary.c b/ui-summary.c
index df99ce1..3728c3e 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 || prefixcmp(resolved_full, resolved_base)) {
+		if (!resolved_base || !resolved_full || !starts_with(resolved_full, resolved_base)) {
 			free(full_path);
 			full_path = NULL;
 		}
-- 
1.9.3



^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/1] git: update for git 2.0
  2014-05-29 15:35 [PATCH 1/1] git: update for git 2.0 mail
@ 2014-06-28 13:15 ` Jason
  2014-06-28 13:45   ` list
  2014-06-29 16:24 ` Jason
  1 sibling, 1 reply; 8+ messages in thread
From: Jason @ 2014-06-28 13:15 UTC (permalink / raw)


Merged, thanks!

If you want to send an addition patch layering on other 2.0 changes
(strip_prefix and such), feel free -- I'll be merging things.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.zx2c4.com/pipermail/cgit/attachments/20140628/c8d11a15/attachment.html>


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/1] git: update for git 2.0
  2014-06-28 13:15 ` Jason
@ 2014-06-28 13:45   ` list
  0 siblings, 0 replies; 8+ messages in thread
From: list @ 2014-06-28 13:45 UTC (permalink / raw)


"Jason A. Donenfeld" <Jason at zx2c4.com> on Sat, 2014/06/28 15:15:
> Merged, thanks!

Thanks!

> If you want to send an addition patch layering on other 2.0 changes
> (strip_prefix and such), feel free -- I'll be merging things.

I think Lukas had planned some changes. Lukas, are you going to send in
patches?
-- 
main(a){char*c=/*    Schoene Gruesse                         */"B?IJj;MEH"
"CX:;",b;for(a/*    Chris           get my mail address:    */=0;b=c[a++];)
putchar(b-1/(/*               gcc -o sig sig.c && ./sig    */b/42*2-3)*42);}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: not available
URL: <http://lists.zx2c4.com/pipermail/cgit/attachments/20140628/d7aa4e7e/attachment.asc>


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/1] git: update for git 2.0
  2014-05-29 15:35 [PATCH 1/1] git: update for git 2.0 mail
  2014-06-28 13:15 ` Jason
@ 2014-06-29 16:24 ` Jason
  1 sibling, 0 replies; 8+ messages in thread
From: Jason @ 2014-06-29 16:24 UTC (permalink / raw)


You've added a bunch of fprintf(stderr, "debugging blah...") in this commit
that I missed the first time through. Could you post a patch which removes
these?

--
Sent from my telephone.
On May 29, 2014 5:53 PM, "Christian Hesse" <mail at eworm.de> wrote:

> prefixcmp() and suffixcmp() have been remove, functionality is now
> provided by starts_with() and ends_with(). Retrurn values have been
> changed, so instead of just renaming we have to fix logic.
> Everything else looks just fine.
> ---
>  Makefile      |  2 +-
>  cgit.c        | 26 +++++++++++++-------------
>  git           |  2 +-
>  parsing.c     | 12 ++++++------
>  scan-tree.c   | 10 +++++++---
>  ui-clone.c    |  2 +-
>  ui-log.c      |  8 ++++----
>  ui-refs.c     |  6 +++---
>  ui-repolist.c |  2 +-
>  ui-shared.c   |  2 +-
>  ui-snapshot.c |  4 ++--
>  ui-summary.c  |  2 +-
>  12 files changed, 41 insertions(+), 37 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index e6ec0dc..0223a17 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -14,7 +14,7 @@ htmldir = $(docdir)
>  pdfdir = $(docdir)
>  mandir = $(prefix)/share/man
>  SHA1_HEADER = <openssl/sha.h>
> -GIT_VER = 1.9.2
> +GIT_VER = 2.0.0
>  GIT_URL =
> https://www.kernel.org/pub/software/scm/git/git-$(GIT_VER).tar.gz
>  INSTALL = install
>  COPYTREE = cp -r
> diff --git a/cgit.c b/cgit.c
> index f488ebf..20f6e27 100644
> --- a/cgit.c
> +++ b/cgit.c
> @@ -69,7 +69,7 @@ static void repo_config(struct cgit_repo *repo, const
> char *name, const char *va
>                 repo->max_stats = cgit_find_stats_period(value, NULL);
>         else if (!strcmp(name, "module-link"))
>                 repo->module_link= xstrdup(value);
> -       else if (!prefixcmp(name, "module-link.")) {
> +       else if (starts_with(name, "module-link.")) {
>                 item = string_list_append(&repo->submodules, xstrdup(name
> + 12));
>                 item->util = xstrdup(value);
>         } else if (!strcmp(name, "section"))
> @@ -102,7 +102,7 @@ static void config_cb(const char *name, const char
> *value)
>                 ctx.repo = cgit_add_repo(value);
>         else if (ctx.repo && !strcmp(name, "repo.path"))
>                 ctx.repo->path = trim_end(value, '/');
> -       else if (ctx.repo && !prefixcmp(name, "repo."))
> +       else if (ctx.repo && starts_with(name, "repo."))
>                 repo_config(ctx.repo, name + 5, value);
>         else if (!strcmp(name, "readme") && value != NULL)
>                 string_list_append(&ctx.cfg.readme, xstrdup(value));
> @@ -264,7 +264,7 @@ static void config_cb(const char *name, const char
> *value)
>                         ctx.cfg.branch_sort = 1;
>                 if (!strcmp(value, "name"))
>                         ctx.cfg.branch_sort = 0;
> -       } else if (!prefixcmp(name, "mimetype."))
> +       } else if (starts_with(name, "mimetype."))
>                 add_mimetype(name + 9, value);
>         else if (!strcmp(name, "include"))
>                 parse_configfile(expand_macros(value), config_cb);
> @@ -454,7 +454,7 @@ static char *guess_defbranch(void)
>         unsigned char sha1[20];
>
>         ref = resolve_ref_unsafe("HEAD", sha1, 0, NULL);
> -       if (!ref || prefixcmp(ref, "refs/heads/"))
> +       if (!ref || !starts_with(ref, "refs/heads/"))
>                 return "master";
>         return xstrdup(ref + 11);
>  }
> @@ -941,28 +941,28 @@ static void cgit_parse_args(int argc, const char
> **argv)
>
>                         exit(0);
>                 }
> -               if (!prefixcmp(argv[i], "--cache=")) {
> +               if (starts_with(argv[i], "--cache=")) {
>                         ctx.cfg.cache_root = xstrdup(argv[i] + 8);
>                 } else if (!strcmp(argv[i], "--nocache")) {
>                         ctx.cfg.nocache = 1;
>                 } else if (!strcmp(argv[i], "--nohttp")) {
>                         ctx.env.no_http = "1";
> -               } else if (!prefixcmp(argv[i], "--query=")) {
> +               } else if (starts_with(argv[i], "--query=")) {
>                         ctx.qry.raw = xstrdup(argv[i] + 8);
> -               } else if (!prefixcmp(argv[i], "--repo=")) {
> +               } else if (starts_with(argv[i], "--repo=")) {
>                         ctx.qry.repo = xstrdup(argv[i] + 7);
> -               } else if (!prefixcmp(argv[i], "--page=")) {
> +               } else if (starts_with(argv[i], "--page=")) {
>                         ctx.qry.page = xstrdup(argv[i] + 7);
> -               } else if (!prefixcmp(argv[i], "--head=")) {
> +               } else if (starts_with(argv[i], "--head=")) {
>                         ctx.qry.head = xstrdup(argv[i] + 7);
>                         ctx.qry.has_symref = 1;
> -               } else if (!prefixcmp(argv[i], "--sha1=")) {
> +               } else if (starts_with(argv[i], "--sha1=")) {
>                         ctx.qry.sha1 = xstrdup(argv[i] + 7);
>                         ctx.qry.has_sha1 = 1;
> -               } else if (!prefixcmp(argv[i], "--ofs=")) {
> +               } else if (starts_with(argv[i], "--ofs=")) {
>                         ctx.qry.ofs = atoi(argv[i] + 6);
> -               } else if (!prefixcmp(argv[i], "--scan-tree=") ||
> -                          !prefixcmp(argv[i], "--scan-path=")) {
> +               } else if (starts_with(argv[i], "--scan-tree=") ||
> +                          starts_with(argv[i], "--scan-path=")) {
>                         /*
>                          * HACK: The global snapshot bit mask defines the
> set
>                          * of allowed snapshot formats, but the config file
> diff --git a/git b/git
> index 0bc85ab..e156455 160000
> --- a/git
> +++ b/git
> @@ -1 +1 @@
> -Subproject commit 0bc85abb7aa9b24b093253018801a0fb43d01122
> +Subproject commit e156455ea49124c140a67623f22a393db62d5d98
> diff --git a/parsing.c b/parsing.c
> index 5b4b1f4..073f46f 100644
> --- a/parsing.c
> +++ b/parsing.c
> @@ -147,25 +147,25 @@ struct commitinfo *cgit_parse_commit(struct commit
> *commit)
>         if (p == NULL)
>                 return ret;
>
> -       if (prefixcmp(p, "tree "))
> +       if (!starts_with(p, "tree "))
>                 die("Bad commit: %s", sha1_to_hex(commit->object.sha1));
>         else
>                 p += 46; // "tree " + hex[40] + "\n"
>
> -       while (!prefixcmp(p, "parent "))
> +       while (starts_with(p, "parent "))
>                 p += 48; // "parent " + hex[40] + "\n"
>
> -       if (p && !prefixcmp(p, "author ")) {
> +       if (p && starts_with(p, "author ")) {
>                 p = parse_user(p + 7, &ret->author, &ret->author_email,
>                         &ret->author_date);
>         }
>
> -       if (p && !prefixcmp(p, "committer ")) {
> +       if (p && starts_with(p, "committer ")) {
>                 p = parse_user(p + 10, &ret->committer,
> &ret->committer_email,
>                         &ret->committer_date);
>         }
>
> -       if (p && !prefixcmp(p, "encoding ")) {
> +       if (p && starts_with(p, "encoding ")) {
>                 p += 9;
>                 t = strchr(p, '\n');
>                 if (t) {
> @@ -244,7 +244,7 @@ struct taginfo *cgit_parse_tag(struct tag *tag)
>                 if (*p == '\n')
>                         break;
>
> -               if (!prefixcmp(p, "tagger ")) {
> +               if (starts_with(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 49de658..87fa0c7 100644
> --- a/scan-tree.c
> +++ b/scan-tree.c
> @@ -61,7 +61,7 @@ static int gitconfig_config(const char *key, const char
> *value, void *cb)
>                 config_fn(repo, "desc", value);
>         else if (!strcmp(key, "gitweb.category"))
>                 config_fn(repo, "section", value);
> -       else if (!prefixcmp(key, "cgit."))
> +       else if (starts_with(key, "cgit."))
>                 config_fn(repo, key + 5, value);
>
>         return 0;
> @@ -105,7 +105,7 @@ static void add_repo(const char *base, struct strbuf
> *path, repo_config_fn fn)
>                 return;
>         strbuf_setlen(path, pathlen);
>
> -       if (prefixcmp(path->buf, base))
> +       if (!starts_with(path->buf, base))
>                 strbuf_addbuf(&rel, path);
>         else
>                 strbuf_addstr(&rel, path->buf + strlen(base) + 1);
> @@ -115,6 +115,7 @@ static void add_repo(const char *base, struct strbuf
> *path, repo_config_fn fn)
>         else if (rel.len && rel.buf[rel.len - 1] == '/')
>                 strbuf_setlen(&rel, rel.len - 1);
>
> +       fprintf(stderr, "add_repo(): %s\n", rel.buf);
>         repo = cgit_add_repo(rel.buf);
>         config_fn = fn;
>         if (ctx.cfg.enable_git_config) {
> @@ -161,7 +162,8 @@ static void add_repo(const char *base, struct strbuf
> *path, repo_config_fn fn)
>                         *slash = '\0';
>                         repo->section = xstrdup(rel.buf);
>                         *slash = '/';
> -                       if (!prefixcmp(repo->name, repo->section)) {
> +                       fprintf(stderr, "repo->name %s, repo->section
> %s\n", repo->name, repo->section);
> +                       if (starts_with(repo->name, repo->section)) {
>                                 repo->name += strlen(repo->section);
>                                 if (*repo->name == '/')
>                                         repo->name++;
> @@ -184,6 +186,7 @@ static void scan_path(const char *base, const char
> *path, repo_config_fn fn)
>         size_t pathlen = strlen(path);
>         struct stat st;
>
> +       fprintf(stderr, "scan_path(): %s\n", path);
>         if (!dir) {
>                 fprintf(stderr, "Error opening directory %s: %s (%d)\n",
>                         path, strerror(errno), errno);
> @@ -192,6 +195,7 @@ static void scan_path(const char *base, const char
> *path, repo_config_fn fn)
>
>         strbuf_add(&pathbuf, path, strlen(path));
>         if (is_git_dir(pathbuf.buf)) {
> +               fprintf(stderr, "scan_path() is_git_dir: %s\n", path);
>                 add_repo(base, &pathbuf, fn);
>                 goto end;
>         }
> diff --git a/ui-clone.c b/ui-clone.c
> index d25553b..a4ffd6e 100644
> --- a/ui-clone.c
> +++ b/ui-clone.c
> @@ -63,7 +63,7 @@ static void send_file(char *path)
>         }
>         ctx.page.mimetype = "application/octet-stream";
>         ctx.page.filename = path;
> -       if (prefixcmp(ctx.repo->path, path))
> +       if (!starts_with(ctx.repo->path, path))
>                 ctx.page.filename += strlen(ctx.repo->path) + 1;
>         cgit_print_http_headers();
>         html_include(path);
> diff --git a/ui-log.c b/ui-log.c
> index 499534c..2de8017 100644
> --- a/ui-log.c
> +++ b/ui-log.c
> @@ -63,21 +63,21 @@ void show_commit_decorations(struct commit *commit)
>         deco = lookup_decoration(&name_decoration, &commit->object);
>         html("<span class='decoration'>");
>         while (deco) {
> -               if (!prefixcmp(deco->name, "refs/heads/")) {
> +               if (starts_with(deco->name, "refs/heads/")) {
>                         strncpy(buf, deco->name + 11, sizeof(buf) - 1);
>                         cgit_log_link(buf, NULL, "branch-deco", buf, NULL,
>                                       ctx.qry.vpath, 0, NULL, NULL,
>                                       ctx.qry.showmsg);
>                 }
> -               else if (!prefixcmp(deco->name, "tag: refs/tags/")) {
> +               else if (starts_with(deco->name, "tag: refs/tags/")) {
>                         strncpy(buf, deco->name + 15, sizeof(buf) - 1);
>                         cgit_tag_link(buf, NULL, "tag-deco", ctx.qry.head,
> buf);
>                 }
> -               else if (!prefixcmp(deco->name, "refs/tags/")) {
> +               else if (starts_with(deco->name, "refs/tags/")) {
>                         strncpy(buf, deco->name + 10, sizeof(buf) - 1);
>                         cgit_tag_link(buf, NULL, "tag-deco", ctx.qry.head,
> buf);
>                 }
> -               else if (!prefixcmp(deco->name, "refs/remotes/")) {
> +               else if (starts_with(deco->name, "refs/remotes/")) {
>                         if (!ctx.repo->enable_remote_branches)
>                                 goto next;
>                         strncpy(buf, deco->name + 13, sizeof(buf) - 1);
> diff --git a/ui-refs.c b/ui-refs.c
> index 0da063f..7e58737 100644
> --- a/ui-refs.c
> +++ b/ui-refs.c
> @@ -101,7 +101,7 @@ static void print_tag_downloads(const struct cgit_repo
> *repo, const char *ref)
>                 return;
>
>         basename = cgit_repobasename(repo->url);
> -       if (prefixcmp(ref, basename) != 0) {
> +       if (!starts_with(ref, basename)) {
>                 if ((ref[0] == 'v' || ref[0] == 'V') && isdigit(ref[1]))
>                         ref++;
>                 if (isdigit(ref[0])) {
> @@ -239,9 +239,9 @@ void cgit_print_refs()
>
>         html("<table class='list nowrap'>");
>
> -       if (ctx.qry.path && !prefixcmp(ctx.qry.path, "heads"))
> +       if (ctx.qry.path && starts_with(ctx.qry.path, "heads"))
>                 cgit_print_branches(0);
> -       else if (ctx.qry.path && !prefixcmp(ctx.qry.path, "tags"))
> +       else if (ctx.qry.path && starts_with(ctx.qry.path, "tags"))
>                 cgit_print_tags(0);
>         else {
>                 cgit_print_branches(0);
> diff --git a/ui-repolist.c b/ui-repolist.c
> index 477a949..c2bcce1 100644
> --- a/ui-repolist.c
> +++ b/ui-repolist.c
> @@ -99,7 +99,7 @@ static int is_in_url(struct cgit_repo *repo)
>  {
>         if (!ctx.qry.url)
>                 return 1;
> -       if (repo->url && !prefixcmp(repo->url, ctx.qry.url))
> +       if (repo->url && starts_with(repo->url, ctx.qry.url))
>                 return 1;
>         return 0;
>  }
> diff --git a/ui-shared.c b/ui-shared.c
> index 1ede2b0..9dde0a3 100644
> --- a/ui-shared.c
> +++ b/ui-shared.c
> @@ -128,7 +128,7 @@ const char *cgit_repobasename(const char *reponame)
>         /* strip trailing slashes */
>         while (p && rvbuf[p] == '/') rvbuf[p--] = 0;
>         /* strip trailing .git */
> -       if (p >= 3 && !prefixcmp(&rvbuf[p-3], ".git")) {
> +       if (p >= 3 && starts_with(&rvbuf[p-3], ".git")) {
>                 p -= 3; rvbuf[p--] = 0;
>         }
>         /* strip more trailing slashes if any */
> diff --git a/ui-snapshot.c b/ui-snapshot.c
> index 3107b05..ea77eb4 100644
> --- a/ui-snapshot.c
> +++ b/ui-snapshot.c
> @@ -99,7 +99,7 @@ static const struct cgit_snapshot_format
> *get_format(const char *filename)
>         const struct cgit_snapshot_format *fmt;
>
>         for (fmt = cgit_snapshot_formats; fmt->suffix; fmt++) {
> -               if (!suffixcmp(filename, fmt->suffix))
> +               if (ends_with(filename, fmt->suffix))
>                         return fmt;
>         }
>         return NULL;
> @@ -151,7 +151,7 @@ static const char *get_ref_from_filename(const char
> *url, const char *filename,
>                 goto out;
>
>         reponame = cgit_repobasename(url);
> -       if (prefixcmp(snapshot.buf, reponame) == 0) {
> +       if (starts_with(snapshot.buf, reponame)) {
>                 const char *new_start = snapshot.buf;
>                 new_start += strlen(reponame);
>                 while (new_start && (*new_start == '-' || *new_start ==
> '_'))
> diff --git a/ui-summary.c b/ui-summary.c
> index df99ce1..3728c3e 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 ||
> prefixcmp(resolved_full, resolved_base)) {
> +               if (!resolved_base || !resolved_full ||
> !starts_with(resolved_full, resolved_base)) {
>                         free(full_path);
>                         full_path = NULL;
>                 }
> --
> 1.9.3
>
> _______________________________________________
> CGit mailing list
> CGit at lists.zx2c4.com
> http://lists.zx2c4.com/mailman/listinfo/cgit
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.zx2c4.com/pipermail/cgit/attachments/20140629/02f9f06b/attachment-0001.html>


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/1] git: update for git 2.0
  2014-05-04 20:03 ` cgit
@ 2014-05-29 15:00   ` list
  0 siblings, 0 replies; 8+ messages in thread
From: list @ 2014-05-29 15:00 UTC (permalink / raw)


Lukas Fleischer <cgit at cryptocrack.de> on Sun, 2014/05/04 22:03:
> On Sun, 04 May 2014 at 21:31:39, Christian Hesse wrote:
> > prefixcmp() and suffixcmp() have been remove, functionality is now
> > provided by starts_with() and ends_with(). Retrurn values have been
> > changed, so instead of just renaming we have to fix logic.
> > Everything else looks just fine.
> > ---
> >  Makefile      |  4 ++--
> >  cgit.c        | 26 +++++++++++++-------------
> >  git           |  2 +-
> >  parsing.c     | 12 ++++++------
> >  scan-tree.c   | 10 +++++++---
> >  ui-clone.c    |  2 +-
> >  ui-log.c      |  8 ++++----
> >  ui-refs.c     |  6 +++---
> >  ui-repolist.c |  2 +-
> >  ui-shared.c   |  2 +-
> >  ui-snapshot.c |  4 ++--
> >  ui-summary.c  |  2 +-
> >  12 files changed, 42 insertions(+), 38 deletions(-)
> > 
> > [...]
> > -       else if (!prefixcmp(name, "module-link.")) {
> > +       else if (starts_with(name, "module-link.")) {
> >                 item = string_list_append(&repo->submodules, xstrdup(name
> > + 12));
> 
> My original intention was to replace most of these with skip_prefix()
> (well, I actually wanted to wait for strip_prefix() to replace
> skip_prefix() but that didn't make it into Git 2.0). It would be great
> to see most of the starts_with() invocations (followed by hardcoded
> lengths) replaced by skip_prefix() but if you don't want to do it, I
> guess this change is okay for now.

I would suggest going the simplest transition first, then make enhancements
in a later commit. Replying with a patch for final git v2.0.0.
-- 
main(a){char*c=/*    Schoene Gruesse                         */"C7?Bj;MEH"
"CX:;",b;for(a/*    Chris           get my mail address:    */=0;b=c[a++];)
putchar(b-1/(/*               gcc -o sig sig.c && ./sig    */b/42*2-3)*42);}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 490 bytes
Desc: not available
URL: <http://lists.zx2c4.com/pipermail/cgit/attachments/20140529/5afbc0ef/attachment.asc>


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/1] git: update for git 2.0
  2014-05-04 19:31 mail
  2014-05-04 19:34 ` list
@ 2014-05-04 20:03 ` cgit
  2014-05-29 15:00   ` list
  1 sibling, 1 reply; 8+ messages in thread
From: cgit @ 2014-05-04 20:03 UTC (permalink / raw)


On Sun, 04 May 2014 at 21:31:39, Christian Hesse wrote:
> prefixcmp() and suffixcmp() have been remove, functionality is now
> provided by starts_with() and ends_with(). Retrurn values have been
> changed, so instead of just renaming we have to fix logic.
> Everything else looks just fine.
> ---
>  Makefile      |  4 ++--
>  cgit.c        | 26 +++++++++++++-------------
>  git           |  2 +-
>  parsing.c     | 12 ++++++------
>  scan-tree.c   | 10 +++++++---
>  ui-clone.c    |  2 +-
>  ui-log.c      |  8 ++++----
>  ui-refs.c     |  6 +++---
>  ui-repolist.c |  2 +-
>  ui-shared.c   |  2 +-
>  ui-snapshot.c |  4 ++--
>  ui-summary.c  |  2 +-
>  12 files changed, 42 insertions(+), 38 deletions(-)
> 
> [...]
> -       else if (!prefixcmp(name, "module-link.")) {
> +       else if (starts_with(name, "module-link.")) {
>                 item = string_list_append(&repo->submodules, xstrdup(name + 12));

My original intention was to replace most of these with skip_prefix()
(well, I actually wanted to wait for strip_prefix() to replace
skip_prefix() but that didn't make it into Git 2.0). It would be great
to see most of the starts_with() invocations (followed by hardcoded
lengths) replaced by skip_prefix() but if you don't want to do it, I
guess this change is okay for now.

>                 item->util = xstrdup(value);
>         } else if (!strcmp(name, "section"))
> @@ -102,7 +102,7 @@ static void config_cb(const char *name, const char *value)
>                 ctx.repo = cgit_add_repo(value);
>         else if (ctx.repo && !strcmp(name, "repo.path"))
>                 ctx.repo->path = trim_end(value, '/');
> -       else if (ctx.repo && !prefixcmp(name, "repo."))
> +       else if (ctx.repo && starts_with(name, "repo."))
>                 repo_config(ctx.repo, name + 5, value);
>         else if (!strcmp(name, "readme") && value != NULL)
>                 string_list_append(&ctx.cfg.readme, xstrdup(value));
> @@ -264,7 +264,7 @@ static void config_cb(const char *name, const char *value)
> [...]


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/1] git: update for git 2.0
  2014-05-04 19:31 mail
@ 2014-05-04 19:34 ` list
  2014-05-04 20:03 ` cgit
  1 sibling, 0 replies; 8+ messages in thread
From: list @ 2014-05-04 19:34 UTC (permalink / raw)


Christian Hesse <mail at eworm.de> on Sun, 2014/05/04 21:31:
> prefixcmp() and suffixcmp() have been remove, functionality is now
> provided by starts_with() and ends_with(). Retrurn values have been
> changed, so instead of just renaming we have to fix logic.
> Everything else looks just fine.
> ---
>  Makefile      |  4 ++--
>  cgit.c        | 26 +++++++++++++-------------
>  git           |  2 +-
>  parsing.c     | 12 ++++++------
>  scan-tree.c   | 10 +++++++---
>  ui-clone.c    |  2 +-
>  ui-log.c      |  8 ++++----
>  ui-refs.c     |  6 +++---
>  ui-repolist.c |  2 +-
>  ui-shared.c   |  2 +-
>  ui-snapshot.c |  4 ++--
>  ui-summary.c  |  2 +-
>  12 files changed, 42 insertions(+), 38 deletions(-)

Feel free to ignore this for now. I will update the patch for git 2.0 if it
has not been merged then. Probably API will not change until release.
-- 
main(a){char*c=/*    Schoene Gruesse                         */"B?IJj;MEH"
"CX:;",b;for(a/*    Chris           get my mail address:    */=0;b=c[a++];)
putchar(b-1/(/*               gcc -o sig sig.c && ./sig    */b/42*2-3)*42);}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 490 bytes
Desc: not available
URL: <http://lists.zx2c4.com/pipermail/cgit/attachments/20140504/577508a0/attachment.asc>


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/1] git: update for git 2.0
@ 2014-05-04 19:31 mail
  2014-05-04 19:34 ` list
  2014-05-04 20:03 ` cgit
  0 siblings, 2 replies; 8+ messages in thread
From: mail @ 2014-05-04 19:31 UTC (permalink / raw)


prefixcmp() and suffixcmp() have been remove, functionality is now
provided by starts_with() and ends_with(). Retrurn values have been
changed, so instead of just renaming we have to fix logic.
Everything else looks just fine.
---
 Makefile      |  4 ++--
 cgit.c        | 26 +++++++++++++-------------
 git           |  2 +-
 parsing.c     | 12 ++++++------
 scan-tree.c   | 10 +++++++---
 ui-clone.c    |  2 +-
 ui-log.c      |  8 ++++----
 ui-refs.c     |  6 +++---
 ui-repolist.c |  2 +-
 ui-shared.c   |  2 +-
 ui-snapshot.c |  4 ++--
 ui-summary.c  |  2 +-
 12 files changed, 42 insertions(+), 38 deletions(-)

diff --git a/Makefile b/Makefile
index e6ec0dc..7a61301 100644
--- a/Makefile
+++ b/Makefile
@@ -14,8 +14,8 @@ htmldir = $(docdir)
 pdfdir = $(docdir)
 mandir = $(prefix)/share/man
 SHA1_HEADER = <openssl/sha.h>
-GIT_VER = 1.9.2
-GIT_URL = https://www.kernel.org/pub/software/scm/git/git-$(GIT_VER).tar.gz
+GIT_VER = 2.0.0.rc2
+GIT_URL = https://www.kernel.org/pub/software/scm/git/testing/git-$(GIT_VER).tar.gz
 INSTALL = install
 COPYTREE = cp -r
 MAN5_TXT = $(wildcard *.5.txt)
diff --git a/cgit.c b/cgit.c
index f488ebf..20f6e27 100644
--- a/cgit.c
+++ b/cgit.c
@@ -69,7 +69,7 @@ static void repo_config(struct cgit_repo *repo, const char *name, const char *va
 		repo->max_stats = cgit_find_stats_period(value, NULL);
 	else if (!strcmp(name, "module-link"))
 		repo->module_link= xstrdup(value);
-	else if (!prefixcmp(name, "module-link.")) {
+	else if (starts_with(name, "module-link.")) {
 		item = string_list_append(&repo->submodules, xstrdup(name + 12));
 		item->util = xstrdup(value);
 	} else if (!strcmp(name, "section"))
@@ -102,7 +102,7 @@ static void config_cb(const char *name, const char *value)
 		ctx.repo = cgit_add_repo(value);
 	else if (ctx.repo && !strcmp(name, "repo.path"))
 		ctx.repo->path = trim_end(value, '/');
-	else if (ctx.repo && !prefixcmp(name, "repo."))
+	else if (ctx.repo && starts_with(name, "repo."))
 		repo_config(ctx.repo, name + 5, value);
 	else if (!strcmp(name, "readme") && value != NULL)
 		string_list_append(&ctx.cfg.readme, xstrdup(value));
@@ -264,7 +264,7 @@ static void config_cb(const char *name, const char *value)
 			ctx.cfg.branch_sort = 1;
 		if (!strcmp(value, "name"))
 			ctx.cfg.branch_sort = 0;
-	} else if (!prefixcmp(name, "mimetype."))
+	} else if (starts_with(name, "mimetype."))
 		add_mimetype(name + 9, value);
 	else if (!strcmp(name, "include"))
 		parse_configfile(expand_macros(value), config_cb);
@@ -454,7 +454,7 @@ static char *guess_defbranch(void)
 	unsigned char sha1[20];
 
 	ref = resolve_ref_unsafe("HEAD", sha1, 0, NULL);
-	if (!ref || prefixcmp(ref, "refs/heads/"))
+	if (!ref || !starts_with(ref, "refs/heads/"))
 		return "master";
 	return xstrdup(ref + 11);
 }
@@ -941,28 +941,28 @@ static void cgit_parse_args(int argc, const char **argv)
 
 			exit(0);
 		}
-		if (!prefixcmp(argv[i], "--cache=")) {
+		if (starts_with(argv[i], "--cache=")) {
 			ctx.cfg.cache_root = xstrdup(argv[i] + 8);
 		} else if (!strcmp(argv[i], "--nocache")) {
 			ctx.cfg.nocache = 1;
 		} else if (!strcmp(argv[i], "--nohttp")) {
 			ctx.env.no_http = "1";
-		} else if (!prefixcmp(argv[i], "--query=")) {
+		} else if (starts_with(argv[i], "--query=")) {
 			ctx.qry.raw = xstrdup(argv[i] + 8);
-		} else if (!prefixcmp(argv[i], "--repo=")) {
+		} else if (starts_with(argv[i], "--repo=")) {
 			ctx.qry.repo = xstrdup(argv[i] + 7);
-		} else if (!prefixcmp(argv[i], "--page=")) {
+		} else if (starts_with(argv[i], "--page=")) {
 			ctx.qry.page = xstrdup(argv[i] + 7);
-		} else if (!prefixcmp(argv[i], "--head=")) {
+		} else if (starts_with(argv[i], "--head=")) {
 			ctx.qry.head = xstrdup(argv[i] + 7);
 			ctx.qry.has_symref = 1;
-		} else if (!prefixcmp(argv[i], "--sha1=")) {
+		} else if (starts_with(argv[i], "--sha1=")) {
 			ctx.qry.sha1 = xstrdup(argv[i] + 7);
 			ctx.qry.has_sha1 = 1;
-		} else if (!prefixcmp(argv[i], "--ofs=")) {
+		} else if (starts_with(argv[i], "--ofs=")) {
 			ctx.qry.ofs = atoi(argv[i] + 6);
-		} else if (!prefixcmp(argv[i], "--scan-tree=") ||
-		           !prefixcmp(argv[i], "--scan-path=")) {
+		} else if (starts_with(argv[i], "--scan-tree=") ||
+		           starts_with(argv[i], "--scan-path=")) {
 			/*
 			 * HACK: The global snapshot bit mask defines the set
 			 * of allowed snapshot formats, but the config file
diff --git a/git b/git
index 0bc85ab..b4f86a4 160000
--- a/git
+++ b/git
@@ -1 +1 @@
-Subproject commit 0bc85abb7aa9b24b093253018801a0fb43d01122
+Subproject commit b4f86a4ce85e4e370a67455de6586a02f158a789
diff --git a/parsing.c b/parsing.c
index 5b4b1f4..073f46f 100644
--- a/parsing.c
+++ b/parsing.c
@@ -147,25 +147,25 @@ struct commitinfo *cgit_parse_commit(struct commit *commit)
 	if (p == NULL)
 		return ret;
 
-	if (prefixcmp(p, "tree "))
+	if (!starts_with(p, "tree "))
 		die("Bad commit: %s", sha1_to_hex(commit->object.sha1));
 	else
 		p += 46; // "tree " + hex[40] + "\n"
 
-	while (!prefixcmp(p, "parent "))
+	while (starts_with(p, "parent "))
 		p += 48; // "parent " + hex[40] + "\n"
 
-	if (p && !prefixcmp(p, "author ")) {
+	if (p && starts_with(p, "author ")) {
 		p = parse_user(p + 7, &ret->author, &ret->author_email,
 			&ret->author_date);
 	}
 
-	if (p && !prefixcmp(p, "committer ")) {
+	if (p && starts_with(p, "committer ")) {
 		p = parse_user(p + 10, &ret->committer, &ret->committer_email,
 			&ret->committer_date);
 	}
 
-	if (p && !prefixcmp(p, "encoding ")) {
+	if (p && starts_with(p, "encoding ")) {
 		p += 9;
 		t = strchr(p, '\n');
 		if (t) {
@@ -244,7 +244,7 @@ struct taginfo *cgit_parse_tag(struct tag *tag)
 		if (*p == '\n')
 			break;
 
-		if (!prefixcmp(p, "tagger ")) {
+		if (starts_with(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 49de658..87fa0c7 100644
--- a/scan-tree.c
+++ b/scan-tree.c
@@ -61,7 +61,7 @@ static int gitconfig_config(const char *key, const char *value, void *cb)
 		config_fn(repo, "desc", value);
 	else if (!strcmp(key, "gitweb.category"))
 		config_fn(repo, "section", value);
-	else if (!prefixcmp(key, "cgit."))
+	else if (starts_with(key, "cgit."))
 		config_fn(repo, key + 5, value);
 
 	return 0;
@@ -105,7 +105,7 @@ static void add_repo(const char *base, struct strbuf *path, repo_config_fn fn)
 		return;
 	strbuf_setlen(path, pathlen);
 
-	if (prefixcmp(path->buf, base))
+	if (!starts_with(path->buf, base))
 		strbuf_addbuf(&rel, path);
 	else
 		strbuf_addstr(&rel, path->buf + strlen(base) + 1);
@@ -115,6 +115,7 @@ static void add_repo(const char *base, struct strbuf *path, repo_config_fn fn)
 	else if (rel.len && rel.buf[rel.len - 1] == '/')
 		strbuf_setlen(&rel, rel.len - 1);
 
+	fprintf(stderr, "add_repo(): %s\n", rel.buf);
 	repo = cgit_add_repo(rel.buf);
 	config_fn = fn;
 	if (ctx.cfg.enable_git_config) {
@@ -161,7 +162,8 @@ static void add_repo(const char *base, struct strbuf *path, repo_config_fn fn)
 			*slash = '\0';
 			repo->section = xstrdup(rel.buf);
 			*slash = '/';
-			if (!prefixcmp(repo->name, repo->section)) {
+			fprintf(stderr, "repo->name %s, repo->section %s\n", repo->name, repo->section);
+			if (starts_with(repo->name, repo->section)) {
 				repo->name += strlen(repo->section);
 				if (*repo->name == '/')
 					repo->name++;
@@ -184,6 +186,7 @@ static void scan_path(const char *base, const char *path, repo_config_fn fn)
 	size_t pathlen = strlen(path);
 	struct stat st;
 
+	fprintf(stderr, "scan_path(): %s\n", path);
 	if (!dir) {
 		fprintf(stderr, "Error opening directory %s: %s (%d)\n",
 			path, strerror(errno), errno);
@@ -192,6 +195,7 @@ static void scan_path(const char *base, const char *path, repo_config_fn fn)
 
 	strbuf_add(&pathbuf, path, strlen(path));
 	if (is_git_dir(pathbuf.buf)) {
+		fprintf(stderr, "scan_path() is_git_dir: %s\n", path);
 		add_repo(base, &pathbuf, fn);
 		goto end;
 	}
diff --git a/ui-clone.c b/ui-clone.c
index d25553b..a4ffd6e 100644
--- a/ui-clone.c
+++ b/ui-clone.c
@@ -63,7 +63,7 @@ static void send_file(char *path)
 	}
 	ctx.page.mimetype = "application/octet-stream";
 	ctx.page.filename = path;
-	if (prefixcmp(ctx.repo->path, path))
+	if (!starts_with(ctx.repo->path, path))
 		ctx.page.filename += strlen(ctx.repo->path) + 1;
 	cgit_print_http_headers();
 	html_include(path);
diff --git a/ui-log.c b/ui-log.c
index 499534c..2de8017 100644
--- a/ui-log.c
+++ b/ui-log.c
@@ -63,21 +63,21 @@ void show_commit_decorations(struct commit *commit)
 	deco = lookup_decoration(&name_decoration, &commit->object);
 	html("<span class='decoration'>");
 	while (deco) {
-		if (!prefixcmp(deco->name, "refs/heads/")) {
+		if (starts_with(deco->name, "refs/heads/")) {
 			strncpy(buf, deco->name + 11, sizeof(buf) - 1);
 			cgit_log_link(buf, NULL, "branch-deco", buf, NULL,
 				      ctx.qry.vpath, 0, NULL, NULL,
 				      ctx.qry.showmsg);
 		}
-		else if (!prefixcmp(deco->name, "tag: refs/tags/")) {
+		else if (starts_with(deco->name, "tag: refs/tags/")) {
 			strncpy(buf, deco->name + 15, sizeof(buf) - 1);
 			cgit_tag_link(buf, NULL, "tag-deco", ctx.qry.head, buf);
 		}
-		else if (!prefixcmp(deco->name, "refs/tags/")) {
+		else if (starts_with(deco->name, "refs/tags/")) {
 			strncpy(buf, deco->name + 10, sizeof(buf) - 1);
 			cgit_tag_link(buf, NULL, "tag-deco", ctx.qry.head, buf);
 		}
-		else if (!prefixcmp(deco->name, "refs/remotes/")) {
+		else if (starts_with(deco->name, "refs/remotes/")) {
 			if (!ctx.repo->enable_remote_branches)
 				goto next;
 			strncpy(buf, deco->name + 13, sizeof(buf) - 1);
diff --git a/ui-refs.c b/ui-refs.c
index 0da063f..7e58737 100644
--- a/ui-refs.c
+++ b/ui-refs.c
@@ -101,7 +101,7 @@ static void print_tag_downloads(const struct cgit_repo *repo, const char *ref)
 		return;
 
 	basename = cgit_repobasename(repo->url);
-	if (prefixcmp(ref, basename) != 0) {
+	if (!starts_with(ref, basename)) {
 		if ((ref[0] == 'v' || ref[0] == 'V') && isdigit(ref[1]))
 			ref++;
 		if (isdigit(ref[0])) {
@@ -239,9 +239,9 @@ void cgit_print_refs()
 
 	html("<table class='list nowrap'>");
 
-	if (ctx.qry.path && !prefixcmp(ctx.qry.path, "heads"))
+	if (ctx.qry.path && starts_with(ctx.qry.path, "heads"))
 		cgit_print_branches(0);
-	else if (ctx.qry.path && !prefixcmp(ctx.qry.path, "tags"))
+	else if (ctx.qry.path && starts_with(ctx.qry.path, "tags"))
 		cgit_print_tags(0);
 	else {
 		cgit_print_branches(0);
diff --git a/ui-repolist.c b/ui-repolist.c
index 477a949..c2bcce1 100644
--- a/ui-repolist.c
+++ b/ui-repolist.c
@@ -99,7 +99,7 @@ static int is_in_url(struct cgit_repo *repo)
 {
 	if (!ctx.qry.url)
 		return 1;
-	if (repo->url && !prefixcmp(repo->url, ctx.qry.url))
+	if (repo->url && starts_with(repo->url, ctx.qry.url))
 		return 1;
 	return 0;
 }
diff --git a/ui-shared.c b/ui-shared.c
index 1ede2b0..9dde0a3 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -128,7 +128,7 @@ const char *cgit_repobasename(const char *reponame)
 	/* strip trailing slashes */
 	while (p && rvbuf[p] == '/') rvbuf[p--] = 0;
 	/* strip trailing .git */
-	if (p >= 3 && !prefixcmp(&rvbuf[p-3], ".git")) {
+	if (p >= 3 && starts_with(&rvbuf[p-3], ".git")) {
 		p -= 3; rvbuf[p--] = 0;
 	}
 	/* strip more trailing slashes if any */
diff --git a/ui-snapshot.c b/ui-snapshot.c
index 3107b05..ea77eb4 100644
--- a/ui-snapshot.c
+++ b/ui-snapshot.c
@@ -99,7 +99,7 @@ static const struct cgit_snapshot_format *get_format(const char *filename)
 	const struct cgit_snapshot_format *fmt;
 
 	for (fmt = cgit_snapshot_formats; fmt->suffix; fmt++) {
-		if (!suffixcmp(filename, fmt->suffix))
+		if (ends_with(filename, fmt->suffix))
 			return fmt;
 	}
 	return NULL;
@@ -151,7 +151,7 @@ static const char *get_ref_from_filename(const char *url, const char *filename,
 		goto out;
 
 	reponame = cgit_repobasename(url);
-	if (prefixcmp(snapshot.buf, reponame) == 0) {
+	if (starts_with(snapshot.buf, reponame)) {
 		const char *new_start = snapshot.buf;
 		new_start += strlen(reponame);
 		while (new_start && (*new_start == '-' || *new_start == '_'))
diff --git a/ui-summary.c b/ui-summary.c
index df99ce1..3728c3e 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 || prefixcmp(resolved_full, resolved_base)) {
+		if (!resolved_base || !resolved_full || !starts_with(resolved_full, resolved_base)) {
 			free(full_path);
 			full_path = NULL;
 		}
-- 
1.9.2



^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2014-06-29 16:24 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-05-29 15:35 [PATCH 1/1] git: update for git 2.0 mail
2014-06-28 13:15 ` Jason
2014-06-28 13:45   ` list
2014-06-29 16:24 ` Jason
  -- strict thread matches above, loose matches on Subject: below --
2014-05-04 19:31 mail
2014-05-04 19:34 ` list
2014-05-04 20:03 ` cgit
2014-05-29 15:00   ` list

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).