Sun Jun 16 00:40:20 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>

* time/Makefile ($(installed-localtime-file)): If target exists, do
	nothing but print a message; if not, make it an absolute symlink.

	* time/tzset.c (__tzset): After stripping leading :, call
	__tzfile_read on TZ even if it's empty or null.
	* time/tzfile.c (__tzfile_read): Use "Universal" if passed "".
This commit is contained in:
Roland McGrath 1996-06-16 04:52:54 +00:00
parent 5fbef18864
commit a3b5844025
4 changed files with 48 additions and 38 deletions

View File

@ -1,3 +1,12 @@
Sun Jun 16 00:40:20 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* time/Makefile ($(installed-localtime-file)): If target exists, do
nothing but print a message; if not, make it an absolute symlink.
* time/tzset.c (__tzset): After stripping leading :, call
__tzfile_read on TZ even if it's empty or null.
* time/tzfile.c (__tzfile_read): Use "Universal" if passed "".
Sat Jun 15 18:13:43 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> Sat Jun 15 18:13:43 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* hurd/Makefile (routines): Add get-host, set-host. * hurd/Makefile (routines): Add get-host, set-host.

View File

@ -119,7 +119,8 @@ target-zone-flavor = $(filter /posix /right, \
ifdef localtime ifdef localtime
$(installed-localtime-file): $(zonedir)/$(localtime) $(objpfx)zic $(installed-localtime-file): $(zonedir)/$(localtime) $(objpfx)zic
$(zic-cmd) -l $(localtime) if test -r $@; then echo Site timezone NOT reset to Factory.; else \
ln -s -f $< $@; fi
endif endif
ifdef posixrules ifdef posixrules
$(installed-posixrules-file): $(zonedir)/$(posixrules) $(objpfx)zic $(installed-posixrules-file): $(zonedir)/$(posixrules) $(objpfx)zic

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1992, 1993, 1995 Free Software Foundation, Inc. /* Copyright (C) 1991, 92, 93, 95, 96 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -103,8 +103,12 @@ DEFUN(__tzfile_read, (file), CONST char *file)
free((PTR) leaps); free((PTR) leaps);
leaps = NULL; leaps = NULL;
if (file == NULL || *file == '\0') if (file == NULL)
/* No user specification; use the site-wide default. */
file = TZDEFAULT; file = TZDEFAULT;
else if (*file == '\0')
/* User specified the empty string; use UTC explicitly. */
file = "Universal";
if (*file != '/') if (*file != '/')
{ {

View File

@ -99,45 +99,41 @@ DEFUN_VOID(__tzset)
/* Examine the TZ environment variable. */ /* Examine the TZ environment variable. */
tz = getenv ("TZ"); tz = getenv ("TZ");
if (tz != NULL) /* A leading colon means "implementation defined syntax".
{ We ignore the colon and always use the same algorithm:
/* A leading colon means "implementation defined syntax". try a data file, and if none exists parse the 1003.1 syntax. */
We ignore the colon and always use the same algorithm: if (tz && *tz == ':')
try a data file, and if none exists parse the 1003.1 syntax. */ ++tz;
if (*tz == ':')
++tz;
__tzfile_read (tz); /* Try to read a data file. */
if (__use_tzfile) __tzfile_read (tz);
{ if (__use_tzfile)
__tzset_run = 1; {
return; __tzset_run = 1;
} return;
} }
/* No data file found. Default to UTC if nothing specified. */
if (tz == NULL || *tz == '\0') if (tz == NULL || *tz == '\0')
{ {
__tzfile_read((char *) NULL); static const char UTC[] = "UTC";
if (!__use_tzfile) size_t len = sizeof UTC;
{ tz_rules[0].name = (char *) malloc(len);
const char UTC[] = "UTC"; if (tz_rules[0].name == NULL)
size_t len = sizeof UTC; return;
tz_rules[0].name = (char *) malloc(len); tz_rules[1].name = (char *) malloc(len);
if (tz_rules[0].name == NULL) if (tz_rules[1].name == NULL)
return; return;
tz_rules[1].name = (char *) malloc(len); memcpy ((PTR) tz_rules[0].name, UTC, len);
if (tz_rules[1].name == NULL) memcpy ((PTR) tz_rules[1].name, UTC, len);
return; tz_rules[0].type = tz_rules[1].type = J0;
memcpy ((PTR) tz_rules[0].name, UTC, len); tz_rules[0].m = tz_rules[0].n = tz_rules[0].d = 0;
memcpy ((PTR) tz_rules[1].name, UTC, len); tz_rules[1].m = tz_rules[1].n = tz_rules[1].d = 0;
tz_rules[0].type = tz_rules[1].type = J0; tz_rules[0].secs = tz_rules[1].secs = 0;
tz_rules[0].m = tz_rules[0].n = tz_rules[0].d = 0; tz_rules[0].offset = tz_rules[1].offset = 0L;
tz_rules[1].m = tz_rules[1].n = tz_rules[1].d = 0; tz_rules[0].change = tz_rules[1].change = (time_t) -1;
tz_rules[0].secs = tz_rules[1].secs = 0; tz_rules[0].computed_for = tz_rules[1].computed_for = 0;
tz_rules[0].offset = tz_rules[1].offset = 0L;
tz_rules[0].change = tz_rules[1].change = (time_t) -1;
tz_rules[0].computed_for = tz_rules[1].computed_for = 0;
}
__tzset_run = 1; __tzset_run = 1;
return; return;
} }