Make git-clone to take long double-dashed origin option (--origin)
[git.git] / diff.c
diff --git a/diff.c b/diff.c
index 562ca01..e496905 100644 (file)
--- a/diff.c
+++ b/diff.c
@@ -267,6 +267,7 @@ static void builtin_diff(const char *name_a,
                ecbdata.label_path = lbl;
                xpp.flags = XDF_NEED_MINIMAL;
                xecfg.ctxlen = 3;
+               xecfg.flags = XDL_EMIT_FUNCNAMES;
                if (!diffopts)
                        ;
                else if (!strncmp(diffopts, "--unified=", 10))
@@ -299,7 +300,7 @@ void fill_filespec(struct diff_filespec *spec, const unsigned char *sha1,
                   unsigned short mode)
 {
        if (mode) {
-               spec->mode = DIFF_FILE_CANON_MODE(mode);
+               spec->mode = canon_mode(mode);
                memcpy(spec->sha1, sha1, 20);
                spec->sha1_valid = !!memcmp(sha1, null_sha1, 20);
        }
@@ -484,6 +485,8 @@ void diff_free_filespec_data(struct diff_filespec *s)
                munmap(s->data, s->size);
        s->should_free = s->should_munmap = 0;
        s->data = NULL;
+       free(s->cnt_data);
+       s->cnt_data = NULL;
 }
 
 static void prep_temp_blob(struct diff_tempfile *temp,