diff options
author | Ulrich Drepper <drepper@redhat.com> | 1996-12-08 08:01:13 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1996-12-08 08:01:13 +0000 |
commit | f65fd747b440ae2d8a7481ecc50e668c5e4d0cc9 (patch) | |
tree | f64c3eeda0e9acc58b96c28ca852a014c822047f /time/tzset.c | |
parent | 42054ddb496798d9b936490cf0050f6619f86bc1 (diff) | |
download | glibc-f65fd747b440ae2d8a7481ecc50e668c5e4d0cc9.zip glibc-f65fd747b440ae2d8a7481ecc50e668c5e4d0cc9.tar.gz glibc-f65fd747b440ae2d8a7481ecc50e668c5e4d0cc9.tar.bz2 |
update from main archive 961207cvs/libc-961208
Sun Dec 8 06:56:49 1996 Ulrich Drepper <drepper@cygnus.com>
* io/getwd.c: Use PATH_MAX not LOCAL_PATH_MAX. Fix typo in
comment.
* stdlib/canonicalize.c: Correct bugs in last change.
Patch by HJ Lu.
* libio/Makefile (routines): Remove ioprims.
(aux): Remove cleanup.
Add IO_DEBUG option for .o files.
* libio/cleanups.c: Removed.
* libio/ioprims.c: Removed.
* libio/filedoalloc.c: More updates from libg++-2.8b5.
* libio/fileops.c: Likewise.
* libio/genops.c: Likewise.
* libio/iolibio.h: Likewise.
* libio/iopopen.c: Likewise.
* libio/iovsprintf.c: Likewise.
* libio/iovsscanf.c: Likewise.
* libio/libio.h: Likewise.
* libio/libioP.h: Likewise.
* libio/memstream.c: Likewise.
* libio/strfile.h: Likewise.
* libio/vasprintf.c: Likewise.
* libio/vsnprintf.c: Likewise.
* libio/stdio.h: Define P_tmpdir only is __USE_SVID.
* manual/arith.texi: Change references to ANSI C to ISO C.
* manual/conf.texi: Likewise.
* manual/creature.texi: Likewise.
* manual/ctype.texi: Likewise.
* manual/errno.texi: Likewise.
* manual/filesys.texi: Likewise.
* manual/intro.texi. Likewise.
* manual/io.texi: Likewise.
* manual/lang.texi: Likewise.
* manual/libc.texinfo: Likewise.
* manual/locale.texi: Likewise.
* manual/maint.texi: Likewise.
* manual/mbyte.texi: Likewise.
* manual/memory.texi: Likewise.
* manual/process.texi: Likewise.
* manual/process.texi: Likewise.
* manual/search.texi: Likewise.
* manual/setjmp.texi: Likewise.
* manual/signal.texi: Likewise.
* manual/startup.texi: Likewise.
* manual/stdio.texi: Likewise.
* manual/string.texi: Likewise.
* manual/time.texi: Likewise.
* manual/locale.texi: Remove description of LC_RESPONSE and add
LC_MESSAGES.
* Makefile (subdirs): Change malloc in $(malloc).
* config.make.in: Add variable malloc which is initialized from
@malloc@.
* configure.in: Add new option --enable-new-malloc to use new
malloc. This is the default on Linux.
* sysdeps/unix/sysv/linux/configure.in: Define malloc to new-malloc
by default.
* new-malloc/Makefile: New file. Improved malloc implementation.
* new-malloc/malloc.c: Likewise.
* new-malloc/malloc.h: Likewise.
* new-malloc/mallocbug.c: Likewise.
* new-malloc/obstack.c: Likewise.
* new-malloc/obstack.h: Likewise.
* new-malloc/thread-m.h: Likewise.
* time/Makefile: Compile ap.c with NO_MCHECK flag for now.
* time/ap.c: Don't call mcheck if NO_MCHECK is defined.
* resolv/Makefile: Add rule to rebuiild libresolv.so when libc.so
changed.
* stdio/feof.c: Update copyright.
* stdio/stdio.h: Add field for lock to FILE structure.
Add cast to *MAGIC constants to prevent warnings.
* stdio-common/bug7.c: Correct test. Stream must not be closed
twice.
* stdlib/Makefile (routines): Add secure-getenv.
* stdlib/secure-getenv.c: New file. __secure_getenv function
moved to here from sysdeps/generic/getenv.c. Otherwise an
application cannot replace the getenv function in the libc.
* sysdeps/generic/getenv.c: Remove __secure_getenv function.
* sysdeps/stub/getenv.c: Remove __secure_getenv alias.
* sysdeps/mach/libc-lock.h: Define__libc_mutex_lock to __mutex_lock.
* sysdeps/posix/fdopen.c: Update copyright. Don't use EXFUN.
* time/test-tz.c: Comment fifth test out. PROBLEM.
* time/tzset.c: De-ANSI-declfy.
(__tzset): Don't increment pointer tz when no DST information is
given.
Sat Dec 7 23:47:54 1996 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/mach/libc-lock.h [_LIBC]: Add definition of
__libc_mutex_lock.
Patch by Thomas Bushnell.
* sysdeps/unix/sysv/linux/timebits.h: Load <asm/param.h> only
if __USE_MISC.
* sysdeps/unix/sysv/linux/Dist: Add llseek.c.
Sat Dec 7 12:18:56 1996 Ulrich Drepper <drepper@cygnus.com>
* time/strftime (%c format): Remove %Z from default string.
Reported by Paul Eggert
* io/getwd.c: Don't apply getcwd on user supplied buffer.
Diffstat (limited to 'time/tzset.c')
-rw-r--r-- | time/tzset.c | 89 |
1 files changed, 47 insertions, 42 deletions
diff --git a/time/tzset.c b/time/tzset.c index e5b12f1..954cec2 100644 --- a/time/tzset.c +++ b/time/tzset.c @@ -1,22 +1,21 @@ /* Copyright (C) 1991, 92, 93, 94, 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 -modify it under the terms of the GNU Library General Public License as -published by the Free Software Foundation; either version 2 of the -License, or (at your option) any later version. + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. -The GNU C Library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Library General Public License for more details. + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. -You should have received a copy of the GNU Library General Public -License along with the GNU C Library; see the file COPYING.LIB. If -not, write to the Free Software Foundation, Inc., 675 Mass Ave, -Cambridge, MA 02139, USA. */ + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ -#include <ansidecl.h> #include <ctype.h> #include <stddef.h> #include <stdio.h> @@ -25,16 +24,16 @@ Cambridge, MA 02139, USA. */ #include <time.h> /* Defined in mktime.c. */ -extern CONST unsigned short int __mon_yday[2][13]; +extern const unsigned short int __mon_yday[2][13]; #define NOID #include "tzfile.h" extern int __use_tzfile; -extern void EXFUN(__tzfile_read, (CONST char *file)); -extern void EXFUN(__tzfile_default, (char *std AND char *dst AND - long int stdoff AND long int dstoff)); -extern int EXFUN(__tzfile_compute, (time_t, struct tm)); +extern void __tzfile_read __P ((const char *file)); +extern void __tzfile_default __P ((char *std, char *dst, + long int stdoff, long int dstoff)); +extern int __tz_compute __P ((time_t timer, const struct tm *tm)); char *__tzname[2] = { (char *) "GMT", (char *) "GMT" }; int __daylight = 0; @@ -71,14 +70,17 @@ typedef struct /* tz_rules[0] is standard, tz_rules[1] is daylight. */ static tz_rule tz_rules[2]; + + +static int compute_change __P ((tz_rule *rule, int year)); int __tzset_run = 0; /* Interpret the TZ envariable. */ void -DEFUN_VOID(__tzset) +__tzset () { - register CONST char *tz; + register const char *tz; register size_t l; unsigned short int hh, mm, ss; unsigned short int whichrule; @@ -86,13 +88,13 @@ DEFUN_VOID(__tzset) /* Free old storage. */ if (tz_rules[0].name != NULL && *tz_rules[0].name != '\0') { - free((PTR) tz_rules[0].name); + free((void *) tz_rules[0].name); tz_rules[0].name = NULL; } if (tz_rules[1].name != NULL && *tz_rules[1].name != '\0' && tz_rules[1].name != tz_rules[0].name) { - free((PTR) tz_rules[1].name); + free((void *) tz_rules[1].name); tz_rules[1].name = NULL; } @@ -125,8 +127,8 @@ DEFUN_VOID(__tzset) tz_rules[1].name = (char *) malloc(len); if (tz_rules[1].name == NULL) return; - memcpy ((PTR) tz_rules[0].name, UTC, len); - memcpy ((PTR) tz_rules[1].name, UTC, len); + memcpy ((void *) tz_rules[0].name, UTC, len); + memcpy ((void *) tz_rules[1].name, UTC, len); tz_rules[0].type = tz_rules[1].type = J0; tz_rules[0].m = tz_rules[0].n = tz_rules[0].d = 0; tz_rules[1].m = tz_rules[1].n = tz_rules[1].d = 0; @@ -157,7 +159,7 @@ DEFUN_VOID(__tzset) } { - char *n = realloc ((PTR) tz_rules[0].name, l + 1); + char *n = realloc ((void *) tz_rules[0].name, l + 1); if (n != NULL) tz_rules[0].name = n; } @@ -183,8 +185,8 @@ DEFUN_VOID(__tzset) case 3: break; } - tz_rules[0].offset *= (min(ss, 59) + (min(mm, 59) * 60) + - (min(hh, 23) * 60 * 60)); + tz_rules[0].offset *= (min (ss, 59) + (min (mm, 59) * 60) + + (min (hh, 23) * 60 * 60)); for (l = 0; l < 3; ++l) { @@ -197,25 +199,25 @@ DEFUN_VOID(__tzset) /* Get the DST timezone name (if any). */ if (*tz != '\0') { - char *n = malloc (strlen(tz) + 1); + char *n = malloc (strlen (tz) + 1); if (n != NULL) { tz_rules[1].name = n; - if (sscanf(tz, "%[^0-9,+-]", tz_rules[1].name) != 1 || - (l = strlen(tz_rules[1].name)) < 3) + if (sscanf (tz, "%[^0-9,+-]", tz_rules[1].name) != 1 || + (l = strlen (tz_rules[1].name)) < 3) { free (n); tz_rules[1].name = (char *) ""; goto done_names; /* Punt on name, set up the offsets. */ } - n = realloc ((PTR) tz_rules[1].name, l + 1); + n = realloc ((void *) tz_rules[1].name, l + 1); if (n != NULL) tz_rules[1].name = n; + + tz += l; } } - tz += l; - /* Figure out the DST offset from GMT. */ if (*tz == '-' || *tz == '+') tz_rules[1].offset = *tz++ == '-' ? 1L : -1L; @@ -234,8 +236,8 @@ DEFUN_VOID(__tzset) case 2: ss = 0; case 3: - tz_rules[1].offset *= (min(ss, 59) + (min(mm, 59) * 60) + - (min(hh, 23) * (60 * 60))); + tz_rules[1].offset *= (min (ss, 59) + (min (mm, 59) * 60) + + (min (hh, 23) * (60 * 60))); break; } for (l = 0; l < 3; ++l) @@ -338,7 +340,7 @@ DEFUN_VOID(__tzset) } for (l = 0; l < 3; ++l) { - while (isdigit(*tz)) + while (isdigit (*tz)) ++tz; if (l < 2 && *tz == ':') ++tz; @@ -361,7 +363,7 @@ DEFUN_VOID(__tzset) size_t __tzname_cur_max; long int -DEFUN_VOID(__tzname_max) +__tzname_max () { if (! __tzset_run) __tzset (); @@ -374,7 +376,9 @@ DEFUN_VOID(__tzname_max) put it in RULE->change, saving YEAR in RULE->computed_for. Return nonzero if successful, zero on failure. */ static int -DEFUN(compute_change, (rule, year), tz_rule *rule AND int year) +compute_change (rule, year) + tz_rule *rule; + int year; { register time_t t; int y; @@ -410,7 +414,7 @@ DEFUN(compute_change, (rule, year), tz_rule *rule AND int year) /* Mm.n.d - Nth "Dth day" of month M. */ { register int i, d, m1, yy0, yy1, yy2, dow; - register CONST unsigned short int *myday = + register const unsigned short int *myday = &__mon_yday[__isleap (year)][rule->m]; /* First add SECSPERDAY for each day in months before M. */ @@ -456,8 +460,9 @@ DEFUN(compute_change, (rule, year), tz_rule *rule AND int year) and set `__tzname', `__timezone', and `__daylight' accordingly. Return nonzero on success, zero on failure. */ int -DEFUN(__tz_compute, (timer, tm), - time_t timer AND const struct tm *tm) +__tz_compute (timer, tm) + time_t timer; + const struct tm *tm; { if (! __tzset_run) __tzset (); |