I'm having trouble building CVS Bison using GNU gettext 0.15, which was released recently. One issue is that gettext 0.15 rejects the French translation of Bison:
http://www.iro.umontreal.ca/translation/teams/PO/fr/bison-runtime-2.3.fr.po
with a fatal diagnostic, as follows:
rm -f fr.gmo && msgfmt -c --statistics -o fr.gmo fr.po fr.po:79: number of format specifications in 'msgid' and 'msgstr[1]' does not match msgfmt: found 1 fatal error
Here's the offending entry:
#: src/conflicts.c:520 #, c-format msgid "expected %d reduce/reduce conflict" msgid_plural "expected %d reduce/reduce conflicts" msgstr[0] "attendait 0 conflit par réduction/réduction" msgstr[1] "attendait 0 conflits par réduction/réduction"
Could you please fix this, and send email to bug-bison@gnu.org when it's fixed? I'm afraid we'll have to temporarily disable the use of the French translation in the meantime, so that CVS builds work.
I'm CC'ing this to bug-gnu-gettext, because it seems to me that the translations are not strictly an error from a printf point of view (ignoring any issue of the correctness of the French), since printf allows formats that do not consume all the arguments. For example, http://www.opengroup.org/onlinepubs/009695399/functions/fprintf.html says "If the format is exhausted while arguments remain, the excess arguments shall be evaluated but are otherwise ignored."; this is longstanding practice. So it may make sense to warn about this particular usage, but a fatal error is a bit strong.