#! /bin/sh

# Test manconv's support for guessing the input encoding if it is not
# explicitly specified.

: "${srcdir=.}"
# shellcheck source-path=SCRIPTDIR
. "$srcdir/testlib.sh"

: "${MANCONV=manconv}"

init

if [ "$HAVE_ICONV" != yes ]; then
	skip 'encoding conversion requires a working iconv'
fi

write_page coding-tag 7 \
	"$tmpdir/usr/share/man/man7/coding-tag.7" \
	ISO-8859-1 '' '' 'coding-tag \- é'
iconv -f ISO-8859-1 -t UTF-8 \
	<"$tmpdir/usr/share/man/man7/coding-tag.7" \
	>"$tmpdir/coding-tag.7.exp"
run $MANCONV -t UTF-8 "$tmpdir/usr/share/man/man7/coding-tag.7" \
	>"$tmpdir/coding-tag.7.out"
expect_files_equal 'recode from encoding guessed from directory name' \
	"$tmpdir/coding-tag.7.exp" "$tmpdir/coding-tag.7.out"

write_page lang-dir 7 \
	"$tmpdir/usr/share/man/fr_FR.ISO-8859-1/man7/lang-dir.7.gz" \
	ISO-8859-1 gz '-*- coding: ISO-8859-1 -*-' 'lang-dir \- é'
cat >"$tmpdir/lang-dir.7.exp" <<'EOF'
'\" -*- coding: UTF-8 -*-
EOF
zcat "$tmpdir/usr/share/man/fr_FR.ISO-8859-1/man7/lang-dir.7.gz" | \
	tail -n +2 | iconv -f ISO-8859-1 -t UTF-8 >>"$tmpdir/lang-dir.7.exp"
run $MANCONV -t UTF-8 \
	"$tmpdir/usr/share/man/fr_FR.ISO-8859-1/man7/lang-dir.7.gz" \
	>"$tmpdir/lang-dir.7.out"
expect_files_equal 'recode from encoding guessed from directory name' \
	"$tmpdir/lang-dir.7.exp" "$tmpdir/lang-dir.7.out"

finish
