Commit 0a7b3577 authored by Johannes Schindelin's avatar Johannes Schindelin Committed by Junio C Hamano

shortlog: support outputting to streams other than stdout

This will be needed to avoid freopen() in `git format-patch`.
Signed-off-by: Johannes Schindelin's avatarJohannes Schindelin <[email protected]>
Signed-off-by: default avatarJunio C Hamano <[email protected]>
parent c61008fd
......@@ -229,6 +229,7 @@ void shortlog_init(struct shortlog *log)
log->wrap = DEFAULT_WRAPLEN;
log->in1 = DEFAULT_INDENT1;
log->in2 = DEFAULT_INDENT2;
log->file = stdout;
}
int cmd_shortlog(int argc, const char **argv, const char *prefix)
......@@ -310,22 +311,24 @@ void shortlog_output(struct shortlog *log)
for (i = 0; i < log->list.nr; i++) {
const struct string_list_item *item = &log->list.items[i];
if (log->summary) {
printf("%6d\t%s\n", (int)UTIL_TO_INT(item), item->string);
fprintf(log->file, "%6d\t%s\n",
(int)UTIL_TO_INT(item), item->string);
} else {
struct string_list *onelines = item->util;
printf("%s (%d):\n", item->string, onelines->nr);
fprintf(log->file, "%s (%d):\n",
item->string, onelines->nr);
for (j = onelines->nr - 1; j >= 0; j--) {
const char *msg = onelines->items[j].string;
if (log->wrap_lines) {
strbuf_reset(&sb);
add_wrapped_shortlog_msg(&sb, msg, log);
fwrite(sb.buf, sb.len, 1, stdout);
fwrite(sb.buf, sb.len, 1, log->file);
}
else
printf(" %s\n", msg);
fprintf(log->file, " %s\n", msg);
}
putchar('\n');
putc('\n', log->file);
onelines->strdup_strings = 1;
string_list_clear(onelines, 0);
free(onelines);
......
......@@ -17,6 +17,7 @@ struct shortlog {
char *common_repo_prefix;
int email;
struct string_list mailmap;
FILE *file;
};
void shortlog_init(struct shortlog *log);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment