ialign some columns - 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 aee984022be470e18b1b085703801ae842b4e24a /scm/stagit-gopher/commit/aee984022be470e18b1b085703801ae842b4e24a.gph bitreich.org 70 1parent caa55f2bb419bd2f5327a779fe9afe13f7b4ed38 /scm/stagit-gopher/commit/caa55f2bb419bd2f5327a779fe9afe13f7b4ed38.gph bitreich.org 70 hAuthor: Hiltjo Posthuma URL:mailto:hiltjo@codemadness.org bitreich.org 70 iDate: Tue, 13 Jun 2017 19:42:35 +0200 Err bitreich.org 70 i Err bitreich.org 70 ialign some columns Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M stagit.c | 123 ++++++++++++++++++++++--------- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 89 insertions(+), 34 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@@ -248,6 +248,43 @@ xmlencode(FILE *fp, const char *s, size_t len) 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+trim(char *buf, size_t bufsiz, const char *src) Err bitreich.org 70 i+{ Err bitreich.org 70 i+ size_t d = 0, i, len, n = 0, s; Err bitreich.org 70 i+ Err bitreich.org 70 i+ len = strlen(src); Err bitreich.org 70 i+ for (s = 0; s < len && d < bufsiz - 1; s++) { Err bitreich.org 70 i+ if (src[s] == '\n') Err bitreich.org 70 i+ n = 0; Err bitreich.org 70 i+ Err bitreich.org 70 i+ switch (src[s]) { Err bitreich.org 70 i+ case '\t': Err bitreich.org 70 i+ if (d + 8 >= bufsiz - 1) Err bitreich.org 70 i+ goto end; Err bitreich.org 70 i+ for (i = 0; i < 8; i++) Err bitreich.org 70 i+ buf[d++] = ' '; Err bitreich.org 70 i+ break; Err bitreich.org 70 i+ case '|': Err bitreich.org 70 i+ case '\r': Err bitreich.org 70 i+ buf[d++] = ' '; Err bitreich.org 70 i+ break; Err bitreich.org 70 i+ case 't': Err bitreich.org 70 i+ if (!n && src[s] == 't') { Err bitreich.org 70 i+ if (d + 1 >= bufsiz - 1) Err bitreich.org 70 i+ goto end; Err bitreich.org 70 i+ buf[d++] = src[s]; Err bitreich.org 70 i+ } Err bitreich.org 70 i+ default: Err bitreich.org 70 i+ buf[d++] = src[s]; Err bitreich.org 70 i+ break; Err bitreich.org 70 i+ } Err bitreich.org 70 i+ n++; Err bitreich.org 70 i+ } Err bitreich.org 70 i+end: Err bitreich.org 70 i+ buf[d] = '\0'; Err bitreich.org 70 i+} Err bitreich.org 70 i+ Err bitreich.org 70 i /* Escape characters in text in geomyidae .gph format */ Err bitreich.org 70 i void Err bitreich.org 70 i gphtext(FILE *fp, const char *s, size_t len) Err bitreich.org 70 i@@ -264,10 +301,10 @@ gphtext(FILE *fp, const char *s, size_t len) Err bitreich.org 70 i n = 1; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i- if (s[i] == '\t') { Err bitreich.org 70 i- fputs(" ", fp); Err bitreich.org 70 i- } else { Err bitreich.org 70 i- fputc(s[i], fp); Err bitreich.org 70 i+ switch (s[i]) { Err bitreich.org 70 i+ case '\r': break; Err bitreich.org 70 i+ case '\t': fputs(" ", fp); break; Err bitreich.org 70 i+ default: fputc(s[i], fp); Err bitreich.org 70 i } Err bitreich.org 70 i n++; Err bitreich.org 70 i } Err bitreich.org 70 i@@ -415,10 +452,11 @@ writeblobgph(FILE *fp, const git_blob *blob) Err bitreich.org 70 i n++; Err bitreich.org 70 i fprintf(fp, nfmt, n, n, n); Err bitreich.org 70 i for (j = prev; s[j] && j <= i; j++) { Err bitreich.org 70 i- if (s[j] == '\t') Err bitreich.org 70 i- fputs(" ", fp); Err bitreich.org 70 i- else Err bitreich.org 70 i- fputc(s[j], fp); Err bitreich.org 70 i+ switch (s[j]) { Err bitreich.org 70 i+ case '\r': break; Err bitreich.org 70 i+ case '\t': fputs(" ", fp); break; Err bitreich.org 70 i+ default: fputc(s[j], fp); Err bitreich.org 70 i+ } Err bitreich.org 70 i } Err bitreich.org 70 i prev = i + 1; Err bitreich.org 70 i } Err bitreich.org 70 i@@ -427,10 +465,11 @@ writeblobgph(FILE *fp, const git_blob *blob) Err bitreich.org 70 i n++; Err bitreich.org 70 i fprintf(fp, nfmt, n, n, n); Err bitreich.org 70 i for (j = prev; s[j] && j < len - prev; j++) { Err bitreich.org 70 i- if (s[j] == '\t') Err bitreich.org 70 i- fputs(" ", fp); Err bitreich.org 70 i- else Err bitreich.org 70 i- fputc(s[j], fp); Err bitreich.org 70 i+ switch (s[j]) { Err bitreich.org 70 i+ case '\r': break; Err bitreich.org 70 i+ case '\t': fputs(" ", fp); break; Err bitreich.org 70 i+ default: fputc(s[j], fp); Err bitreich.org 70 i+ } Err bitreich.org 70 i } Err bitreich.org 70 i } Err bitreich.org 70 i } Err bitreich.org 70 i@@ -567,18 +606,24 @@ printshowfile(FILE *fp, struct commitinfo *ci) Err bitreich.org 70 i void Err bitreich.org 70 i writelogline(FILE *fp, struct commitinfo *ci) Err bitreich.org 70 i { Err bitreich.org 70 i+ char buf[1024]; Err bitreich.org 70 i+ Err bitreich.org 70 i fputs("[1|", 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(" ", fp); Err bitreich.org 70 i- if (ci->summary) Err bitreich.org 70 i- gphlink(fp, ci->summary, strlen(ci->summary)); Err bitreich.org 70 i+ if (ci->summary) { Err bitreich.org 70 i+ trim(buf, sizeof(buf), ci->summary); Err bitreich.org 70 i+ fprintf(fp, "%-50.50s", buf); 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- gphlink(fp, ci->author->name, strlen(ci->author->name)); Err bitreich.org 70 i- fprintf(fp, " %zu", ci->filecount); Err bitreich.org 70 i- fprintf(fp, " +%zu", ci->addcount); Err bitreich.org 70 i- fprintf(fp, " -%zu", ci->delcount); Err bitreich.org 70 i+ if (ci->author) { Err bitreich.org 70 i+ trim(buf, sizeof(buf), ci->author->name); Err bitreich.org 70 i+ fprintf(fp, "%-25.25s", buf); Err bitreich.org 70 i+ } Err bitreich.org 70 i+ fprintf(fp, " %5zu", ci->filecount); Err bitreich.org 70 i+ fprintf(fp, " %5zu+", ci->addcount); Err bitreich.org 70 i+ fprintf(fp, " %5zu-", ci->delcount); Err bitreich.org 70 i fprintf(fp, "|%scommit/%s.gph", relpath, ci->oid); Err bitreich.org 70 i fputs("|server|port]\n", fp); Err bitreich.org 70 i } Err bitreich.org 70 i@@ -796,6 +841,7 @@ writefilestree(FILE *fp, git_tree *tree, const char *path) Err bitreich.org 70 i git_off_t filesize; Err bitreich.org 70 i const char *entryname; Err bitreich.org 70 i char filepath[PATH_MAX], entrypath[PATH_MAX]; Err bitreich.org 70 i+ char buf[1024]; Err bitreich.org 70 i size_t count, i; Err bitreich.org 70 i int lc, r, ret; Err bitreich.org 70 i Err bitreich.org 70 i@@ -834,12 +880,12 @@ writefilestree(FILE *fp, git_tree *tree, const char *path) Err bitreich.org 70 i fputs("[1|", fp); Err bitreich.org 70 i fputs(filemode(git_tree_entry_filemode(entry)), fp); Err bitreich.org 70 i fputs(" ", fp); Err bitreich.org 70 i- gphlink(fp, entrypath, strlen(entrypath)); Err bitreich.org 70 i- fputs(" ", fp); Err bitreich.org 70 i+ trim(buf, sizeof(buf), entrypath); Err bitreich.org 70 i+ fprintf(fp, "%-50.50s ", buf); Err bitreich.org 70 i if (lc > 0) Err bitreich.org 70 i- fprintf(fp, "%dL", lc); Err bitreich.org 70 i+ fprintf(fp, "%7dL", lc); Err bitreich.org 70 i else Err bitreich.org 70 i- fprintf(fp, "%juB", (uintmax_t)filesize); Err bitreich.org 70 i+ fprintf(fp, "%7juB", (uintmax_t)filesize); Err bitreich.org 70 i fprintf(fp, "|%s%s", relpath, filepath); Err bitreich.org 70 i fputs("|server|port]\n", fp); Err bitreich.org 70 i git_object_free(obj); Err bitreich.org 70 i@@ -862,7 +908,9 @@ writefiles(FILE *fp, const git_oid *id) 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- fputs("Mode Name Size\n", fp); Err bitreich.org 70 i+ fprintf(fp, "%-10.10s ", "Mode"); Err bitreich.org 70 i+ fprintf(fp, "%-50.50s ", "Name"); Err bitreich.org 70 i+ fprintf(fp, "%8.8s\n", "Size"); Err bitreich.org 70 i 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@@ -899,8 +947,8 @@ writerefs(FILE *fp) Err bitreich.org 70 i git_reference **refs = NULL; Err bitreich.org 70 i size_t count, i, j, refcount; 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 const char *name; Err bitreich.org 70 i+ char buf[1024]; Err bitreich.org 70 i Err bitreich.org 70 i if (git_reference_iterator_new(&it, repo)) Err bitreich.org 70 i return -1; Err bitreich.org 70 i@@ -943,20 +991,24 @@ writerefs(FILE *fp) Err bitreich.org 70 i 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- gphtext(fp, titles[j], strlen(titles[j])); Err bitreich.org 70 i- fputs("Name Last commit date Author\n\n", fp); Err bitreich.org 70 i+ fprintf(fp, "%s\n", titles[j]); Err bitreich.org 70 i+ fprintf(fp, " %-25.25s", "Name"); Err bitreich.org 70 i+ fprintf(fp, " %-16.16s", "Last commit date"); Err bitreich.org 70 i+ fprintf(fp, " %-25.25s\n", "Author"); Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i name = git_reference_shorthand(r); Err bitreich.org 70 i Err bitreich.org 70 i fputs(" ", fp); Err bitreich.org 70 i- xmlencode(fp, name, strlen(name)); Err bitreich.org 70 i- fputs(" ", fp); Err bitreich.org 70 i+ trim(buf, sizeof(buf), name); Err bitreich.org 70 i+ fprintf(fp, "%-25.25s ", name); Err bitreich.org 70 i if (ci->author) Err bitreich.org 70 i printtimeshort(fp, &(ci->author->when)); 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+ if (ci->author) { Err bitreich.org 70 i+ trim(buf, sizeof(buf), ci->author->name); Err bitreich.org 70 i+ fprintf(fp, "%-25.25s\n", buf); Err bitreich.org 70 i+ } Err bitreich.org 70 i fputs("\n", fp); Err bitreich.org 70 i Err bitreich.org 70 i commitinfo_free(ci); Err bitreich.org 70 i@@ -1099,9 +1151,12 @@ main(int argc, char *argv[]) Err bitreich.org 70 i fp = efopen("log.gph", "w"); Err bitreich.org 70 i mkdir("commit", 0755); Err bitreich.org 70 i writeheader(fp, "Log"); Err bitreich.org 70 i- fputs("Date " Err bitreich.org 70 i- "Commit message " Err bitreich.org 70 i- "Author Files + -\n", fp); Err bitreich.org 70 i+ fprintf(fp, "%-16.16s ", "Date"); Err bitreich.org 70 i+ fprintf(fp, "%-50.50s ", "Commit message"); Err bitreich.org 70 i+ fprintf(fp, "%-25.25s ", "Author"); Err bitreich.org 70 i+ fprintf(fp, "%5.5s ", "Files"); Err bitreich.org 70 i+ fprintf(fp, "%6.6s ", "+"); Err bitreich.org 70 i+ fprintf(fp, "%6.6s\n", "-"); Err bitreich.org 70 i Err bitreich.org 70 i if (cachefile) { Err bitreich.org 70 i /* read from cache file (does not need to exist) */ Err bitreich.org 70 .