home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: gnu.utils.bug
- Path: sparky!uunet!zaphod.mps.ohio-state.edu!cis.ohio-state.edu!jarthur.claremont.edu!jason
- From: jason@jarthur.claremont.edu (Jason Merrill)
- Subject: Bug & fix in shellutils-1.8 date on old machines
- Message-ID: <1992Nov7.034519.11267@muddcs.claremont.edu>
- Sender: gnulists@ai.mit.edu
- Organization: Harvey Mudd College, Claremont, CA 91711
- Distribution: gnu
- Date: Sat, 7 Nov 1992 03:45:19 GMT
- Approved: bug-gnu-utils@prep.ai.mit.edu
- Lines: 78
-
- date -u does not work on some antiquated hosts that don't support setting
- the time zone via the TZ environment variable. One such is the Sequent
- Symmetry (Dynix 3.1.2).
-
- >From looking at two other hosts which do support TZ (Ultrix 4.2, SunOS
- 4.1.2), it would seem that if TZ support is there, so is the function
- tzset. If this is incorrect, another check will have to be substituted.
-
- Here are the unified diffs:
-
- diff -ur tmp/shellutils-1.8/ChangeLog shellutils-1.8/ChangeLog
- --- tmp/shellutils-1.8/ChangeLog Wed Oct 28 12:27:01 1992
- +++ shellutils-1.8/ChangeLog Fri Nov 6 19:29:15 1992
- @@ -1,3 +1,17 @@
- +Fri Nov 6 19:24:19 1992 Jason Merrill (jason@jarthur.claremont.edu)
- +
- + * Added support in date(1) for hosts that don't support setting the
- + timezone with the environment variable TZ:
- +
- + * configure.in: Added check for tzset(3) -- is this always present
- + if the host supports TZ?
- +
- + * strftime.c (zone_name): If no tzset, check env manually and
- + return "GMT" if appropriate.
- +
- + * date.c (show_date): If no tzset, check env manually and use
- + gmtime(3) if appropriate.
- +
- Wed Oct 28 14:16:48 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
-
- * Version 1.8.
- diff -ur tmp/shellutils-1.8/configure.in shellutils-1.8/configure.in
- --- tmp/shellutils-1.8/configure.in Thu Oct 1 17:56:22 1992
- +++ shellutils-1.8/configure.in Fri Nov 6 18:37:59 1992
- @@ -82,6 +82,7 @@
- AC_ALLOCA
- AC_STRUCT_TM
- AC_TIMEZONE
- +AC_HAVE_FUNCS(tzset)
- AC_XENIX_DIR
- echo checking for libinet
- # Needed on ISC for syslog.
- diff -ur tmp/shellutils-1.8/lib/strftime.c shellutils-1.8/lib/strftime.c
- --- tmp/shellutils-1.8/lib/strftime.c Fri Jul 24 14:24:55 1992
- +++ shellutils-1.8/lib/strftime.c Fri Nov 6 19:34:52 1992
- @@ -216,6 +216,12 @@
- struct timeval tv;
- struct timezone tz;
-
- +#ifndef HAVE_TZSET
- + extern char *getenv();
- + char *tzenv = getenv ("TZ");
- + if (tzenv && *tzenv == '\0') /* TZ= */
- + return "GMT";
- +#endif
- gettimeofday (&tv, &tz);
- return timezone (tz.tz_minuteswest, tp->tm_isdst);
- }
- diff -ur tmp/shellutils-1.8/src/date.c shellutils-1.8/src/date.c
- --- tmp/shellutils-1.8/src/date.c Mon May 11 21:09:07 1992
- +++ shellutils-1.8/src/date.c Fri Nov 6 19:33:28 1992
- @@ -156,7 +156,14 @@
- char *out = NULL;
- size_t out_length = 0;
-
- - tm = localtime (&when);
- +#ifndef HAVE_TZSET
- + /* Note: the code in strftime.c:zone_name() to determine the time zone
- + requires that TZ_UCT be "TZ=" */
- + if (!strcmp (getenv ("TZ"), TZ_UCT+3))
- + tm = gmtime (&when);
- + else
- +#endif /* HAVE_TZSET */
- + tm = localtime (&when);
-
- if (format == NULL)
- /* Print the date in the default format. Vanilla ANSI C strftime
-
-