| Date: Mon, 7 Dec 2015 20:46:51 +0100
detect binary diff, comment index + delta header for now (broken)
Diffstat:
M urmoms.c | 36 +++++++++++++++++++++----------
1 file changed, 25 insertions(+), 11 deletions(-)
--- |
| t@@ -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 ". */
+ /* 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("--- ", fp);
+ if (delta->status & GIT_DELTA_ADDED)
+ fputs("/dev/null", fp);
+ else
+ fprintf(fp, "a/%s",
+ 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/%s",
+ relpath, delta->new_file.path, delta->new_file.path);
+ fputs("\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))
t@@ -333,8 +347,8 @@ writelog(FILE *fp)
"Files | + | - | |
\n