Sorry to followup myself, but I'd like to add an interesting tidbit that
googling found me there. This old posting:
http://archives.postgresql.org/pgsql-hackers/2001-03/msg01609.php
describes sort of what I try to do. The test program is obvious, I came up
with the same before finding the above ...
Some of the difficult things to exclude are:
TZ=GMT invalid by POSIX (should be GMT0), but accepted (?)
TZ=GMT500 rejected by Solaris as out-of-range
would pass the tests below, though ...
Also, it seems that tzset() resulting in the behaviour below on failure is
Solaris-specific; that'd be sufficient for my purpose, but a portable way
of detecting success/failure of using a setting of TZ would be
appreciated.
FrankH.
On Wed, 4 Jul 2007, Frank Hofmann wrote:
> Hi,
>
> I wonder what is the simplest way to validate, from a C program, whether a
> given string can be successfully parsed as TZ (timezone) environment
> variable.
>
> Thing is, tzset(3C) is not returning any error code. So if I putenv()
> something into TZ, and do the tzset() afterwards, it'll "do something".
> It'll simply set the global variables timezone/altzone/daylight/tzname[]
> to 0/0/0/{"GMT", " "}.
>
> But that's the same as specifying TZ=GMT (which is actually valid). So
> it's not sufficient just testing for the tuple above.
>
> It seems the thing I need to do to validate something is a usable TZ
> environment variable is:
>
> - putenv(); tzset()
> - test for the above tuple
> - additionally validate tzname[0] != <my TZ string>
>
> Any better ideas ?
> Thx,
>
> FrankH.
>
>
> _______________________________________________
> opensolaris-code mailing list
> [email protected]
> http://mail.opensolaris.org/mailman/listinfo/opensolaris-code
>
_______________________________________________
opensolaris-code mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/opensolaris-code