- if (cmp > 0) {
- show_file("+", tree2, size2, base);
- return 1;
- }
- if (!memcmp(sha1, sha2, 20) && mode1 == mode2)
- return 0;
- if (recursive && S_ISDIR(mode1) && S_ISDIR(mode2)) {
- int retval;
- int baselen = strlen(base);
- char *newbase = malloc(baselen + pathlen1 + 2);
- memcpy(newbase, base, baselen);
- memcpy(newbase + baselen, path1, pathlen1);
- memcpy(newbase + baselen + pathlen1, "/", 2);
- retval = diff_tree_sha1(sha1, sha2, newbase);
- free(newbase);
- return retval;
- }
-
- strcpy(old_sha1_hex, sha1_to_hex(sha1));
- printf("*%o->%o %s->%s %s%s%c", mode1, mode2, old_sha1_hex, sha1_to_hex(sha2), base, path1, 0);
- return 0;