iadd diffstat - 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 beb7a3b29dd88515a3bcb294a4e58907b0406355 /scm/stagit-gopher/commit/beb7a3b29dd88515a3bcb294a4e58907b0406355.gph bitreich.org 70 1parent a95a439aaa7d048c25e988b0d9770f5040f0a17f /scm/stagit-gopher/commit/a95a439aaa7d048c25e988b0d9770f5040f0a17f.gph bitreich.org 70 hAuthor: Hiltjo Posthuma URL:mailto:hiltjo@codemadness.org bitreich.org 70 iDate: Mon, 7 Dec 2015 14:26:35 +0100 Err bitreich.org 70 i Err bitreich.org 70 iadd diffstat Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M urmoms.c | 31 ++++++++++++++++++++++++------- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 24 insertions(+), 7 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/urmoms.c b/urmoms.c /scm/stagit-gopher/file/urmoms.c.gph bitreich.org 70 i@@ -186,16 +186,19 @@ printshowfile(git_commit *commit) Err bitreich.org 70 i git_tree *commit_tree = NULL, *parent_tree = NULL; Err bitreich.org 70 i git_patch *patch = NULL; Err bitreich.org 70 i git_diff *diff = NULL; Err bitreich.org 70 i+ git_buf diffstatsbuf; Err bitreich.org 70 i+ git_diff_stats *diffstats = NULL; Err bitreich.org 70 i size_t i, j, k, ndeltas, nhunks = 0, nhunklines = 0; Err bitreich.org 70 i char buf[GIT_OID_HEXSZ + 1], path[PATH_MAX]; Err bitreich.org 70 i FILE *fp; Err bitreich.org 70 i int error; Err bitreich.org 70 i Err bitreich.org 70 i git_oid_tostr(buf, sizeof(buf), git_commit_id(commit)); Err bitreich.org 70 i- Err bitreich.org 70 i snprintf(path, sizeof(path), "commit/%s.html", buf); Err bitreich.org 70 i fp = efopen(path, "w+b"); Err bitreich.org 70 i Err bitreich.org 70 i+ memset(&diffstatsbuf, 0, sizeof(diffstatsbuf)); Err bitreich.org 70 i+ Err bitreich.org 70 i writeheader(fp); Err bitreich.org 70 i printcommit(fp, commit); Err bitreich.org 70 i Err bitreich.org 70 i@@ -205,16 +208,25 @@ printshowfile(git_commit *commit) Err bitreich.org 70 i Err bitreich.org 70 i error = git_commit_tree(&commit_tree, commit); Err bitreich.org 70 i if (error) Err bitreich.org 70 i- return; Err bitreich.org 70 i+ goto err; Err bitreich.org 70 i error = git_commit_tree(&parent_tree, parent); Err bitreich.org 70 i if (error) Err bitreich.org 70 i- return; Err bitreich.org 70 i- Err bitreich.org 70 i+ goto err; Err bitreich.org 70 i error = git_diff_tree_to_tree(&diff, repo, commit_tree, parent_tree, NULL); Err bitreich.org 70 i if (error) Err bitreich.org 70 i- return; Err bitreich.org 70 i- Err bitreich.org 70 i- /* TODO: diff stat (files list and insertions/deletions) */ Err bitreich.org 70 i+ goto err; Err bitreich.org 70 i+ Err bitreich.org 70 i+ /* diff stat */ Err bitreich.org 70 i+ if (!git_diff_get_stats(&diffstats, diff)) { Err bitreich.org 70 i+ if (!git_diff_stats_to_buf(&diffstatsbuf, diffstats, Err bitreich.org 70 i+ GIT_DIFF_STATS_FULL | GIT_DIFF_STATS_SHORT | GIT_DIFF_STATS_NUMBER | GIT_DIFF_STATS_INCLUDE_SUMMARY, 80)) { Err bitreich.org 70 i+ fputs("
", fp); Err bitreich.org 70 i+ fprintf(fp, "Diffstat:\n"); Err bitreich.org 70 i+ fputs(diffstatsbuf.ptr, fp); Err bitreich.org 70 i+ } Err bitreich.org 70 i+ git_diff_stats_free(diffstats); Err bitreich.org 70 i+ } Err bitreich.org 70 i+ fputs("
", fp); Err bitreich.org 70 i Err bitreich.org 70 i ndeltas = git_diff_num_deltas(diff); Err bitreich.org 70 i for (i = 0; i < ndeltas; i++) { Err bitreich.org 70 i@@ -262,6 +274,11 @@ printshowfile(git_commit *commit) Err bitreich.org 70 i Err bitreich.org 70 i writefooter(fp); Err bitreich.org 70 i fclose(fp); Err bitreich.org 70 i+ return; Err bitreich.org 70 i+ Err bitreich.org 70 i+err: Err bitreich.org 70 i+ git_buf_free(&diffstatsbuf); Err bitreich.org 70 i+ fclose(fp); Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i int Err bitreich.org 70 .