From: florian Date: Sat, 17 Sep 2022 10:32:05 +0000 (+0000) Subject: Show time zone name and offset in clock border if TZ environment X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=94089c8a8fa946ee870b386a40eaef204b9c9b8e;p=openbsd Show time zone name and offset in clock border if TZ environment variable is set. This is useful when running multiple clocks in different time zones. From James Russell Stickney (jrs AT outband.net), tweaked by me. Input & OK kn --- diff --git a/games/grdc/grdc.6 b/games/grdc/grdc.6 index 16c1fb5cd3d..16e1758c6d2 100644 --- a/games/grdc/grdc.6 +++ b/games/grdc/grdc.6 @@ -1,8 +1,8 @@ -.\" $OpenBSD: grdc.6,v 1.12 2019/02/06 15:02:01 schwarze Exp $ +.\" $OpenBSD: grdc.6,v 1.13 2022/09/17 10:32:05 florian Exp $ .\" .\" Copyright 2002 Amos Shapir. Public domain. .\" -.Dd $Mdocdate: February 6 2019 $ +.Dd $Mdocdate: September 17 2022 $ .Dt GRDC 6 .Os .Sh NAME @@ -30,6 +30,15 @@ skips seconds. Pressing the .Sq q key exits the program. +.Sh ENVIRONMENT +.Bl -tag -width Ds +.It Ev TZ +The time zone to use for displaying the time. +It is specified as a pathname relative to +.Pa /usr/share/zoneinfo . +If this variable is not set, the time zone is determined based on +.Pa /etc/localtime . +.El .Sh AUTHORS .An -nosplit .An Amos Shapir , diff --git a/games/grdc/grdc.c b/games/grdc/grdc.c index 287fb14e95f..66e5eee79e6 100644 --- a/games/grdc/grdc.c +++ b/games/grdc/grdc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: grdc.c,v 1.34 2021/10/23 11:22:49 mestre Exp $ */ +/* $OpenBSD: grdc.c,v 1.35 2022/09/17 10:32:05 florian Exp $ */ /* * * Copyright 2002 Amos Shapir. Public domain. @@ -78,6 +78,9 @@ main(int argc, char *argv[]) int xbase; int ybase; int wintoosmall; + char *tz; + + tz = getenv("TZ"); scrol = wintoosmall = 0; while ((i = getopt(argc, argv, "sh")) != -1) { @@ -139,6 +142,16 @@ main(int argc, char *argv[]) alarm(n); } do { + mask = 0; + tm = localtime(&now.tv_sec); + set(tm->tm_sec % 10, 0); + set(tm->tm_sec / 10, 4); + set(tm->tm_min % 10, 10); + set(tm->tm_min / 10, 14); + set(tm->tm_hour % 10, 20); + set(tm->tm_hour / 10, 24); + set(10, 7); + set(10, 17); if (sigwinched) { sigwinched = 0; wintoosmall = 0; @@ -171,21 +184,17 @@ main(int argc, char *argv[]) move(ybase, xbase + XLENGTH); vline(ACS_VLINE, YDEPTH); + if (tz != NULL) { + move(ybase - 1, xbase); + printw("[ %s %+d ]", tz, + tm->tm_gmtoff / 60 / 60 ); + } + attrset(COLOR_PAIR(2)); } for (k = 0; k < 6; k++) old[k] = 0; } - mask = 0; - tm = localtime(&now.tv_sec); - set(tm->tm_sec % 10, 0); - set(tm->tm_sec / 10, 4); - set(tm->tm_min % 10, 10); - set(tm->tm_min / 10, 14); - set(tm->tm_hour % 10, 20); - set(tm->tm_hour / 10, 24); - set(10, 7); - set(10, 17); if (wintoosmall) { move(0, 0); printw("%02d:%02d:%02d", tm->tm_hour, tm->tm_min,