iimplify and restructure code - stagit-gopher - A git gopher frontend. (mirror) Err bitreich.org 70 hgit clone git://bitreich.org/stagit-gopher/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/stagit-gopher/ URL:git://bitreich.org/stagit-gopher/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/stagit-gopher/ bitreich.org 70 1Log /scm/stagit-gopher/log.gph bitreich.org 70 1Files /scm/stagit-gopher/files.gph bitreich.org 70 1Refs /scm/stagit-gopher/refs.gph bitreich.org 70 1Tags /scm/stagit-gopher/tag bitreich.org 70 1README /scm/stagit-gopher/file/README.gph bitreich.org 70 1LICENSE /scm/stagit-gopher/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 1commit 934980659a7c1d7ccebec69a65eef2bf96a6c7a2 /scm/stagit-gopher/commit/934980659a7c1d7ccebec69a65eef2bf96a6c7a2.gph bitreich.org 70 1parent efe16db1e509b1c8f8b06a003126c19f4f8dacaa /scm/stagit-gopher/commit/efe16db1e509b1c8f8b06a003126c19f4f8dacaa.gph bitreich.org 70 hAuthor: Hiltjo Posthuma URL:mailto:hiltjo@codemadness.org bitreich.org 70 iDate: Fri, 8 Jan 2016 20:08:40 +0100 Err bitreich.org 70 i Err bitreich.org 70 iimplify and restructure code Err bitreich.org 70 i Err bitreich.org 70 i- remove commit message and lines changed from refs page. Err bitreich.org 70 i- resolve HEAD once. Err bitreich.org 70 i- dont make filepath in writeblob() Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M stagit.c | 107 +++++++++++-------------------- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 37 insertions(+), 70 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/stagit.c b/stagit.c /scm/stagit-gopher/file/stagit.c.gph bitreich.org 70 i@@ -329,12 +329,11 @@ printcommit(FILE *fp, struct commitinfo *ci) Err bitreich.org 70 i printtime(fp, &(ci->author->when)); Err bitreich.org 70 i fputc('\n', fp); Err bitreich.org 70 i } Err bitreich.org 70 i- fputc('\n', fp); Err bitreich.org 70 i- Err bitreich.org 70 i- if (ci->msg) Err bitreich.org 70 i+ if (ci->msg) { Err bitreich.org 70 i+ fputc('\n', fp); Err bitreich.org 70 i xmlencode(fp, ci->msg, strlen(ci->msg)); Err bitreich.org 70 i- Err bitreich.org 70 i- fputc('\n', fp); Err bitreich.org 70 i+ fputc('\n', fp); Err bitreich.org 70 i+ } Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i void Err bitreich.org 70 i@@ -357,19 +356,18 @@ printshowfile(struct commitinfo *ci) Err bitreich.org 70 i Err bitreich.org 70 i fp = efopen(path, "w"); Err bitreich.org 70 i writeheader(fp); Err bitreich.org 70 i- fputs("
\n", fp);	Err	bitreich.org	70
i+        fputs("
", fp);	Err	bitreich.org	70
i         printcommit(fp, ci);	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         memset(&statsbuf, 0, sizeof(statsbuf));	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         /* diff stat */	Err	bitreich.org	70
i-        if (ci->stats) {	Err	bitreich.org	70
i-                if (!git_diff_stats_to_buf(&statsbuf, ci->stats,	Err	bitreich.org	70
i-                    GIT_DIFF_STATS_FULL | GIT_DIFF_STATS_SHORT, 80)) {	Err	bitreich.org	70
i-                        if (statsbuf.ptr && statsbuf.ptr[0]) {	Err	bitreich.org	70
i-                                fputs("Diffstat:\n", fp);	Err	bitreich.org	70
i-                                fputs(statsbuf.ptr, fp);	Err	bitreich.org	70
i-                        }	Err	bitreich.org	70
i+        if (ci->stats &&	Err	bitreich.org	70
i+            !git_diff_stats_to_buf(&statsbuf, ci->stats,	Err	bitreich.org	70
i+                                   GIT_DIFF_STATS_FULL | GIT_DIFF_STATS_SHORT, 80)) {	Err	bitreich.org	70
i+                if (statsbuf.ptr && statsbuf.ptr[0]) {	Err	bitreich.org	70
i+                        fputs("Diffstat:\n", fp);	Err	bitreich.org	70
i+                        xmlencode(fp, statsbuf.ptr, strlen(statsbuf.ptr));	Err	bitreich.org	70
i                 }	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i@@ -430,21 +428,13 @@ printshowfile(struct commitinfo *ci)	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i int	Err	bitreich.org	70
i-writelog(FILE *fp, const char *branch)	Err	bitreich.org	70
i+writelog(FILE *fp, const git_oid *oid)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i         struct commitinfo *ci;	Err	bitreich.org	70
i-        const git_oid *oid;	Err	bitreich.org	70
i         git_revwalk *w = NULL;	Err	bitreich.org	70
i-        git_object *obj = NULL;	Err	bitreich.org	70
i         git_oid id;	Err	bitreich.org	70
i         size_t len;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        mkdir("commit", 0755);	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-        if (git_revparse_single(&obj, repo, branch))	Err	bitreich.org	70
i-                return -1;	Err	bitreich.org	70
i-        oid = git_object_id(obj);	Err	bitreich.org	70
i-	Err	bitreich.org	70
i         git_revwalk_new(&w, repo);	Err	bitreich.org	70
i         git_revwalk_push(w, oid);	Err	bitreich.org	70
i         git_revwalk_sorting(w, GIT_SORT_TIME);	Err	bitreich.org	70
i@@ -493,7 +483,6 @@ writelog(FILE *fp, const char *branch)	Err	bitreich.org	70
i         fputs("", fp);	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         git_revwalk_free(w);	Err	bitreich.org	70
i-        git_object_free(obj);	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         relpath = "";	Err	bitreich.org	70
i 	Err	bitreich.org	70
i@@ -579,14 +568,13 @@ writeatom(FILE *fp)	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i int	Err	bitreich.org	70
i-writeblob(git_object *obj, const char *filename, git_off_t filesize)	Err	bitreich.org	70
i+writeblob(git_object *obj, const char *fpath, const char *filename, git_off_t filesize)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        char fpath[PATH_MAX];	Err	bitreich.org	70
i         char tmp[PATH_MAX] = "";	Err	bitreich.org	70
i-        char *d, *p;	Err	bitreich.org	70
i+        char *d;	Err	bitreich.org	70
i+        const char *p;	Err	bitreich.org	70
i         FILE *fp;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        snprintf(fpath, sizeof(fpath), "file/%s.html", filename);	Err	bitreich.org	70
i         d = xdirname(fpath);	Err	bitreich.org	70
i         if (mkdirp(d)) {	Err	bitreich.org	70
i                 free(d);	Err	bitreich.org	70
i@@ -698,35 +686,32 @@ writefilestree(FILE *fp, git_tree *tree, const char *branch, const char *path)	Err	bitreich.org	70
i                         git_object_free(obj);	Err	bitreich.org	70
i                         continue;	Err	bitreich.org	70
i                 }	Err	bitreich.org	70
i-                if (path[0]) {	Err	bitreich.org	70
i-                        snprintf(filepath, sizeof(filepath), "%s/%s",	Err	bitreich.org	70
i+                if (path[0])	Err	bitreich.org	70
i+                        snprintf(filepath, sizeof(filepath), "file/%s/%s.html",	Err	bitreich.org	70
i                                  path, filename);	Err	bitreich.org	70
i-                        filename = filepath;	Err	bitreich.org	70
i-                }	Err	bitreich.org	70
i+                else	Err	bitreich.org	70
i+                        snprintf(filepath, sizeof(filepath), "file/%s.html",	Err	bitreich.org	70
i+                                 filename);	Err	bitreich.org	70
i                 filesize = git_blob_rawsize((git_blob *)obj);	Err	bitreich.org	70
i 	Err	bitreich.org	70
i                 fputs("", fp);	Err	bitreich.org	70
i-                fprintf(fp, "%s", filemode(git_tree_entry_filemode(entry)));	Err	bitreich.org	70
i-                fprintf(fp, "", fp);	Err	bitreich.org	70
i+                fputs(filemode(git_tree_entry_filemode(entry)), fp);	Err	bitreich.org	70
i+                fprintf(fp, "", relpath, filepath);	Err	bitreich.org	70
i                 xmlencode(fp, filename, strlen(filename));	Err	bitreich.org	70
i                 fputs("", fp);	Err	bitreich.org	70
i                 fprintf(fp, "%ju", (uintmax_t)filesize);	Err	bitreich.org	70
i                 fputs("\n", fp);	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-                writeblob(obj, filename, filesize);	Err	bitreich.org	70
i+                writeblob(obj, filepath, filename, filesize);	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         return 0;	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i int	Err	bitreich.org	70
i-writefiles(FILE *fp, const char *branch)	Err	bitreich.org	70
i+writefiles(FILE *fp, const git_oid *id, const char *branch)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        const git_oid *id;	Err	bitreich.org	70
i         git_tree *tree = NULL;	Err	bitreich.org	70
i-        git_object *obj = NULL;	Err	bitreich.org	70
i         git_commit *commit = NULL;	Err	bitreich.org	70
i         int ret = -1;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i@@ -734,9 +719,6 @@ writefiles(FILE *fp, const char *branch)	Err	bitreich.org	70
i               "ModeNameSize"	Err	bitreich.org	70
i               "\n\n", fp);	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        if (git_revparse_single(&obj, repo, branch))	Err	bitreich.org	70
i-                goto err;	Err	bitreich.org	70
i-        id = git_object_id(obj);	Err	bitreich.org	70
i         if (git_commit_lookup(&commit, repo, id) ||	Err	bitreich.org	70
i             git_commit_tree(&tree, commit))	Err	bitreich.org	70
i                 goto err;	Err	bitreich.org	70
i@@ -745,7 +727,6 @@ writefiles(FILE *fp, const char *branch)	Err	bitreich.org	70
i err:	Err	bitreich.org	70
i         fputs("", fp);	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        git_object_free(obj);	Err	bitreich.org	70
i         git_commit_free(commit);	Err	bitreich.org	70
i         git_tree_free(tree);	Err	bitreich.org	70
i 	Err	bitreich.org	70
i@@ -778,7 +759,7 @@ writerefs(FILE *fp)	Err	bitreich.org	70
i         git_reference *dref = NULL, *r, *ref = NULL;	Err	bitreich.org	70
i         git_reference_iterator *it = NULL;	Err	bitreich.org	70
i         git_reference **refs = NULL;	Err	bitreich.org	70
i-        size_t count, i, j, len, refcount = 0;	Err	bitreich.org	70
i+        size_t count, i, j, refcount = 0;	Err	bitreich.org	70
i         const char *cols[] = { "Branch", "Tag" }; /* first column title */	Err	bitreich.org	70
i         const char *titles[] = { "Branches", "Tags" };	Err	bitreich.org	70
i         const char *ids[] = { "branches", "tags" };	Err	bitreich.org	70
i@@ -827,9 +808,7 @@ writerefs(FILE *fp)	Err	bitreich.org	70
i                         /* print header if it has an entry (first). */	Err	bitreich.org	70
i                         if (++count == 1) {	Err	bitreich.org	70
i                                 fprintf(fp, "

%s

\n" Err bitreich.org 70 i- "" Err bitreich.org 70 i- "" Err bitreich.org 70 i- "\n\n", Err bitreich.org 70 i+ "\n\n\n", Err bitreich.org 70 i titles[j], ids[j], cols[j]); Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i@@ -842,28 +821,8 @@ writerefs(FILE *fp) Err bitreich.org 70 i if (ci->author) Err bitreich.org 70 i printtimeshort(fp, &(ci->author->when)); Err bitreich.org 70 i fputs("\n", fp); Err bitreich.org 70 i Err bitreich.org 70 i relpath = "../"; Err bitreich.org 70 i@@ -876,7 +835,7 @@ writerefs(FILE *fp) Err bitreich.org 70 i } Err bitreich.org 70 i /* table footer */ Err bitreich.org 70 i if (count) Err bitreich.org 70 i- fputs("
%sAgeCommit messageAuthorFiles+-
AgeAuthor
", fp); Err bitreich.org 70 i- if (ci->summary) { Err bitreich.org 70 i- if (j) Err bitreich.org 70 i- fprintf(fp, "", Err bitreich.org 70 i- relpath, ci->oid); Err bitreich.org 70 i- if ((len = strlen(ci->summary)) > summarylen) { Err bitreich.org 70 i- xmlencode(fp, ci->summary, summarylen - 1); Err bitreich.org 70 i- fputs("…", fp); Err bitreich.org 70 i- } else { Err bitreich.org 70 i- xmlencode(fp, ci->summary, len); Err bitreich.org 70 i- } Err bitreich.org 70 i- if (j) Err bitreich.org 70 i- fputs("", fp); Err bitreich.org 70 i- } Err bitreich.org 70 i- fputs("", fp); Err bitreich.org 70 i if (ci->author) Err bitreich.org 70 i xmlencode(fp, ci->author->name, strlen(ci->author->name)); Err bitreich.org 70 i- fputs("", fp); Err bitreich.org 70 i- fprintf(fp, "%zu", ci->filecount); Err bitreich.org 70 i- fputs("", fp); Err bitreich.org 70 i- fprintf(fp, "+%zu", ci->addcount); Err bitreich.org 70 i- fputs("", fp); Err bitreich.org 70 i- fprintf(fp, "-%zu", ci->delcount); Err bitreich.org 70 i fputs("
", fp); Err bitreich.org 70 i+ fputs("
", fp); Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i err: Err bitreich.org 70 i@@ -894,6 +853,7 @@ int Err bitreich.org 70 i main(int argc, char *argv[]) Err bitreich.org 70 i { Err bitreich.org 70 i git_object *obj = NULL; Err bitreich.org 70 i+ const git_oid *head = NULL; Err bitreich.org 70 i const git_error *e = NULL; Err bitreich.org 70 i FILE *fp, *fpread; Err bitreich.org 70 i char path[PATH_MAX], *p; Err bitreich.org 70 i@@ -914,6 +874,12 @@ main(int argc, char *argv[]) Err bitreich.org 70 i return status; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i+ /* find HEAD */ Err bitreich.org 70 i+ if (git_revparse_single(&obj, repo, "HEAD")) Err bitreich.org 70 i+ return 1; Err bitreich.org 70 i+ head = git_object_id(obj); Err bitreich.org 70 i+ git_object_free(obj); Err bitreich.org 70 i+ Err bitreich.org 70 i /* use directory name as name */ Err bitreich.org 70 i name = xbasename(repodir); Err bitreich.org 70 i Err bitreich.org 70 i@@ -964,14 +930,15 @@ main(int argc, char *argv[]) Err bitreich.org 70 i fp = efopen("log.html", "w"); Err bitreich.org 70 i relpath = ""; Err bitreich.org 70 i writeheader(fp); Err bitreich.org 70 i- writelog(fp, "HEAD"); Err bitreich.org 70 i+ mkdir("commit", 0755); Err bitreich.org 70 i+ writelog(fp, head); Err bitreich.org 70 i writefooter(fp); Err bitreich.org 70 i fclose(fp); Err bitreich.org 70 i Err bitreich.org 70 i /* files for HEAD */ Err bitreich.org 70 i fp = efopen("files.html", "w"); Err bitreich.org 70 i writeheader(fp); Err bitreich.org 70 i- writefiles(fp, "HEAD"); Err bitreich.org 70 i+ writefiles(fp, head, "HEAD"); Err bitreich.org 70 i writefooter(fp); Err bitreich.org 70 i fclose(fp); Err bitreich.org 70 i Err bitreich.org 70 .