#!/bin/sh
#
# Copyright (c) 2006 Junio C Hamano
#

test_description='quoted output'

. ./test-lib.sh

FN='濱野'
GN='純'
HT='	'
LF='
'
DQ='"'

echo foo 2>/dev/null > "Name and an${HT}HT"
if ! test -f "Name and an${HT}HT"
then
	# FAT/NTFS does not allow tabs in filenames
	say 'Your filesystem does not allow tabs in filenames'
else
	test_set_prereq TABS_IN_FILENAMES
fi

for_each_name () {
	for name in \
	    Name "Name and a${LF}LF" "Name and an${HT}HT" "Name${DQ}" \
	    "$FN$HT$GN" "$FN$LF$GN" "$FN $GN" "$FN$GN" "$FN$DQ$GN" \
	    "With SP in it" "$FN/file"
	do
		eval "$1"
	done
}

test_expect_success TABS_IN_FILENAMES 'setup' '

	mkdir "$FN" &&
	for_each_name "echo initial >\"\$name\""
	git add . &&
	git commit -q -m Initial &&

	for_each_name "echo second >\"\$name\"" &&
	git commit -a -m Second

	for_each_name "echo modified >\"\$name\""

'

test_expect_success TABS_IN_FILENAMES 'setup expected files' '
cat >expect.quoted <<\EOF
Name
"Name and a\nLF"
"Name and an\tHT"
"Name\""
With SP in it
"\346\277\261\351\207\216\t\347\264\224"
"\346\277\261\351\207\216\n\347\264\224"
"\346\277\261\351\207\216 \347\264\224"
"\346\277\261\351\207\216\"\347\264\224"
"\346\277\261\351\207\216/file"
"\346\277\261\351\207\216\347\264\224"
EOF

cat >expect.raw <<\EOF
Name
"Name and a\nLF"
"Name and an\tHT"
"Name\""
With SP in it
"濱野\t純"
"濱野\n純"
濱野 純
"濱野\"純"
濱野/file
濱野純
EOF
'

test_expect_success TABS_IN_FILENAMES 'check fully quoted output from ls-files' '

	git ls-files >current && test_cmp expect.quoted current

'

test_expect_success TABS_IN_FILENAMES 'check fully quoted output from diff-files' '

	git diff --name-only >current &&
	test_cmp expect.quoted current

'

test_expect_success TABS_IN_FILENAMES 'check fully quoted output from diff-index' '

	git diff --name-only HEAD >current &&
	test_cmp expect.quoted current

'

test_expect_success TABS_IN_FILENAMES 'check fully quoted output from diff-tree' '

	git diff --name-only HEAD^ HEAD >current &&
	test_cmp expect.quoted current

'

test_expect_success TABS_IN_FILENAMES 'check fully quoted output from ls-tree' '

	git ls-tree --name-only -r HEAD >current &&
	test_cmp expect.quoted current

'

test_expect_success TABS_IN_FILENAMES 'setting core.quotepath' '

	git config --bool core.quotepath false

'

test_expect_success TABS_IN_FILENAMES 'check fully quoted output from ls-files' '

	git ls-files >current && test_cmp expect.raw current

'

test_expect_success TABS_IN_FILENAMES 'check fully quoted output from diff-files' '

	git diff --name-only >current &&
	test_cmp expect.raw current

'

test_expect_success TABS_IN_FILENAMES 'check fully quoted output from diff-index' '

	git diff --name-only HEAD >current &&
	test_cmp expect.raw current

'

test_expect_success TABS_IN_FILENAMES 'check fully quoted output from diff-tree' '

	git diff --name-only HEAD^ HEAD >current &&
	test_cmp expect.raw current

'

test_expect_success TABS_IN_FILENAMES 'check fully quoted output from ls-tree' '

	git ls-tree --name-only -r HEAD >current &&
	test_cmp expect.raw current

'

test_done
