diff options
Diffstat (limited to 'newlib/libc/time/tzset.c')
-rw-r--r-- | newlib/libc/time/tzset.c | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/newlib/libc/time/tzset.c b/newlib/libc/time/tzset.c new file mode 100644 index 000000000..c70e3ee6e --- /dev/null +++ b/newlib/libc/time/tzset.c @@ -0,0 +1,72 @@ +/* +FUNCTION +<<tzset>>---set timezone characteristics from TZ environment variable + +INDEX + tzset + +ANSI_SYNOPSIS + #include <time.h> + void tzset(void); + void _tzset_r (struct _reent *); + +TRAD_SYNOPSIS + #include <time.h> + void tzset(); + void _tzset_r (reent_ptr) + struct _reent *reent_ptr; + +DESCRIPTION +<<tzset>> examines the TZ environment variable and sets up the three +external variables: <<_timezone>>, <<_daylight>>, and <<tzname>>. The +value of <<_timezone>> shall be the offset from the current time zone +to GMT. The value of <<_daylight>> shall be 0 if there is no daylight +savings time for the current time zone, otherwise it will be non-zero. +The <<tzname>> array has two entries: the first is the name of the +standard time zone, the second is the name of the daylight-savings time +zone. + +The TZ environment variable is expected to be in the following POSIX +format: + + stdoffset1[dst[offset2][,start[/time1],end[/time2]]] + +where: std is the name of the standard time-zone (minimum 3 chars) + offset1 is the value to add to local time to arrive at Universal time + it has the form: hh[:mm[:ss]] + dst is the name of the alternate (daylight-savings) time-zone (min 3 chars) + offset2 is the value to add to local time to arrive at Universal time + it has the same format as the std offset + start is the day that the alternate time-zone starts + time1 is the optional time that the alternate time-zone starts + (this is in local time and defaults to 02:00:00 if not specified) + end is the day that the alternate time-zone ends + time2 is the time that the alternate time-zone ends + (it is in local time and defaults to 02:00:00 if not specified) + +Note that there is no white-space padding between fields. Also note that +if TZ is null, the default is Universal GMT which has no daylight-savings +time. If TZ is empty, the default EST5EDT is used. + +The function <<_tzset_r>> is identical to <<tzset>> only it is reentrant +and is used for applications that use multiple threads. + +RETURNS +There is no return value. + +PORTABILITY +<<tzset>> is part of the POSIX standard. + +Supporting OS subroutine required: None +*/ + +#include <_ansi.h> +#include <reent.h> +#include <time.h> +#include "local.h" + +_VOID +_DEFUN_VOID (tzset) +{ + _tzset_r (_REENT); +} |