Skip to content

Commit

Permalink
get_patch_filename(): drop "just-numbers" hack
Browse files Browse the repository at this point in the history
The function chooses from three operating modes (format using the
subject, the commit, or just number) based on NULL-ness of two of
its parameters, which is an ugly hack for sharing only a bit of
code.

Separate out the "just numbers" part out to the callers.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Junio C Hamano committed Dec 22, 2012
1 parent 021f2f4 commit 38ec23a
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 16 deletions.
5 changes: 4 additions & 1 deletion builtin/log.c
Original file line number Diff line number Diff line change
Expand Up @@ -684,7 +684,10 @@ static int reopen_stdout(struct commit *commit, const char *subject,
strbuf_addch(&filename, '/');
}

get_patch_filename(&filename, commit, subject, rev);
if (rev->numbered_files)
strbuf_addf(&filename, "%d", rev->nr);
else
get_patch_filename(&filename, commit, subject, rev);

if (!quiet)
fprintf(realstdout, "%s\n", filename.buf + outdir_offset);
Expand Down
29 changes: 14 additions & 15 deletions log-tree.c
Original file line number Diff line number Diff line change
Expand Up @@ -307,21 +307,18 @@ void get_patch_filename(struct strbuf *buf,
int nr = info->nr;
int suffix_len = strlen(suffix) + 1;
int start_len = buf->len;
int max_len = start_len + FORMAT_PATCH_NAME_MAX - suffix_len;

strbuf_addf(buf, commit || subject ? "%04d-" : "%d", nr);
if (commit || subject) {
int max_len = start_len + FORMAT_PATCH_NAME_MAX - suffix_len;
strbuf_addf(buf, "%04d-", nr);
if (subject)
strbuf_addstr(buf, subject);
else if (commit) {
struct pretty_print_context ctx = {0};

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);
format_commit_message(commit, "%f", buf, &ctx);
}
if (max_len < buf->len)
strbuf_setlen(buf, max_len);
strbuf_addstr(buf, suffix);
}

void log_write_email_headers(struct rev_info *opt, struct commit *commit,
Expand Down Expand Up @@ -390,9 +387,11 @@ 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(&filename,
opt->numbered_files ? NULL : commit, NULL,
opt);
if (opt->numbered_files)
strbuf_addf(&filename, "%d", opt->nr);
else
get_patch_filename(&filename, commit, NULL,
opt);
snprintf(buffer, sizeof(buffer) - 1,
"\n--%s%s\n"
"Content-Type: text/x-patch;"
Expand Down

0 comments on commit 38ec23a

Please sign in to comment.