aboutsummaryrefslogtreecommitdiff
path: root/diff.c
diff options
context:
space:
mode:
authorAlexandre Julliard <julliard@winehq.org>2007-02-10 15:36:47 +0100
committerJunio C Hamano <junkio@cox.net>2007-02-11 12:47:22 -0800
commitb9f441646c5c8abb92dc110d28decdfe2c9720b2 (patch)
tree2131248137ec3583521bd5ac7900a3482a8003fb /diff.c
parent1187d7564d67b532df402050711cb494ceaec2f9 (diff)
downloadgit-b9f441646c5c8abb92dc110d28decdfe2c9720b2.tar.gz
git-b9f441646c5c8abb92dc110d28decdfe2c9720b2.tar.xz
diff.c: Reuse the pprint_rename function for diff --summary output.
This avoids some code duplication, and yields more readable results for directory renames. Signed-off-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'diff.c')
-rw-r--r--diff.c31
1 files changed, 4 insertions, 27 deletions
diff --git a/diff.c b/diff.c
index 22be3f77b..acd689643 100644
--- a/diff.c
+++ b/diff.c
@@ -2430,34 +2430,11 @@ static void show_mode_change(struct diff_filepair *p, int show_name)
static void show_rename_copy(const char *renamecopy, struct diff_filepair *p)
{
- const char *old, *new;
+ char *names = pprint_rename(p->one->path, p->two->path);
- /* Find common prefix */
- old = p->one->path;
- new = p->two->path;
- while (1) {
- const char *slash_old, *slash_new;
- slash_old = strchr(old, '/');
- slash_new = strchr(new, '/');
- if (!slash_old ||
- !slash_new ||
- slash_old - old != slash_new - new ||
- memcmp(old, new, slash_new - new))
- break;
- old = slash_old + 1;
- new = slash_new + 1;
- }
- /* p->one->path thru old is the common prefix, and old and new
- * through the end of names are renames
- */
- if (old != p->one->path)
- printf(" %s %.*s{%s => %s} (%d%%)\n", renamecopy,
- (int)(old - p->one->path), p->one->path,
- old, new, (int)(0.5 + p->score * 100.0/MAX_SCORE));
- else
- printf(" %s %s => %s (%d%%)\n", renamecopy,
- p->one->path, p->two->path,
- (int)(0.5 + p->score * 100.0/MAX_SCORE));
+ printf(" %s %s (%d%%)\n", renamecopy, names,
+ (int)(0.5 + p->score * 100.0/MAX_SCORE));
+ free(names);
show_mode_change(p, 0);
}