log-tree: use custom line terminator in line termination mode

When using a custom format in line termination mode (as opposed to line
separation mode), the configured line terminator is not used, so things
like "git log --pretty=tformat:%H -z" do not work properly.

Make it use the line terminator the user ordered.

Signed-off-by: Jan Krüger <jk@jk.gs>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jan Krüger 2012-04-30 22:28:25 +02:00 committed by Junio C Hamano
parent f174a2583c
commit 3e065308ca
2 changed files with 13 additions and 1 deletions

View File

@ -513,7 +513,7 @@ void show_log(struct rev_info *opt)
if (opt->use_terminator) {
if (!opt->missing_newline)
graph_show_padding(opt->graph);
putchar('\n');
putchar(opt->diffopt.line_termination);
}
strbuf_release(&msgbuf);

View File

@ -71,4 +71,16 @@ test_expect_success 'alias loop' '
test_must_fail git log --pretty=test-foo
'
test_expect_success 'NUL separation' '
printf "add bar\0initial" >expected &&
git log -z --pretty="format:%s" >actual &&
test_cmp expected actual
'
test_expect_success 'NUL termination' '
printf "add bar\0initial\0" >expected &&
git log -z --pretty="tformat:%s" >actual &&
test_cmp expected actual
'
test_done