Introduction
Introduction Statistics Contact Development Disclaimer Help
twriteblobhtml: improve file view for text-browsers - stagit - static git page …
git clone git://src.adamsgaard.dk/stagit
Log
Files
Refs
README
LICENSE
---
commit 44b20f341443cf3daffbe2b092df28df522cad86
parent 4035291297b1a559cd5b0bf4bef65b7fe33c59c1
Author: Hiltjo Posthuma <[email protected]>
Date: Sun, 16 Apr 2017 20:37:42 +0200
writeblobhtml: improve file view for text-browsers
browsers such as lynx and w3m have some quirks displaying tables and pre
elements.
links is a bit better with this.
Diffstat:
M stagit.c | 35 +++++++++++++++++------------…
1 file changed, 19 insertions(+), 16 deletions(-)
---
diff --git a/stagit.c b/stagit.c
t@@ -378,28 +378,31 @@ writefooter(FILE *fp)
int
writeblobhtml(FILE *fp, const git_blob *blob)
{
- off_t i;
- size_t n = 0;
- const char *nfmt = "<a href=\"#l%d\" id=\"l%d\">%d</a>\n";
+ size_t n, i, prev;
+ const char *nfmt = "<a href=\"#l%d\" class=\"line\" id=\"l%d\">%6d</a>…
const char *s = git_blob_rawcontent(blob);
git_off_t len = git_blob_rawsize(blob);
- fputs("<table id=\"blob\"><tr><td class=\"num\"><pre>\n", fp);
+ fputs("<pre id=\"blob\">\n", fp);
- if (len) {
- n++;
- fprintf(fp, nfmt, n, n, n);
- for (i = 0; i < len - 1; i++) {
- if (s[i] == '\n') {
- n++;
- fprintf(fp, nfmt, n, n, n);
- }
+ if (len > 0) {
+ for (i = 0, prev = 0, n = 0; i < (size_t)len; i++) {
+ if (s[i] != '\n')
+ continue;
+ n++;
+ fprintf(fp, nfmt, n, n, n);
+ xmlencode(fp, &s[prev], i - prev + 1);
+ prev = i + 1;
+ }
+ /* trailing data */
+ if ((i - prev) > 0) {
+ n++;
+ fprintf(fp, nfmt, n, n, n);
+ xmlencode(fp, &s[prev], len - prev);
}
}
- fputs("</pre></td><td><pre>\n", fp);
- xmlencode(fp, s, (size_t)len);
- fputs("</pre></td></tr></table>\n", fp);
+ fputs("</pre>\n", fp);
return n;
}
t@@ -486,7 +489,7 @@ printshowfile(FILE *fp, struct commitinfo *ci)
fwrite(&linestr[add], 1, del, fp);
fputs("</span></td></tr>\n", fp);
}
- fprintf(fp, "</table>%zu file%s changed, %zu insertion%s(+), %zu delet…
+ fprintf(fp, "</table></pre><pre>%zu file%s changed, %zu insertion%s(+)…
ci->filecount, ci->filecount == 1 ? "" : "s",
ci->addcount, ci->addcount == 1 ? "" : "s",
ci->delcount, ci->delcount == 1 ? "" : "s");
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.