ifile page improvements - 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 d77d972007d6f996ab4667b9dbbd1e241304c61e /scm/stagit-gopher/commit/d77d972007d6f996ab4667b9dbbd1e241304c61e.gph bitreich.org 70 1parent 23fdbb0c8cd8f875e678c17ef79919a22d704c7a /scm/stagit-gopher/commit/23fdbb0c8cd8f875e678c17ef79919a22d704c7a.gph bitreich.org 70 hAuthor: Eivind Uggedal URL:mailto:eivind@uggedal.com bitreich.org 70 iDate: Thu, 10 Dec 2015 18:13:08 +0000 Err bitreich.org 70 i Err bitreich.org 70 ifile page improvements Err bitreich.org 70 i Err bitreich.org 70 i- header with filename and size Err bitreich.org 70 i- handle binary files Err bitreich.org 70 i- small style changes Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M urmoms.c | 36 ++++++++++++++++++------------- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 21 insertions(+), 15 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@@ -529,31 +529,37 @@ 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(const char *path) Err bitreich.org 70 i+writeblob(git_index_entry *entry) Err bitreich.org 70 i { Err bitreich.org 70 i- char htmlpath[PATH_MAX]; Err bitreich.org 70 i- char refpath[PATH_MAX]; Err bitreich.org 70 i+ char fpath[PATH_MAX]; Err bitreich.org 70 i+ char ref[PATH_MAX]; Err bitreich.org 70 i git_object *obj = NULL; Err bitreich.org 70 i FILE *fp; Err bitreich.org 70 i Err bitreich.org 70 i- snprintf(htmlpath, sizeof(htmlpath), "file/%s.html", path); Err bitreich.org 70 i- snprintf(refpath, sizeof(refpath), "HEAD:%s", path); Err bitreich.org 70 i+ snprintf(fpath, sizeof(fpath), "file/%s.html", entry->path); Err bitreich.org 70 i+ snprintf(ref, sizeof(ref), "HEAD:%s", entry->path); Err bitreich.org 70 i Err bitreich.org 70 i- if (git_revparse_single(&obj, repo, refpath)) Err bitreich.org 70 i- return 1; /* TODO: handle error */ Err bitreich.org 70 i+ if (git_revparse_single(&obj, repo, ref)) Err bitreich.org 70 i+ return 1; Err bitreich.org 70 i Err bitreich.org 70 i- mkdirp(dirname(htmlpath)); Err bitreich.org 70 i+ if (mkdirp(dirname(fpath))) Err bitreich.org 70 i+ return 1; Err bitreich.org 70 i Err bitreich.org 70 i relpath = "../"; /* TODO: dynamic relpath based on number of /'s */ Err bitreich.org 70 i Err bitreich.org 70 i- fp = efopen(htmlpath, "w+b"); Err bitreich.org 70 i+ fp = efopen(fpath, "w+b"); Err bitreich.org 70 i writeheader(fp); Err bitreich.org 70 i- fputs("
\n", fp);	Err	bitreich.org	70
i-        writeblobhtml(fp, (git_blob *)obj);	Err	bitreich.org	70
i-        if (ferror(fp))	Err	bitreich.org	70
i-                err(1, "fwrite");	Err	bitreich.org	70
i+        fprintf(fp, "

%s (%" PRIu64 "b)


", entry->path, entry->file_size); Err bitreich.org 70 i+ if (git_blob_is_binary((git_blob *)obj)) { Err bitreich.org 70 i+ fprintf(fp, "

Binary file

\n"); Err bitreich.org 70 i+ } else { Err bitreich.org 70 i+ fputs("
\n", fp);	Err	bitreich.org	70
i+                writeblobhtml(fp, (git_blob *)obj);	Err	bitreich.org	70
i+                if (ferror(fp))	Err	bitreich.org	70
i+                        err(1, "fwrite");	Err	bitreich.org	70
i+                fputs("
\n", fp); Err bitreich.org 70 i+ } Err bitreich.org 70 i git_object_free(obj); Err bitreich.org 70 i- fputs("
\n", fp); Err bitreich.org 70 i writefooter(fp); Err bitreich.org 70 i fclose(fp); Err bitreich.org 70 i Err bitreich.org 70 i@@ -589,7 +595,7 @@ writefiles(FILE *fp) Err bitreich.org 70 i fprintf(fp, "%" PRIu64, entry->file_size); Err bitreich.org 70 i fputs("\n", fp); Err bitreich.org 70 i Err bitreich.org 70 i- writeblob(entry->path); Err bitreich.org 70 i+ writeblob(entry); Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i fputs("", fp); Err bitreich.org 70 .