Subject: Re: bug#11470: bug in 8.17 pot file

From: Göran Uddeborg <[email-masked]>
Date: Thu, 17 May 2012 20:39:48 +0200

Pádraig Brady:
> Why does xgettext even think fputs takes a printf format?

I don't think it does.  I think it doesn't know anything about fputs
at all, so it tries to guess.  If there is something that looks like a
printf directive in the message, it is guessed to be c-format,
otherwise not.

In a simple test I found that

  fputs(_("Hello world"), stdout);

is not considered c-format, but

  fputs(_("Hello %orld"), stdout);

is.  If I use printf instead of fputs, it is considered c-format in
both cases.  xgettext does know by default that printf's first
argument is c-format.

> I've CC'd
> the gettext bug list so that we won't have to
> worry about it going forward.

:-) I actually also sent a message to that list a little while ago,
suggesting they add flags by default for the other stdio functions.
(puts, fputs and fwrite came to mind)