On Tuesday 26 May 2009 21:05:29 Tom Lane wrote: > Peter Eisentraut <pete...@gmx.net> writes: > > I tried throwing various kinds of subtle garbage into the errmsg/ngettext > > line, but it was all discovered by gcc -Wall. > > I experimented with this and found that indeed both format strings are > checked ... if you have a reasonably recent libintl.h AND you have > specified --enable-nls. Otherwise it all goes to heck, apparently > because the compiler doesn't try to look through our substitute > definition > > #define ngettext(s,p,n) ((n) == 1 ? (s) : (p))
I can't reproduce that. Do you have a concrete example? Different compiler versions, perhaps? > So I'm still of the opinion that we need some work here. I think > that instead of this #define we need an actual function that we can > hang a couple of __attribute_format_arg__ markers on. That would appear to be the logical solution, but since I can't reproduce the problem, I will have trouble to work on this. -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers