Article View: gnu.utils.bug
Article #1049Bug & fix in shellutils-1.8 date on old machines
From: Jason Merrill
Date: Sat, 07 Nov 1992 03:45
Date: Sat, 07 Nov 1992 03:45
77 lines
3209 bytes
3209 bytes
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
Technical Details
Message-ID:
<1992Nov7.034519.11267@muddcs.claremont.edu>Path:
arc1-ca.pugleaf.net!sparky!uunet!zaphod.mps.ohio-state.edu!cis.ohio-state.edu!jarthur.claremont.edu!jasonShow Full Headers
Complete Article Headers
Newsgroups: gnu.utils.bug Path: arc1-ca.pugleaf.net!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