1 #! /bin/sh 2 3 # Test C++ support: test boost-format. 4 5 tmpfiles="" 6 trap 'rm -fr $tmpfiles' 1 2 3 15 7 8 tmpfiles="$tmpfiles xg-c-14.cc" 9 cat <<\EOF > xg-c-14.cc 10 // These are recognized as boost-format because of the keyword 'format'. 11 format(gettext("%s on, %s off")); 12 format(gettext("%1$d on, %2$d off")); 13 format(gettext("%|1$| on, %|2$| off")); 14 format(gettext("%1% on, %2% off")); 15 // These are recognized as boost-format only through the heuristics. 16 gettext("heuristic %s on, %s off"); 17 gettext("heuristic %1$d on, %2$d off"); 18 gettext("heuristic %|1$| on, %|2$| off"); 19 gettext("heuristic %1% on, %2% off"); 20 EOF 21 22 tmpfiles="$tmpfiles xg-c-14.po" 23 : ${XGETTEXT=xgettext} 24 ${XGETTEXT} --omit-header --no-location -d xg-c-14 --boost xg-c-14.cc 25 test $? = 0 || { rm -fr $tmpfiles; exit 1; } 26 27 # The first 4 are not marked as c-format, because they are known as 28 # boost-format. The last 4 are governed by the heuristic. The first two 29 # among them are valid c-format strings. The last one is a valid but unlikely 30 # c-format string, therefore the heuristic doesn't mark it. 31 tmpfiles="$tmpfiles xg-c-14.ok" 32 cat <<\EOF > xg-c-14.ok 33 #, boost-format 34 msgid "%s on, %s off" 35 msgstr "" 36 37 #, boost-format 38 msgid "%1$d on, %2$d off" 39 msgstr "" 40 41 #, boost-format 42 msgid "%|1$| on, %|2$| off" 43 msgstr "" 44 45 #, boost-format 46 msgid "%1% on, %2% off" 47 msgstr "" 48 49 #, c-format, boost-format 50 msgid "heuristic %s on, %s off" 51 msgstr "" 52 53 #, c-format, boost-format 54 msgid "heuristic %1$d on, %2$d off" 55 msgstr "" 56 57 #, boost-format 58 msgid "heuristic %|1$| on, %|2$| off" 59 msgstr "" 60 61 #, boost-format 62 msgid "heuristic %1% on, %2% off" 63 msgstr "" 64 EOF 65 66 : ${DIFF=diff} 67 ${DIFF} xg-c-14.ok xg-c-14.po 68 result=$? 69 70 rm -fr $tmpfiles 71 72 exit $result 73