mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-01-15 19:09:58 +08:00
10d0021609
* libc/include/time.h (tzset, _tzset_r): Added prototypes. (strptime): Moved prototype to be within !__STRICT_ANSI__. (_tzname, _daylight, _timezone): No long __CYGWIN__ only. (tzname): Defined for all platforms. (daylight, timezone): Defined only for CYGWIN. * libc/sys/linux/machine/i386/crt0.c: Add call to tzset() after environment set up. * libc/stdlib/setenv_r.c (_setenv_r): Call tzset() if the TZ environment variable is set. * libc/time/Makefile.am: Add support for tzset.c, tzlock.c, and tzset_r.c. * libc/time/Makefile.in: Regenerated. * libc/time/gmtime.c (gmtime): Changed to call gmtime_r. * libc/time/gmtime_r.c (gmtime_r): Changed to call _mktm_r. * libc/time/lcltime_r.c (lcltime_r): Ditto. * libc/time/local.h: New local header file. * libc/time/mktime.c (mktime): Add timezone support. * libc/time/mktm_r.c: New file which is the common engine for gmtime_r and lcltime_r. This code has timezone support. * libc/time/strftime.c (strftime): Add %Z timezone support. * libc/time/tzlock.c: New file containing timezone lock stubs. * libc/time/tzset.c: New file containing tzset() routine. * libc/time/tzset_r.c: New file containing _tzset_r and internal routine for calculating timezone changes for specified year.
45 lines
1.1 KiB
C
45 lines
1.1 KiB
C
/*
|
|
FUNCTION
|
|
<<__tz_lock>>, <<__tz_unlock>>--lock time zone global variables
|
|
|
|
INDEX
|
|
__tz_lock
|
|
INDEX
|
|
__tz_unlock
|
|
|
|
ANSI_SYNOPSIS
|
|
#include "local.h"
|
|
void __tz_lock (void);
|
|
void __tz_unlock (void);
|
|
|
|
TRAD_SYNOPSIS
|
|
void __tz_lock();
|
|
void __tz_unlock();
|
|
|
|
DESCRIPTION
|
|
The <<tzset>> facility functions call these functions when they need
|
|
to ensure the values of global variables. The version of these routines supplied
|
|
in the library do not do anything. If multiple threads of execution
|
|
can call the time functions and give up scheduling in the middle, then you
|
|
you need to define your own versions of these functions in order to
|
|
safely lock the time zone variables during a call. If you do not, the results
|
|
of <<localtime>>, <<mktime>>, <<ctime>>, and <<strftime>> are undefined.
|
|
|
|
The lock <<__tz_lock>> may not be called recursively; that is,
|
|
a call <<__tz_lock>> will always lock all subsequent <<__tz_lock>> calls
|
|
until the corresponding <<__tz_unlock>> call on the same thread is made.
|
|
*/
|
|
|
|
#include <_ansi.h>
|
|
#include "local.h"
|
|
|
|
_VOID
|
|
_DEFUN_VOID (__tz_lock)
|
|
{
|
|
}
|
|
|
|
_VOID
|
|
_DEFUN_VOID (__tz_unlock)
|
|
{
|
|
}
|