Code

git blame -C: fix output format tweaks when crossing file boundary.
authorJunio C Hamano <junkio@cox.net>
Wed, 29 Nov 2006 06:29:18 +0000 (22:29 -0800)
committerJunio C Hamano <junkio@cox.net>
Wed, 29 Nov 2006 06:32:23 +0000 (22:32 -0800)
We used to get the case that more than two paths came from the
same commit wrong when computing the output width and deciding
to turn on --show-name option automatically.  When we find that
lines that came from a path that is different from what we
started digging from, we should always turn --show-name on, and
we should count the name length for all files involved.

Signed-off-by: Junio C Hamano <junkio@cox.net>
builtin-blame.c

index 066dee743e9fdd80478395c605d9afc4682600c6..53fed4501ad9cb0d142bf516a743d1a487b0b04e 100644 (file)
@@ -1435,14 +1435,14 @@ static void find_alignment(struct scoreboard *sb, int *option)
                struct commit_info ci;
                int num;
 
+               if (strcmp(suspect->path, sb->path))
+                       *option |= OUTPUT_SHOW_NAME;
+               num = strlen(suspect->path);
+               if (longest_file < num)
+                       longest_file = num;
                if (!(suspect->commit->object.flags & METAINFO_SHOWN)) {
                        suspect->commit->object.flags |= METAINFO_SHOWN;
                        get_commit_info(suspect->commit, &ci, 1);
-                       if (strcmp(suspect->path, sb->path))
-                               *option |= OUTPUT_SHOW_NAME;
-                       num = strlen(suspect->path);
-                       if (longest_file < num)
-                               longest_file = num;
                        num = strlen(ci.author);
                        if (longest_author < num)
                                longest_author = num;