git-svn: use YAML format for mergeinfo cache when possible
[gitweb.git] / log-tree.c
index 376d97317674dfe6dcffec3772c899c4fc96f82f..c894930c1863bfcf33a01b2d98c48478aa874186 100644 (file)
@@ -299,19 +299,22 @@ static unsigned int digits_in_number(unsigned int number)
        return result;
 }
 
-void get_patch_filename(struct commit *commit, int nr, const char *suffix,
-                       struct strbuf *buf)
+void get_patch_filename(struct commit *commit, const char *subject, int nr,
+                       const char *suffix, struct strbuf *buf)
 {
        int suffix_len = strlen(suffix) + 1;
        int start_len = buf->len;
 
-       strbuf_addf(buf, commit ? "%04d-" : "%d", nr);
-       if (commit) {
+       strbuf_addf(buf, commit || subject ? "%04d-" : "%d", nr);
+       if (commit || subject) {
                int max_len = start_len + FORMAT_PATCH_NAME_MAX - suffix_len;
                struct pretty_print_context ctx = {0};
-               ctx.date_mode = DATE_NORMAL;
 
-               format_commit_message(commit, "%f", buf, &ctx);
+               if (subject)
+                       strbuf_addstr(buf, subject);
+               else if (commit)
+                       format_commit_message(commit, "%f", buf, &ctx);
+
                if (max_len < buf->len)
                        strbuf_setlen(buf, max_len);
                strbuf_addstr(buf, suffix);
@@ -384,8 +387,8 @@ void log_write_email_headers(struct rev_info *opt, struct commit *commit,
                         mime_boundary_leader, opt->mime_boundary);
                extra_headers = subject_buffer;
 
-               get_patch_filename(opt->numbered_files ? NULL : commit, opt->nr,
-                                   opt->patch_suffix, &filename);
+               get_patch_filename(opt->numbered_files ? NULL : commit, NULL,
+                                  opt->nr, opt->patch_suffix, &filename);
                snprintf(buffer, sizeof(buffer) - 1,
                         "\n--%s%s\n"
                         "Content-Type: text/x-patch;"