Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
diff-options: add --stat (take 2)
author
Johannes Schindelin
<Johannes.Schindelin@gmx.de>
Thu, 13 Apr 2006 23:09:48 +0000
(
01:09
+0200)
committer
Junio C Hamano
<junkio@cox.net>
Thu, 13 Apr 2006 23:50:02 +0000
(16:50 -0700)
... and a fix for an invalid free():
Signed-off-by: Junio C Hamano <junkio@cox.net>
diff.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
d75f795
)
diff --git
a/diff.c
b/diff.c
index 14ffc774f07b843c1d5f8b1370816c06cf536abf..c120239ef34b150e3d4b94b6815714a8a0c33e23 100644
(file)
--- a/
diff.c
+++ b/
diff.c
@@
-266,7
+266,7
@@
static void show_stats(struct diffstat_t* data)
char *qname = xmalloc(len + 1);
quote_c_style(name, qname, NULL, 0);
free(name);
char *qname = xmalloc(len + 1);
quote_c_style(name, qname, NULL, 0);
free(name);
- name = qname;
+
data->files[i]->name =
name = qname;
}
/*
}
/*
@@
-297,10
+297,10
@@
static void show_stats(struct diffstat_t* data)
if (added < 0) {
/* binary file */
printf(" %s%-*s | Bin\n", prefix, len, name);
if (added < 0) {
/* binary file */
printf(" %s%-*s | Bin\n", prefix, len, name);
-
continu
e;
+
goto free_diffstat_fil
e;
} else if (added + deleted == 0) {
total_files--;
} else if (added + deleted == 0) {
total_files--;
-
continu
e;
+
goto free_diffstat_fil
e;
}
add = added;
}
add = added;
@@
-314,11
+314,11
@@
static void show_stats(struct diffstat_t* data)
add = (add * max + max_change / 2) / max_change;
del = total - add;
}
add = (add * max + max_change / 2) / max_change;
del = total - add;
}
- /* TODO: binary */
printf(" %s%-*s |%5d %.*s%.*s\n", prefix,
len, name, added + deleted,
add, pluses, del, minuses);
printf(" %s%-*s |%5d %.*s%.*s\n", prefix,
len, name, added + deleted,
add, pluses, del, minuses);
- free(name);
+ free_diffstat_file:
+ free(data->files[i]->name);
free(data->files[i]);
}
free(data->files);
free(data->files[i]);
}
free(data->files);