stagit

[fork] HTML git frontend
Log | Files | Refs | README | LICENSE

commit fe5855546a20df48fd60e8c78674ff91fbcfc710
parent 18e6c1beda47949082d0630fb3a697438b2e80d9
Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date:   Mon,  7 Dec 2015 20:46:51 +0100

detect binary diff, comment index + delta header for now (broken)

Diffstat:
Murmoms.c | 36+++++++++++++++++++++++++-----------
1 file changed, 25 insertions(+), 11 deletions(-)

diff --git a/urmoms.c b/urmoms.c @@ -257,19 +257,33 @@ printshowfile(git_commit *commit) relpath, delta->old_file.path, delta->old_file.path, relpath, delta->new_file.path, delta->new_file.path); - /* TODO: add --- and +++ lines */ + /* TODO: "new file mode <mode>". */ + /* TODO: add indexfrom...indexto + flags */ #if 0 - switch (delta->flags) { - case GIT_DIFF_FLAG_BINARY: - /* "Binary files /dev/null and b/favicon.png differ" or so */ - continue; /* TODO: binary data */ - case GIT_DIFF_FLAG_NOT_BINARY: break; - case GIT_DIFF_FLAG_VALID_ID: break; /* TODO: check */ - case GIT_DIFF_FLAG_EXISTS: break; /* TODO: check */ - } + fputs("<b>--- ", fp); + if (delta->status & GIT_DELTA_ADDED) + fputs("/dev/null", fp); + else + fprintf(fp, "a/<a href=\"%sfile/%s\">%s</a>", + relpath, delta->old_file.path, delta->old_file.path); + + fputs("\n+++ ", fp); + if (delta->status & GIT_DELTA_DELETED) + fputs("/dev/null", fp); + else + fprintf(fp, "b/<a href=\"%sfile/%s\">%s</a>", + relpath, delta->new_file.path, delta->new_file.path); + fputs("</b>\n", fp); #endif + /* check binary data */ + if (delta->flags & GIT_DIFF_FLAG_BINARY) { + fputs("Binary files differ\n", fp); + git_patch_free(patch); + continue; + } + nhunks = git_patch_num_hunks(patch); for (j = 0; j < nhunks; j++) { if (git_patch_get_hunk(&hunk, &nhunklines, patch, j)) @@ -333,8 +347,8 @@ writelog(FILE *fp) "<td align=\"right\">Files</td><td align=\"right\">+</td><td align=\"right\">-</td></tr>\n</thead><tbody>\n", fp); while (!git_revwalk_next(&id, w)) { /* DEBUG */ - if (i++ > 100) - break; +/* if (i++ > 100) + break;*/ relpath = "";