On Wed, Oct 08, 2008 at 10:20:00PM +0200, Ivan Voras wrote:
> I'm trying to use the %c formatter in strftime(3), documented as:
>
> "
> %c is replaced by national representation of time and date.
> "
>
> ... which looks useful, except that in code in which WFORMAT is defined
> as "1" I get this error:
>
> str.c: In function 'ltime':
> str.c:141: warning: '%c' yields only last 2 digits of year in some
> locales on non-BSD systems
> *** Error code 1
>
> Since the code I'm developing is definitely BSD-only (patch to pkg_*
> infrastructure), should I:
>
> a) stop using locale-based %c and choose my own date/time format
> b) remove WFORMAT from the Makefile?
>
> The same warning/error is generated by %x and %X, and %+ described in
> the strftime man page isn't recognized.


Yes. In FreeBSD 4.x, gcc was patched not to warn about these, so
compiling with -Werror was possible even when using this. Since FreeBSD
5.x, this patch wasn't applied anymore.

If you only want it to compile on your own system with -Werror, you can
use this patch (and probably adapt it to %c, %x and %X as well):
http://www.stack.nl/~marcolz/FreeBSD...bsd7.patch.txt

Marc

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkjtxrEACgkQezjnobFOgrGY7wCfTsv6/EU4tbDV+u0R+n7FiXAI
ML8An3PCMFn4cDGQcoPQ8hg4/BA8BwLU
=b0Sp
-----END PGP SIGNATURE-----