Re: [Outreachy][PATCH 2/2] Port helper/test-date.c to unit-tests/t-date.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Patrick Steinhardt <ps@xxxxxx> writes:

> As I was debugging other Windows-specific issues in a VM already, Chris
> asked me to also have a look at this issue. And indeed, most of the
> tests fail deterministically. I also found a fix:
> ...
>     -	setenv("TZ", zone, 1);
>     +	_putenv_s("TZ", zone);
>         tzset();
>      }
>
> I have no idea why that works though, and the fix is of course not
> portable. But with this change, the timezones do get picked up by
> `tzset()` and related date functions as expected.

The header compat/mingw.h already talks about implementing its own
replacement by making gitsetenv() call mingw_putenv().

gitsetenv() emulates setenv() in terms of putenv(), and on Windows
mingw_putenv() is what implements putenv(), so the difference you
are observing is coming from the difference between mingw_putenv()
and _putenv_s(), I would guess.  As the former is isolated within
compat/mingw.c, it would not involve any additional portability
issues to redo the former in terms of the latter, I would imagine.

> I'm quite dumb when it comes to the Windows API, so I don't have much of
> a clue why this works. The documentation also didn't point out anything
> obvious. Dscho, do you happen to have an explanation for this?

Thanks.




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux