diff options
author | Stephen Boyd <bebarino@gmail.com> | 2009-03-22 19:14:04 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-03-22 21:42:05 -0700 |
commit | 6fa8e6278b210bfa56fcb54ed38d2b485350e7c6 (patch) | |
tree | 823383ea9f4d4f82fb0a8b3be21a023b6ca0f95d /log-tree.c | |
parent | cd2ef591c8e753fe5295ac3c6f1dee481f00a185 (diff) | |
download | git-6fa8e6278b210bfa56fcb54ed38d2b485350e7c6.tar.gz |
format-patch: move get_patch_filename() into log-tree
Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'log-tree.c')
-rw-r--r-- | log-tree.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/log-tree.c b/log-tree.c index 9565c184db..aee9995531 100644 --- a/log-tree.c +++ b/log-tree.c @@ -179,6 +179,28 @@ static int has_non_ascii(const char *s) return 0; } +void get_patch_filename(struct commit *commit, 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) { + format_commit_message(commit, "%f", buf, DATE_NORMAL); + /* + * Replace characters at the end with the suffix if the + * filename is too long + */ + if (buf->len + suffix_len > FORMAT_PATCH_NAME_MAX + start_len) + strbuf_splice(buf, + start_len + FORMAT_PATCH_NAME_MAX - suffix_len, + suffix_len, suffix, suffix_len); + else + strbuf_addstr(buf, suffix); + } +} + void log_write_email_headers(struct rev_info *opt, const char *name, const char **subject_p, const char **extra_headers_p, |