summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>2000-10-18 19:02:56 +0000
committerJim Meyering <jim@meyering.net>2000-10-18 19:02:56 +0000
commit29a4bf90d3684739caf223f458557fcf6108661b (patch)
tree4f96f8d9c5f3c547d3dffdc961b203515a5d20b8
parentfe5cad6b2904320c6d1e9fe38c15415e3c884d99 (diff)
downloadcoreutils-29a4bf90d3684739caf223f458557fcf6108661b.tar.xz
Undo the effect of the 1997-07-12 change to date.c; it
broke "date -u MMDDhhmm" and it wasn't documented. This reverts to the behavior of the 1996-01-03 patch. (TZ_UTC0, MAYBE_SET_TZ_UTC0, set_tz): Remove. (batch_convert): Don't futz with TZ. (main): -u now parses all dates as UTC, not just some.
-rw-r--r--src/date.c55
1 files changed, 7 insertions, 48 deletions
diff --git a/src/date.c b/src/date.c
index bc1dd3cf8..993cfceb0 100644
--- a/src/date.c
+++ b/src/date.c
@@ -98,17 +98,12 @@ static struct option const long_options[] =
{NULL, 0, NULL, 0}
};
-#define TZ_UTC0 "TZ=UTC0"
-
#if LOCALTIME_CACHE
# define TZSET tzset ()
#else
# define TZSET /* empty */
#endif
-#define MAYBE_SET_TZ_UTC0 \
- do { if (universal_time) set_tz (TZ_UTC0); } while (0)
-
#ifdef _DATE_FMT
# define DATE_FMT_LANGINFO() nl_langinfo (_DATE_FMT)
#else
@@ -195,16 +190,6 @@ the following modifiers between `%%' and a numeric directive.\n\
exit (status);
}
-/* Set the TZ environment variable. */
-
-static void
-set_tz (const char *tz_eq_zone)
-{
- if (putenv (tz_eq_zone) != 0)
- error (1, 0, "memory exhausted");
- TZSET;
-}
-
/* Parse each line in INPUT_FILENAME as with --date and display each
resulting time and date. If the file cannot be opened, tell why
then exit. Issue a diagnostic for any lines that cannot be parsed.
@@ -219,7 +204,6 @@ batch_convert (const char *input_filename, const char *format)
int line_length;
size_t buflen;
time_t when;
- char *initial_TZ IF_LINT (= NULL);
if (strcmp (input_filename, "-") == 0)
{
@@ -237,23 +221,6 @@ batch_convert (const char *input_filename, const char *format)
line = NULL;
buflen = 0;
-
- if (universal_time)
- {
- initial_TZ = getenv ("TZ");
- if (initial_TZ == NULL)
- {
- initial_TZ = xstrdup ("TZ=");
- }
- else
- {
- size_t tz_len = strlen (initial_TZ);
- char *buf = xmalloc (3 + tz_len + 1);
- memcpy (mempcpy (buf, "TZ=", 3), initial_TZ, tz_len + 1);
- initial_TZ = buf;
- }
- }
-
status = 0;
while (1)
{
@@ -264,13 +231,6 @@ batch_convert (const char *input_filename, const char *format)
break;
}
- if (universal_time)
- {
- /* When given a universal time option, restore the initial
- value of TZ before parsing each string. */
- set_tz (initial_TZ);
- }
-
when = get_date (line, NULL);
if (when == -1)
@@ -282,14 +242,10 @@ batch_convert (const char *input_filename, const char *format)
}
else
{
- MAYBE_SET_TZ_UTC0;
show_date (format, when);
}
}
- if (universal_time)
- free (initial_TZ);
-
if (fclose (in_stream) == EOF)
error (2, errno, "`%s'", input_filename);
@@ -400,6 +356,13 @@ argument must be a format string beginning with `+'."),
if (set_date)
datestr = set_datestr;
+ if (universal_time)
+ {
+ if (putenv ("TZ=UTC0") != 0)
+ xalloc_die ();
+ TZSET;
+ }
+
if (batch_file != NULL)
{
status = batch_convert (batch_file,
@@ -460,10 +423,6 @@ argument must be a format string beginning with `+'."),
}
}
- /* When given a universal time option, set TZ to UTC0 after
- parsing the specified date, but before printing it. */
- MAYBE_SET_TZ_UTC0;
-
show_date (format, when);
}