diff options
author | Stephen Boyd <bebarino@gmail.com> | 2010-03-24 00:16:01 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-03-24 19:40:43 -0700 |
commit | 15cb500786c3bc618dafa3c6bc9535236e7bfdcd (patch) | |
tree | dfd18ee625739792003d9cdaaee027d0eba455dc | |
parent | t6200: test fmt-merge-msg more (diff) | |
download | tgif-15cb500786c3bc618dafa3c6bc9535236e7bfdcd.tar.xz |
fmt-merge-msg: use pretty.c routines
This command duplicates functionality of the '%s' pretty format.
Simplify the code a bit by using the pretty printing routine
instead of open-coding it here.
Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | builtin/fmt-merge-msg.c | 29 |
1 files changed, 8 insertions, 21 deletions
diff --git a/builtin/fmt-merge-msg.c b/builtin/fmt-merge-msg.c index 9bb26255e0..44b74f447a 100644 --- a/builtin/fmt-merge-msg.c +++ b/builtin/fmt-merge-msg.c @@ -185,6 +185,7 @@ static void shortlog(const char *name, unsigned char *sha1, struct object *branch; struct list subjects = { NULL, NULL, 0, 0 }; int flags = UNINTERESTING | TREESAME | SEEN | SHOWN | ADDED; + struct strbuf sb = STRBUF_INIT; branch = deref_tag(parse_object(sha1), sha1_to_hex(sha1), 40); if (!branch || branch->type != OBJ_COMMIT) @@ -198,7 +199,7 @@ static void shortlog(const char *name, unsigned char *sha1, if (prepare_revision_walk(rev)) die("revision walk setup failed"); while ((commit = get_revision(rev)) != NULL) { - char *oneline, *bol, *eol; + struct pretty_print_context ctx = {0}; /* ignore merges */ if (commit->parents && commit->parents->next) @@ -208,30 +209,16 @@ static void shortlog(const char *name, unsigned char *sha1, if (subjects.nr > limit) continue; - bol = strstr(commit->buffer, "\n\n"); - if (bol) { - unsigned char c; - do { - c = *++bol; - } while (isspace(c)); - if (!c) - bol = NULL; - } + format_commit_message(commit, "%s", &sb, &ctx); + strbuf_ltrim(&sb); - if (!bol) { + if (!sb.len) append_to_list(&subjects, xstrdup(sha1_to_hex( commit->object.sha1)), NULL); - continue; - } - - eol = strchr(bol, '\n'); - if (eol) { - oneline = xmemdupz(bol, eol - bol); - } else { - oneline = xstrdup(bol); - } - append_to_list(&subjects, oneline, NULL); + else + append_to_list(&subjects, strbuf_detach(&sb, NULL), + NULL); } if (count > limit) |