diff --git a/log-tree.c b/log-tree.c
index 56a34885924f32559f6829c43a24541cb0fea1ac..59d63eb67e57ab55bdca6493fa8b28b0c870ff21 100644 (file)
--- a/log-tree.c
+++ b/log-tree.c
struct object *obj = parse_object(sha1);
if (!obj)
return 0;
+ refname = prettify_refname(refname);
add_name_decoration("", refname, obj);
while (obj->type == OBJ_TAG) {
obj = ((struct tag *)obj)->tagged;
strbuf_addf(buf, commit ? "%04d-" : "%d", nr);
if (commit) {
+ int max_len = start_len + FORMAT_PATCH_NAME_MAX - suffix_len;
+
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);
+ if (max_len < buf->len)
+ strbuf_setlen(buf, max_len);
+ strbuf_addstr(buf, suffix);
}
}