aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Krüger <jk@jk.gs>2012-04-30 22:28:25 +0200
committerJunio C Hamano <gitster@pobox.com>2012-05-01 09:56:37 -0700
commit3e065308cab1ac0855bf19be8881def74bfcf7fc (patch)
treeac5dee72bc6339b858ade4b708686d56639e07d4
parentf174a2583c9f42315b60205890fa67a79a1f1669 (diff)
downloadgit-3e065308cab1ac0855bf19be8881def74bfcf7fc.tar.gz
git-3e065308cab1ac0855bf19be8881def74bfcf7fc.tar.xz
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>
-rw-r--r--log-tree.c2
-rwxr-xr-xt/t4205-log-pretty-formats.sh12
2 files changed, 13 insertions, 1 deletions
diff --git a/log-tree.c b/log-tree.c
index e9457019d..f4e2ba369 100644
--- a/log-tree.c
+++ b/log-tree.c
@@ -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);
diff --git a/t/t4205-log-pretty-formats.sh b/t/t4205-log-pretty-formats.sh
index 2ae9faa8b..f00e44682 100755
--- a/t/t4205-log-pretty-formats.sh
+++ b/t/t4205-log-pretty-formats.sh
@@ -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