Browse Source

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>
maint
Jan Krüger 13 years ago committed by Junio C Hamano
parent
commit
3e065308ca
  1. 2
      log-tree.c
  2. 12
      t/t4205-log-pretty-formats.sh

2
log-tree.c

@ -513,7 +513,7 @@ void show_log(struct rev_info *opt) @@ -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);

12
t/t4205-log-pretty-formats.sh

@ -71,4 +71,16 @@ test_expect_success 'alias loop' ' @@ -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

Loading…
Cancel
Save