From 1b41610a820215cdc569129e1cada5c6267fcecb Mon Sep 17 00:00:00 2001 From: Michael Forney Date: Sun, 3 Sep 2017 11:39:12 -0700 Subject: [PATCH] date: Just set TZ to handle -u flag This simplifies things a tiny bit, and is also necessary for setting the date since mktime operates based on the value of TZ. --- date.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/date.c b/date.c index 1671e1f..7201227 100644 --- a/date.c +++ b/date.c @@ -15,9 +15,8 @@ int main(int argc, char *argv[]) { struct tm *now; - struct tm *(*tztime)(const time_t *) = localtime; time_t t; - char buf[BUFSIZ], *fmt = "%c", *tz = "local"; + char buf[BUFSIZ], *fmt = "%c"; t = time(NULL); @@ -26,8 +25,8 @@ main(int argc, char *argv[]) t = estrtonum(EARGF(usage()), 0, LLONG_MAX); break; case 'u': - tztime = gmtime; - tz = "gm"; + if (setenv("TZ", "UTC0", 1) < 0) + eprintf("setenv:"); break; default: usage(); @@ -39,8 +38,8 @@ main(int argc, char *argv[]) else fmt = &argv[0][1]; } - if (!(now = tztime(&t))) - eprintf("%stime failed\n", tz); + if (!(now = localtime(&t))) + eprintf("localtime:"); strftime(buf, sizeof(buf), fmt, now); puts(buf);