diff options
Diffstat (limited to 'log-tree.c')
| -rw-r--r-- | log-tree.c | 19 | 
1 files changed, 11 insertions, 8 deletions
diff --git a/log-tree.c b/log-tree.c index 376d973176..c894930c18 100644 --- a/log-tree.c +++ b/log-tree.c @@ -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;"  | 
