Code

git-merge: add --ff and --no-ff options
[git.git] / builtin-archive.c
index 65bf9cbec1fdeff4bded1602d73ed62abe189fae..a90c65ce54a1c3e415b46465a2b4c7bfdffca9ff 100644 (file)
@@ -81,8 +81,8 @@ static int run_remote_archiver(const char *remote, int argc,
        return !!rv;
 }
 
-static void *format_specfile(const struct commit *commit, const char *format,
-                             unsigned long *sizep)
+static void *format_subst(const struct commit *commit, const char *format,
+                          unsigned long *sizep)
 {
        unsigned long len = *sizep, result_len = 0;
        const char *a = format;
@@ -108,6 +108,7 @@ static void *format_specfile(const struct commit *commit, const char *format,
 
                formatted_len = format_commit_message(commit, fmt, &formatted,
                                                      &allocated);
+               free(fmt);
                result = xrealloc(result, result_len + a_len + formatted_len);
                memcpy(result + result_len, a, a_len);
                memcpy(result + result_len + a_len, formatted, formatted_len);
@@ -131,22 +132,22 @@ static void *convert_to_archive(const char *path,
                                 const void *src, unsigned long *sizep,
                                 const struct commit *commit)
 {
-       static struct git_attr *attr_specfile;
+       static struct git_attr *attr_export_subst;
        struct git_attr_check check[1];
 
        if (!commit)
                return NULL;
 
-        if (!attr_specfile)
-                attr_specfile = git_attr("specfile", 8);
+        if (!attr_export_subst)
+                attr_export_subst = git_attr("export-subst", 12);
 
-       check[0].attr = attr_specfile;
+       check[0].attr = attr_export_subst;
        if (git_checkattr(path, ARRAY_SIZE(check), check))
                return NULL;
        if (!ATTR_TRUE(check[0].value))
                return NULL;
 
-       return format_specfile(commit, src, sizep);
+       return format_subst(commit, src, sizep);
 }
 
 void *sha1_file_to_archive(const char *path, const unsigned char *sha1,