[PATCH 4/4] Trivial test harness fixes.
[gitweb.git] / diff.c
diff --git a/diff.c b/diff.c
index 32309971222bfd0647cb3885d9cf4903b7dfaacf..a237311d7a7358fca67633d648eaa5d257f87755 100644 (file)
--- a/diff.c
+++ b/diff.c
@@ -83,6 +83,7 @@ static void builtin_diff(const char *name,
                         struct diff_tempfile *temp)
 {
        int i, next_at;
+       const char *git_prefix = "# mode: ";
        const char *diff_cmd = "diff -L'%s%s' -L'%s%s'";
        const char *diff_arg  = "'%s' '%s'||:"; /* "||:" is to return 0 */
        const char *input_name_sq[2];
@@ -123,17 +124,18 @@ static void builtin_diff(const char *name,
                            diff_arg, input_name_sq[0], input_name_sq[1]);
 
        if (!path1[0][0])
-               printf("Created: %s (mode:%s)\n", name, temp[1].mode);
+               printf("%s. %s %s\n", git_prefix, temp[1].mode, name);
        else if (!path1[1][0])
-               printf("Deleted: %s\n", name);
-       else if (strcmp(temp[0].mode, temp[1].mode)) {
-               printf("Mode changed: %s (%s->%s)\n", name,
-                      temp[0].mode, temp[1].mode);
-               /* Be careful.  We do not want to diff between
-                * symlink and a file.
-                */
-               if (strncmp(temp[0].mode, "120", 3) !=
-                   strncmp(temp[1].mode, "120", 3))
+               printf("%s%s . %s\n", git_prefix, temp[0].mode, name);
+       else {
+               if (strcmp(temp[0].mode, temp[1].mode))
+                       printf("%s%s %s %s\n", git_prefix,
+                              temp[0].mode, temp[1].mode, name);
+
+               if (strncmp(temp[0].mode, temp[1].mode, 3))
+                       /* we do not run diff between different kind
+                        * of objects.
+                        */
                        exit(0);
        }
        fflush(NULL);
@@ -173,7 +175,7 @@ static int work_tree_matches(const char *name, const unsigned char *sha1)
        ce = active_cache[pos];
        if ((lstat(name, &st) < 0) ||
            !S_ISREG(st.st_mode) ||
-           cache_match_stat(ce, &st) ||
+           ce_match_stat(ce, &st) ||
            memcmp(sha1, ce->sha1, 20))
                return 0;
        return 1;