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

# Test ISO C 99 <inttypes.h> format string directives.

: ${XGETTEXT=xgettext}
${XGETTEXT} -o fc3.tmp --omit-header --no-location "$wabs_srcdir"/format-c-3-prg.c || Exit 1
LC_ALL=C tr -d '\r' < fc3.tmp > fc3.pot || Exit 1

cat <<EOF > fc3.ok
msgid "the president"
msgstr ""

#, c-format
msgid "father of %<PRId8> children"
msgstr ""
EOF

: ${DIFF=diff}
${DIFF} fc3.ok fc3.pot || Exit 1

cat <<EOF > fc3-de.po
msgid "the president"
msgstr "der Vorsitzende"

#, c-format
msgid "father of %<PRId8> children"
msgstr "Vater von %<PRId8> Kindern"
EOF

test -d fc3-dir || mkdir fc3-dir
test -d fc3-dir/fr || mkdir fc3-dir/fr
test -d fc3-dir/fr/LC_MESSAGES || mkdir fc3-dir/fr/LC_MESSAGES

: ${MSGFMT=msgfmt}
${MSGFMT} -o fc3-dir/fr/LC_MESSAGES/fc3.mo fc3-de.po

: ${MSGUNFMT=msgunfmt}
${MSGUNFMT} -o fc3-de.po.tmp fc3-dir/fr/LC_MESSAGES/fc3.mo || Exit 1
LC_ALL=C tr -d '\r' < fc3-de.po.tmp > fc3-de.po.un || Exit 1

cat <<EOF > fc3-de.po.red
msgid "father of %d children"
msgstr "Vater von %d Kindern"

msgid "the president"
msgstr "der Vorsitzende"

#, c-format
msgid "father of %<PRId8> children"
msgstr "Vater von %<PRId8> Kindern"
EOF

: ${DIFF=diff}
${DIFF} fc3-de.po.red fc3-de.po.un || Exit 1

if test -z "$USE_SYSTEM_LIBINTL"; then
  # In the tests/ dir: Rely on a fake setlocale, so that we can exercise
  # the test on all platforms.

  LANGUAGE= ../fc3 fr_FR || Exit 1

else
  # In the system-tests/ dir: Don't use a fake setlocale.

  : ${LOCALE_FR=fr_FR}
  : ${LOCALE_FR_UTF8=fr_FR.UTF-8}
  if test $LOCALE_FR != none; then
    prepare_locale_ fc3-dir/fr fc3-dir/$LOCALE_FR
    LANGUAGE= ../fc3 $LOCALE_FR || Exit 1
  fi
  if test $LOCALE_FR_UTF8 != none; then
    prepare_locale_ fc3-dir/fr fc3-dir/$LOCALE_FR_UTF8
    LANGUAGE= ../fc3 $LOCALE_FR_UTF8 || 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

fi

Exit 0