summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 1cd9508)
raw | patch | inline | side by side (parent: 1cd9508)
author | Junio C Hamano <junkio@cox.net> | |
Sun, 16 Apr 2006 01:38:32 +0000 (18:38 -0700) | ||
committer | Junio C Hamano <junkio@cox.net> | |
Sun, 16 Apr 2006 02:22:48 +0000 (19:22 -0700) |
Signed-off-by: Junio C Hamano <junkio@cox.net>
diff.c | patch | blob | history |
index cda8d2069efd4f408b17fe7c32c51ab7ccea65cb..46e8529a649d493b4f5a6a4ddb80912290ac8a2e 100644 (file)
--- a/diff.c
+++ b/diff.c
int alloc;
struct diffstat_file {
char *name;
+ unsigned is_unmerged:1;
+ unsigned is_binary:1;
unsigned int added, deleted;
} **files;
};
for (i = 0; i < data->nr; i++) {
struct diffstat_file *file = data->files[i];
+ if (file->is_binary || file->is_unmerged)
+ continue;
if (max_change < file->added + file->deleted)
max_change = file->added + file->deleted;
len = strlen(file->name);
if (max + len > 70)
max = 70 - len;
- if (added < 0) {
- /* binary file */
+ if (data->files[i]->is_binary) {
printf(" %s%-*s | Bin\n", prefix, len, name);
goto free_diffstat_file;
- } else if (added + deleted == 0) {
+ }
+ else if (data->files[i]->is_unmerged) {
+ printf(" %s%-*s | Unmerged\n", prefix, len, name);
+ goto free_diffstat_file;
+ }
+ else if (added + deleted == 0) {
total_files--;
goto free_diffstat_file;
}
data = diffstat_add(diffstat, name_a ? name_a : name_b);
+ if (!one || !two) {
+ data->is_unmerged = 1;
+ return;
+ }
+
if (fill_mmfile(&mf1, one) < 0 || fill_mmfile(&mf2, two) < 0)
die("unable to read files to diff");
if (mmfile_is_binary(&mf1) || mmfile_is_binary(&mf2))
- data->added = -1;
+ data->is_binary = 1;
else {
/* Crazy xdl interfaces.. */
xpparam_t xpp;