| Date: Thu, 10 Dec 2015 22:24:18 +0000
Line numbers on blob pages
Diffstat:
M style.css | 15 ++++++++++++++-
M urmoms.c | 29 ++++++++++++++++++++++++-----
2 files changed, 38 insertions(+), 6 deletions(-)
--- |
| @@ -21,6 +21,15 @@ a:hover {
text-decoration: underline;
}
+#blob a {
+ color: #777;
+}
+
+#blob a:hover {
+ color: blue;
+ text-decoration: none;
+}
+
table thead td {
font-weight: bold;
}
@@ -29,10 +38,14 @@ table td {
padding: 0 0.4em;
}
-#content table tr:hover td {
+#log tr:hover td, #files tr:hover td {
background-color: #eee;
}
+td.num {
+ text-align: right;
+}
+
.desc {
color: #777;
} |
| @@ -241,7 +241,28 @@ printtimeshort(FILE *fp, const git_time *intime)
void
writeblobhtml(FILE *fp, const git_blob *blob)
{
- xmlencode(fp, git_blob_rawcontent(blob), (size_t)git_blob_rawsize(blob));
+ off_t i = 0;
+ size_t n = 1;
+ char *nfmt = "%d\n";
+ const char *s = git_blob_rawcontent(blob);
+ git_off_t len = git_blob_rawsize(blob);
+
+ fputs(" \n", fp);
+
+ if (len) {
+ fprintf(fp, nfmt, n, n, n);
+ while (i < len - 1) {
+ if (s[i] == '\n') {
+ n++;
+ fprintf(fp, nfmt, n, n, n);
+ }
+ i++;
+ }
+ }
+
+ fputs(" | \n", fp);
+ xmlencode(fp, s, (size_t)len);
+ fputs(" | \n", fp);
}
void
@@ -392,7 +413,7 @@ writelog(FILE *fp)
git_revwalk_simplify_first_parent(w);
/* TODO: also make "expanded" log ? (with message body) */
- fputs("\nAge | Commit message | Author | "
+ fputs("\nAge | Commit message | Author | "
"Files | + | - | \n\n", fp);
while (!git_revwalk_next(&id, w)) {
relpath = "";
@@ -553,11 +574,9 @@ writeblob(const git_index_entry *entry)
if (git_blob_is_binary((git_blob *)obj)) {
fprintf(fp, "Binary file \n");
} else {
- fputs("\n", fp);
writeblobhtml(fp, (git_blob *)obj);
if (ferror(fp))
err(1, "fwrite");
- fputs(" \n", fp);
}
git_object_free(obj);
writefooter(fp);
@@ -575,7 +594,7 @@ writefiles(FILE *fp)
git_index *index;
size_t count, i;
- fputs("\n"
+ fputs("\n"
"Mode | Name | Size | \n"
"\n", fp);
|