2 . "${srcdir=.}/init.sh"; path_prepend_ . ../src
4 # Test whether the right number of arguments are extracted.
6 cat <<\EOPERL > xg-pl-6.pl
9 # For 'gettext', xgettext needs to extract the first argument.
11 # Don't extract further strings (second argument to gettext or unrelated
13 print gettext "extracted1", "$shouldnotbeextracted";
14 print gettext ("extracted2"), "$shouldnotbeextracted";
15 print gettext ("extracted3")."$notextracted", "$shouldnotbeextracted";
16 print (gettext ("extracted4")), "$shouldnotbeextracted";
18 # Likewise, inside a call to an arbitrary 'foobar' function.
19 print foobar gettext "extracted5", "$shouldnotbeextracted";
20 print foobar gettext ("extracted6"), "$shouldnotbeextracted";
21 print foobar gettext ("extracted7")."$notextracted", "$shouldnotbeextracted";
22 print foobar (gettext ("extracted8")), "$shouldnotbeextracted";
23 print foobar (gettext "extracted9", "$shouldnotbeextracted");
24 print foobar (gettext ("extracted10"), "$shouldnotbeextracted");
25 print foobar (gettext ("extracted11")."$notextracted", "$shouldnotbeextracted");
27 # Don't extract strings that are inside a function call to an arbitrary
28 # 'foobar' function, and don't extract a second argument to gettext
29 print gettext foobar "$notextracted", "$shouldnotbeextracted";
30 print gettext foobar ("$notextracted"), "$shouldnotbeextracted";
31 print gettext foobar ("$notextracted")."$notextracted", "$shouldnotbeextracted";
32 print (gettext foobar ("$notextracted")), "$shouldnotbeextracted";
33 print gettext (foobar "$notextracted"), "$shouldnotbeextracted";
34 print gettext (foobar ("$notextracted")), "$shouldnotbeextracted";
35 print gettext (foobar ("$notextracted"))."$notextracted", "$shouldnotbeextracted";
36 print gettext (foobar ("$notextracted")."$notextracted"), "$shouldnotbeextracted";
37 print (gettext (foobar ("$notextracted"))), "$shouldnotbeextracted";
39 # For 'dgettext', xgettext needs to extract the second argument.
41 # The first argument should not be extracted.
42 print dgettext "$shouldnotbeextracted", "extracted12";
44 # For a built-in unary function with parentheses, it's clear where dgettext's
45 # first argument ends.
46 print dgettext sin (17), "extracted13";
48 # For a built-in unary function, it's clear where dgettext's first argument
50 print dgettext sin 17, "extracted14";
52 # For a function call with parentheses, it's clear where dgettext's first
54 print dgettext foo (17), "extracted15";
56 # This one is hairy. If foo is a function with a prototype and one argument,
58 # print dgettext (foo (17), "extracted16");
59 # otherwise it parses like
60 # print dgettext (foo (17, "extracted16"));
61 # But in the latter case dgettext has no second argument at all; this is
62 # therefore not the interpretation intended by the programmer.
63 print dgettext foo 17, "extracted16";
66 : ${XGETTEXT=xgettext}
67 LC_MESSAGES=C LC_ALL= \
68 ${XGETTEXT} --omit-header --no-location -o xg-pl-6.tmp xg-pl-6.pl || exit 1
69 LC_ALL=C tr -d '\r' < xg-pl-6.tmp > xg-pl-6.pot || exit 1
71 cat <<\EOF > xg-pl-6.ok
122 ${DIFF} xg-pl-6.ok xg-pl-6.pot