Set TZ environment variable when not set

Uwe Bonnes bon at elektron.ikp.physik.tu-darmstadt.de
Thu Apr 17 16:41:14 CDT 2003


>>>>> "Uwe" == Uwe Bonnes <bon at elektron.ikp.physik.tu-darmstadt.de> writes:

>>>>> "Rein" == Rein Klazes <rklazes at xs4all.nl> writes:
    Rein> On Thu, 17 Apr 2003 09:57:43 +0200, you wrote:
    >>> Okay, I see.  But the qllink.dll/synplify.exe behaviour shows we
    >>> have some TZ environement variable dependancy in the wine time
    >>> handling code. Any help to fix this is welcome.

    Rein> Just to help the discussion: a "getenv("TZ") on my win2000 test
    Rein> system returns NULL, neither is TZ available in a command
    Rein> window. So I guesss your applications would fail here as well.  Or
    Rein> are they perhaps restricted to win9x/DOS systems?

    Uwe> Well, the application works on win32 with TZ not set. But is then
    Uwe> sets TZ to GMT0 and spawns off a second process. When comparing a
    Uwe> "magic string" generated from some time value in both processes,
    Uwe> things go astray.

    Uwe> Obvious the wine time related functions work different in the first
    Uwe> process with TZ not set and in the second process with TZ set to
    Uwe> GMT0. I'll have to work out...

It boils down  that RtlQueryTimeZoneInformation uses (Linux) C Library
functions that honor TZ, while the Win32 implementation ignores TZ.

Temporaryly disabling TZ in ntdll/time.c:TIME_GetBias() provides a
workaround, while not disturbing other code pathes.

However Win32 fetches the tzinfo values from
[System\\CurrentControlSet\\control\\TimeZoneInformation]

I can fill tzinfo from those registry values, but two questions arise:
- How do we fill the Registry on Wine installation with those values (there
  are a zillion timezones) for a no-win install. timedate.cpl isn't
  available on a no-win install neither...
- Do we need a fallback? Should the present implementation be used in that
  case?  With the TZ workaround?

Bye

B.t.w: I had a test suite the used GetTimeZoneInformation. However this only
affects time calls in msvcrt, the underlying Linux C-Library didn't see that
change and so the results didn't differ. Argh ...


-- 
Uwe Bonnes                bon at elektron.ikp.physik.tu-darmstadt.de

Institut fuer Kernphysik  Schlossgartenstrasse 9  64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------



More information about the wine-devel mailing list