#!/bin/sh
. "${srcdir=.}/init.sh"; path_prepend_ . ../src

# Test ObjectiveC support: --add-comments option.

cat <<EOF > xg-ob-2.m
// This comment will not be extracted.
print (NSLocalizedString (@
"help"));
//  TRANSLATORS: This is an extracted comment.
print (NSLocalizedString (@
"me"));
/* Not extracted either. */
print (NSLocalizedString (@
"Hey Jude"));
/*  TRANSLATORS:
     Nickname of the Beatles
*/
print (NSLocalizedString (@
"The Fabulous Four"));
/* TRANSLATORS: The strings get concatenated.  */
print (NSLocalizedString (@ "there is not enough"
@" room on a single line for this entire long, " // confusing, eh?
@ "verbose string"));
EOF

: ${XGETTEXT=xgettext}
${XGETTEXT} --omit-header --no-location --add-comments=TRANSLATORS: \
  -d xg-ob-2.tmp xg-ob-2.m || Exit 1
LC_ALL=C tr -d '\r' < xg-ob-2.tmp.po > xg-ob-2.po || Exit 1

cat <<EOF > xg-ob-2.ok
msgid "help"
msgstr ""

#. TRANSLATORS: This is an extracted comment.
msgid "me"
msgstr ""

msgid "Hey Jude"
msgstr ""

#. TRANSLATORS:
#. Nickname of the Beatles
#.
msgid "The Fabulous Four"
msgstr ""

#. TRANSLATORS: The strings get concatenated.
msgid ""
"there is not enough room on a single line for this entire long, verbose "
"string"
msgstr ""
EOF

: ${DIFF=diff}
${DIFF} xg-ob-2.ok xg-ob-2.po
result=$?

exit $result
