From: Durk Talsma [SMTP:d.talsma@direct.a2000.nl] Sent: Friday, July 16, 1999 11:09 AM I also found out that by faking a TZ environment variable, I'm capable of retrieving the right local time on my linux box. However, one of our goals is portability, and I don't know whether this trick will also work on other platforms, such as Windows or the Mac, using their native localtime() functions. You might try looking at the latest version of GNU Emacs to see what it does: http://www.gnu.org/software/emacs/ Emacs needs to address this issue, and it has Mac and Windows ports. See the function set_time_zone_rule in src/editfns.c. You might also look at the Windows port for XTide. XTide does a lot of localtime manipulation. See: http://www.flaterco.com/xtide/files.html I consider redistributing your timezone definition files with flightgear, along with a modified version of the glibc's localtime() function. For this reason, I have two questions. First, do you think it is necessary to do this, or is there a relatively simple way to get this information from the native OS'ses? David Flater, the XTide maintainer, has reported a lot of problems dealing with localtime bugs (and the localtime interface) on various POSIX OSes, so it might well simplify matters for you and your users if you would distribute the timezone definition files and subroutine as part of flightgear. I would suggest making it a configuration-time option, e.g. `configure --with-included-localtime' or something like that. And second, are we allowed to use your timezone information files, or code, and redistribute them with our project? Yes. Those files and code are public domain, and are regularly distributed as part of both free and non-free software packages. under linux, this stuff becomes pretty simple: 1. set up a fake environment var e.g. (pseudo code) char ** fake = { "europe/Amsterdam", 0}; environ = fake; (I assume you mean "TZ=Europe/Amsterdam" instead of "europe/Amsterdam".) I think it'd be better to append the previous environ to the new variable-value pair, since some implementations access other environment variables. E.g. glibc accesses TZDIR as well as TZ.