diff options
author | Junio C Hamano <gitster@pobox.com> | 2011-11-04 17:00:03 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-11-07 15:34:30 -0800 |
commit | 4c0ea82da3cd35eff50377cab78208c8ef57933b (patch) | |
tree | 8e6a172edb156cef71a08c6ad508dae1c254d348 /builtin/fmt-merge-msg.c | |
parent | refs DWIMmery: use the same rule for both "git fetch" and others (diff) | |
download | tgif-4c0ea82da3cd35eff50377cab78208c8ef57933b.tar.xz |
fmt-merge-msg: avoid early returns
In various places in the codepath, the program tries to return early
assuming there is no more work needed. That is generally untrue when
over time new features are added.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/fmt-merge-msg.c')
-rw-r--r-- | builtin/fmt-merge-msg.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/builtin/fmt-merge-msg.c b/builtin/fmt-merge-msg.c index 7e2f22589d..7b492f9177 100644 --- a/builtin/fmt-merge-msg.c +++ b/builtin/fmt-merge-msg.c @@ -26,6 +26,7 @@ static int fmt_merge_msg_config(const char *key, const char *value, void *cb) return 0; } +/* merge data per repository where the merged tips came from */ struct src_data { struct string_list branch, tag, r_branch, generic; int head_status; @@ -71,6 +72,11 @@ static int handle_line(char *line) line[len - 1] = 0; line += 42; + /* + * At this point, line points at the beginning of comment e.g. + * "branch 'frotz' of git://that/repository.git". + * Find the repository name and point it with src. + */ src = strstr(line, " of "); if (src) { *src = 0; @@ -283,10 +289,7 @@ static int do_fmt_merge_msg(int merge_title, struct strbuf *in, die ("Error in line %d: %.*s", i, len, p); } - if (!srcs.nr) - return 0; - - if (merge_title) + if (merge_title && srcs.nr) do_fmt_merge_msg_title(out, current_branch); if (shortlog_len) { @@ -306,6 +309,8 @@ static int do_fmt_merge_msg(int merge_title, struct strbuf *in, shortlog(origins.items[i].string, origins.items[i].util, head, &rev, shortlog_len, out); } + if (out->len && out->buf[out->len-1] != '\n') + strbuf_addch(out, '\n'); return 0; } @@ -341,12 +346,7 @@ int cmd_fmt_merge_msg(int argc, const char **argv, const char *prefix) 0); if (argc > 0) usage_with_options(fmt_merge_msg_usage, options); - if (message && !shortlog_len) { - char nl = '\n'; - write_in_full(STDOUT_FILENO, message, strlen(message)); - write_in_full(STDOUT_FILENO, &nl, 1); - return 0; - } + if (shortlog_len < 0) die("Negative --log=%d", shortlog_len); |