From c91649aa818a8c6873545d1a36c2af8d15756934 Mon Sep 17 00:00:00 2001 From: mux Date: Fri, 28 Mar 2003 16:37:45 +0000 Subject: Add an option to print the time in 12-hour format. Submitted by: Samy Al Bahra --- games/grdc/grdc.6 | 4 ++++ games/grdc/grdc.c | 26 ++++++++++++++++++++++---- 2 files changed, 26 insertions(+), 4 deletions(-) (limited to 'games/grdc') diff --git a/games/grdc/grdc.6 b/games/grdc/grdc.6 index 99b7678..e9beaf7 100644 --- a/games/grdc/grdc.6 +++ b/games/grdc/grdc.6 @@ -8,6 +8,7 @@ .Sh SYNOPSIS .Nm .Op Fl s +.Op Fl t .Op Ar n .Sh DESCRIPTION .Nm @@ -21,6 +22,9 @@ seconds (default never). The optional .Fl s flag makes digits scroll as they change. +The optional +.Fl t +flag tells grdc to output the time in a 12-hour format. In this curses mode implementation, the scrolling option has trouble keeping up. .Sh AUTHORS diff --git a/games/grdc/grdc.c b/games/grdc/grdc.c index 97d956f..1c79c8c 100644 --- a/games/grdc/grdc.c +++ b/games/grdc/grdc.c @@ -1,11 +1,16 @@ /* * Grand digital clock for curses compatible terminals - * Usage: grdc [-s] [n] -- run for n seconds (default infinity) + * Usage: grdc [-st] [n] -- run for n seconds (default infinity) * Flags: -s: scroll + * -t: output time in 12-hour format + * * * modified 10-18-89 for curses (jrl) * 10-18-89 added signal handling * + * modified 03-25-03 for 12 hour option + * - Samy Al Bahra + * * $FreeBSD$ */ @@ -59,14 +64,18 @@ int i, j, s, k; int n; int ch; int scrol; +int t12; - scrol = 0; + t12 = scrol = 0; - while ((ch = getopt(argc, argv, "s")) != -1) + while ((ch = getopt(argc, argv, "ts")) != -1) switch (ch) { case 's': scrol = 1; break; + case 't': + t12 = 1; + break; case '?': default: usage(); @@ -135,6 +144,15 @@ int scrol; set(tm->tm_sec/10, 4); set(tm->tm_min%10, 10); set(tm->tm_min/10, 14); + + if (t12) { + if (tm->tm_hour > 12) { + tm->tm_hour -= 12; + mvaddstr(YBASE + 5, XBASE + 52, "PM"); + } else + mvaddstr(YBASE + 5, XBASE + 52, "AM"); + } + set(tm->tm_hour%10, 20); set(tm->tm_hour/10, 24); set(10, 7); @@ -229,6 +247,6 @@ void usage(void) { - (void)fprintf(stderr, "usage: grdc [-s] [n]\n"); + (void)fprintf(stderr, "usage: grdc [-st] [n]\n"); exit(1); } -- cgit v1.1