3 # Test whether the right number of arguments are extracted.
6 trap 'rm -fr $tmpfiles' 1 2 3 15
8 tmpfiles="$tmpfiles xg-pl-6.pl"
9 cat <<\EOPERL > xg-pl-6.pl
12 # For 'gettext', xgettext needs to extract the first argument.
14 # Don't extract further strings (second argument to gettext or unrelated
16 print gettext "extracted1", "$shouldnotbeextracted";
17 print gettext ("extracted2"), "$shouldnotbeextracted";
18 print gettext ("extracted3")."$notextracted", "$shouldnotbeextracted";
19 print (gettext ("extracted4")), "$shouldnotbeextracted";
21 # Likewise, inside a call to an arbitrary 'foobar' function.
22 print foobar gettext "extracted5", "$shouldnotbeextracted";
23 print foobar gettext ("extracted6"), "$shouldnotbeextracted";
24 print foobar gettext ("extracted7")."$notextracted", "$shouldnotbeextracted";
25 print foobar (gettext ("extracted8")), "$shouldnotbeextracted";
26 print foobar (gettext "extracted9", "$shouldnotbeextracted");
27 print foobar (gettext ("extracted10"), "$shouldnotbeextracted");
28 print foobar (gettext ("extracted11")."$notextracted", "$shouldnotbeextracted");
30 # Don't extract strings that are inside a function call to an arbitrary
31 # 'foobar' function, and don't extract a second argument to gettext
32 print gettext foobar "$notextracted", "$shouldnotbeextracted";
33 print gettext foobar ("$notextracted"), "$shouldnotbeextracted";
34 print gettext foobar ("$notextracted")."$notextracted", "$shouldnotbeextracted";
35 print (gettext foobar ("$notextracted")), "$shouldnotbeextracted";
36 print gettext (foobar "$notextracted"), "$shouldnotbeextracted";
37 print gettext (foobar ("$notextracted")), "$shouldnotbeextracted";
38 print gettext (foobar ("$notextracted"))."$notextracted", "$shouldnotbeextracted";
39 print gettext (foobar ("$notextracted")."$notextracted"), "$shouldnotbeextracted";
40 print (gettext (foobar ("$notextracted"))), "$shouldnotbeextracted";
42 # For 'dgettext', xgettext needs to extract the second argument.
44 # The first argument should not be extracted.
45 print dgettext "$shouldnotbeextracted", "extracted12";
47 # For a built-in unary function with parentheses, it's clear where dgettext's
48 # first argument ends.
49 print dgettext sin (17), "extracted13";
51 # For a built-in unary function, it's clear where dgettext's first argument
53 print dgettext sin 17, "extracted14";
55 # For a function call with parentheses, it's clear where dgettext's first
57 print dgettext foo (17), "extracted15";
59 # This one is hairy. If foo is a function with a prototype and one argument,
61 # print dgettext (foo (17), "extracted16");
62 # otherwise it parses like
63 # print dgettext (foo (17, "extracted16"));
64 # But in the latter case dgettext has no second argument at all; this is
65 # therefore not the interpretation intended by the programmer.
66 print dgettext foo 17, "extracted16";
69 tmpfiles="$tmpfiles xg-pl-6.tmp xg-pl-6.pot"
70 : ${XGETTEXT=xgettext}
71 LC_MESSAGES=C LC_ALL= \
72 ${XGETTEXT} --omit-header --no-location -o xg-pl-6.tmp xg-pl-6.pl
73 test $? = 0 || { rm -fr $tmpfiles; exit 1; }
74 LC_ALL=C tr -d '\r' < xg-pl-6.tmp > xg-pl-6.pot
75 test $? = 0 || { rm -fr $tmpfiles; exit 1; }
77 tmpfiles="$tmpfiles xg-pl-6.ok"
78 cat <<\EOF > xg-pl-6.ok
129 ${DIFF} xg-pl-6.ok xg-pl-6.pot