[vdr] VDR developer version 1.5.15 - compilation warnings
michael.mauch at gmx.de
Tue Feb 19 21:23:28 CET 2008
Dave P wrote:
> On Tuesday 19 Feb 2008, Klaus Schmidinger wrote:
>> > remote.c:124: warning: format "%016LX" expects type "long long
>> > unsigned int", but argument 4 has type "uint64_t"
>> Apparently there are macros for this, like PRId64 and such.
>> But i don't like having to write something like
>> int64_t n = ...;
>> printf("Some number %" PRId64 "\n", n);
> It seems to be the POSIX way...
>> Don't know if the gettext mechanisms would be able to handle
>> tr("Some number %" PRId64 "\n")
> It would probably be necessary to have multiple translations for the string
> after macro expansion (negating the whole reason for having the macro in
> the first place).
seems to promise that it works without multiple translations:
Assume you have code like
printf ("The amount is %0" PRId64 "\n", number);
The gettext tools and library have special support for these
<inttypes.h> macros. You can therefore simply write
printf (gettext ("The amount is %0" PRId64 "\n"), number);
The PO file will contain the string "The amount is %0<PRId64>\n". The
translators will provide a translation containing "%0<PRId64>" as
well, and at runtime the gettext function's result will contain the
appropriate constant string, "d" or "ld" or "lld".
gettext-0.14 (4 years old) already has this text, so it's probably safe
to use by now. (Apparently I have been living under a rock for the last
couple of years, I didn't even know about that PRId64 thing - thanks for
pointing it out.)
More information about the vdr