diff-tree: show hex sha1 of the single-commit argument case correctly.
authorLinus Torvalds <torvalds@ppc970.osdl.org>
Wed, 18 May 2005 20:43:58 +0000 (13:43 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Wed, 18 May 2005 20:43:58 +0000 (13:43 -0700)
We can't just do the "sha1_to_hex()" thing directly, since the
buffer in question will be overwritten by the name of the parent.

So teach diff_tree_commit() to generate the proper hex name itself.

diff-tree.c

index 8cfe990..acd1524 100644 (file)
@@ -356,6 +356,12 @@ static int diff_tree_commit(const unsigned char *commit, const char *name)
                        return 0;
        }
 
+       if (!name) {
+               static char commit_name[60];
+               strcpy(commit_name, sha1_to_hex(commit));
+               name = commit_name;
+       }
+
        offset = 46;
        while (offset + 48 < size && !memcmp(buf + offset, "parent ", 7)) {
                unsigned char parent[20];
@@ -472,7 +478,7 @@ int main(int argc, char **argv)
                        usage(diff_tree_usage);
                break;
        case 1:
-               diff_tree_commit(sha1[0], sha1_to_hex(sha1[0]));
+               diff_tree_commit(sha1[0], NULL);
                break;
        case 2:
                diff_tree_sha1(sha1[0], sha1[1], "");