summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2012-05-07 13:29:01 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2012-05-07 13:29:01 -0700
commit43d1e41ea91ba95b902f549274916660bf520b98 (patch)
treece1dfff3b4ae0c58854cfd280fceb9b5822587cc
parentMerge branch 'th/difftool-diffall' (diff)
parentlog-tree: the previous one is still not quite right (diff)
downloadtgif-43d1e41ea91ba95b902f549274916660bf520b98.tar.xz
Merge branch 'jk/maint-tformat-with-z'
"log -z --pretty=tformat:..." does not terminate each record with NUL and this is a beginning of an attempt to fix it. It still is not right but the patch does not make externally observable behaviour worse. By Jan Krüger (1) and Junio C Hamano (1) * jk/maint-tformat-with-z: log-tree: the previous one is still not quite right log-tree: use custom line terminator in line termination mode
-rw-r--r--log-tree.c2
-rwxr-xr-xt/t4205-log-pretty-formats.sh28
2 files changed, 29 insertions, 1 deletions
diff --git a/log-tree.c b/log-tree.c
index 34c49e7b33..44f0268372 100644
--- a/log-tree.c
+++ b/log-tree.c
@@ -682,7 +682,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 2ae9faa8b3..4afd77815f 100755
--- a/t/t4205-log-pretty-formats.sh
+++ b/t/t4205-log-pretty-formats.sh
@@ -71,4 +71,32 @@ 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_expect_success 'NUL separation with --stat' '
+ stat0_part=$(git diff --stat HEAD^ HEAD) &&
+ stat1_part=$(git diff --stat --root HEAD^) &&
+ printf "add bar\n$stat0_part\n\0initial\n$stat1_part\n" >expected &&
+ git log -z --stat --pretty="format:%s" >actual &&
+ test_cmp expected actual
+'
+
+test_expect_failure 'NUL termination with --stat' '
+ stat0_part=$(git diff --stat HEAD^ HEAD) &&
+ stat1_part=$(git diff --stat --root HEAD^) &&
+ printf "add bar\n$stat0_part\n\0initial\n$stat1_part\n\0" >expected &&
+ git log -z --stat --pretty="tformat:%s" >actual &&
+ test_cmp expected actual
+'
+
test_done