(root)/
gettext-0.22.4/
gettext-tools/
tests/
intl-3
#! /bin/sh
. "${srcdir=.}/init.sh"; path_prepend_ . ../src

# Test that bind_textdomain_codeset() works.

test -d in-3-1 || mkdir in-3-1
test -d in-3-1/fr || mkdir in-3-1/fr
test -d in-3-1/fr/LC_MESSAGES || mkdir in-3-1/fr/LC_MESSAGES

: ${MSGFMT=msgfmt}
${MSGFMT} -o in-3-1/fr/LC_MESSAGES/tstprog.mo "$wabs_srcdir"/intl-2-1.po

test -d in-3-2 || mkdir in-3-2
test -d in-3-2/fr || mkdir in-3-2/fr
test -d in-3-2/fr/LC_MESSAGES || mkdir in-3-2/fr/LC_MESSAGES

: ${MSGFMT=msgfmt}
${MSGFMT} -o in-3-2/fr/LC_MESSAGES/tstprog.mo "$wabs_srcdir"/intl-2-2.po

: ${DIFF=diff}
cat <<EOF > in-3-1.ok
Käse
EOF
cat <<EOF > in-3-2.ok
Käse
EOF

if test -n "$USE_SYSTEM_LIBINTL"; then
  # In the system-tests/ dir:
  case "$host_os" in
    *-musl* | midipix*)
      # On musl libc, bind_textdomain_codeset works only when the codeset
      # argument is "UTF-8". In other words, on musl libc, the expected output
      # is always in UTF-8.
      cp in-3-2.ok in-3-1.ok
      ;;
  esac
fi

: ${LOCALE_FR=fr_FR}
: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
if test $LOCALE_FR != none; then
  prepare_locale_ in-3-1/fr in-3-1/$LOCALE_FR
  prepare_locale_ in-3-2/fr in-3-2/$LOCALE_FR
  ../intl-3-prg in-3-1 $LOCALE_FR ISO-8859-1 > in-3.tmp || Exit 1
  LC_ALL=C tr -d '\r' < in-3.tmp > in-3.out || Exit 1
  ${DIFF} in-3-1.ok in-3.out || Exit 1
  ../intl-3-prg in-3-2 $LOCALE_FR ISO-8859-1 > in-3.tmp || Exit 1
  LC_ALL=C tr -d '\r' < in-3.tmp > in-3.out || Exit 1
  ${DIFF} in-3-1.ok in-3.out || Exit 1
  ../intl-3-prg in-3-1 $LOCALE_FR UTF-8 > in-3.tmp || Exit 1
  LC_ALL=C tr -d '\r' < in-3.tmp > in-3.out || Exit 1
  ${DIFF} in-3-2.ok in-3.out || Exit 1
  ../intl-3-prg in-3-2 $LOCALE_FR UTF-8 > in-3.tmp || Exit 1
  LC_ALL=C tr -d '\r' < in-3.tmp > in-3.out || Exit 1
  ${DIFF} in-3-2.ok in-3.out || Exit 1
fi
if test $LOCALE_FR_UTF8 != none; then
  prepare_locale_ in-3-1/fr in-3-1/$LOCALE_FR_UTF8
  prepare_locale_ in-3-2/fr in-3-2/$LOCALE_FR_UTF8
  ../intl-3-prg in-3-1 $LOCALE_FR_UTF8 ISO-8859-1 > in-3.tmp || Exit 1
  LC_ALL=C tr -d '\r' < in-3.tmp > in-3.out || Exit 1
  ${DIFF} in-3-1.ok in-3.out || Exit 1
  ../intl-3-prg in-3-2 $LOCALE_FR_UTF8 ISO-8859-1 > in-3.tmp || Exit 1
  LC_ALL=C tr -d '\r' < in-3.tmp > in-3.out || Exit 1
  ${DIFF} in-3-1.ok in-3.out || Exit 1
  ../intl-3-prg in-3-1 $LOCALE_FR_UTF8 UTF-8 > in-3.tmp || Exit 1
  LC_ALL=C tr -d '\r' < in-3.tmp > in-3.out || Exit 1
  ${DIFF} in-3-2.ok in-3.out || Exit 1
  ../intl-3-prg in-3-2 $LOCALE_FR_UTF8 UTF-8 > in-3.tmp || Exit 1
  LC_ALL=C tr -d '\r' < in-3.tmp > in-3.out || Exit 1
  ${DIFF} in-3-2.ok in-3.out || Exit 1
fi
if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none; then
  if test -f /usr/bin/localedef; then
    echo "Skipping test: no french locale is installed"
  else
    echo "Skipping test: no french locale is supported"
  fi
  Exit 77
fi

Exit 0