mirror of
https://github.com/git/git.git
synced 2024-11-18 02:23:52 +01:00
shortlog: support outputting to streams other than stdout
This will be needed to avoid freopen() in `git format-patch`. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
c61008fdfb
commit
0a7b357737
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user