summaryrefslogtreecommitdiffstats
path: root/games/grdc
diff options
context:
space:
mode:
authorcperciva <cperciva@FreeBSD.org>2015-10-02 10:08:11 +0000
committercperciva <cperciva@FreeBSD.org>2015-10-02 10:08:11 +0000
commit8cc71b38c27f2be8ba4c227078a51c63847a89de (patch)
tree0bbcb3f392def57bae56978c0da09362f7d6b426 /games/grdc
parent0c2e89c50542aa374d776ce0787b4a06e0de1be2 (diff)
downloadFreeBSD-src-8cc71b38c27f2be8ba4c227078a51c63847a89de.zip
FreeBSD-src-8cc71b38c27f2be8ba4c227078a51c63847a89de.tar.gz
Final step of eliminating the "games" distribution: Merge src/games
(or what's left of it, at least) into src/usr.bin. This change will not be MFCed. Discussed at: EuroBSDCon 2014 Committed from: EuroBSDCon 2015
Diffstat (limited to 'games/grdc')
-rw-r--r--games/grdc/Makefile8
-rw-r--r--games/grdc/Makefile.depend19
-rw-r--r--games/grdc/grdc.633
-rw-r--r--games/grdc/grdc.c273
4 files changed, 0 insertions, 333 deletions
diff --git a/games/grdc/Makefile b/games/grdc/Makefile
deleted file mode 100644
index 73d395a..0000000
--- a/games/grdc/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# $FreeBSD$
-
-PROG= grdc
-MAN= grdc.6
-DPADD= ${LIBNCURSESW}
-LDADD= -lncursesw
-
-.include <bsd.prog.mk>
diff --git a/games/grdc/Makefile.depend b/games/grdc/Makefile.depend
deleted file mode 100644
index 59bc828..0000000
--- a/games/grdc/Makefile.depend
+++ /dev/null
@@ -1,19 +0,0 @@
-# $FreeBSD$
-# Autogenerated - do NOT edit!
-
-DIRDEPS = \
- gnu/lib/csu \
- gnu/lib/libgcc \
- include \
- include/xlocale \
- lib/${CSU_DIR} \
- lib/libc \
- lib/libcompiler_rt \
- lib/ncurses/ncursesw \
-
-
-.include <dirdeps.mk>
-
-.if ${DEP_RELDIR} == ${_DEP_RELDIR}
-# local dependencies - needed for -jN in clean tree
-.endif
diff --git a/games/grdc/grdc.6 b/games/grdc/grdc.6
deleted file mode 100644
index 5226a6b..0000000
--- a/games/grdc/grdc.6
+++ /dev/null
@@ -1,33 +0,0 @@
-.\" $FreeBSD$
-.Dd September 25, 2001
-.Dt GRDC 6
-.Os
-.Sh NAME
-.Nm grdc
-.Nd grand digital clock (curses)
-.Sh SYNOPSIS
-.Nm
-.Op Fl st
-.Op Ar n
-.Sh DESCRIPTION
-.Nm
-runs a digital clock made of reverse-video blanks on a curses
-compatible VDU screen.
-With an optional numeric argument
-.Ar n
-it stops after
-.Ar n
-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
-.An -nosplit
-.An Amos Shapir ,
-modified for curses by
-.An John Lupien .
diff --git a/games/grdc/grdc.c b/games/grdc/grdc.c
deleted file mode 100644
index 04cc00b..0000000
--- a/games/grdc/grdc.c
+++ /dev/null
@@ -1,273 +0,0 @@
-/*
- * Grand digital clock for curses compatible terminals
- * 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 <samy@kerneled.com>
- *
- * $FreeBSD$
- */
-
-#include <err.h>
-#include <ncurses.h>
-#include <signal.h>
-#include <stdlib.h>
-#include <time.h>
-#include <unistd.h>
-
-#define YBASE 10
-#define XBASE 10
-#define XLENGTH 58
-#define YDEPTH 7
-
-static struct timespec now;
-static struct tm *tm;
-
-static short disp[11] = {
- 075557, 011111, 071747, 071717, 055711,
- 074717, 074757, 071111, 075757, 075717, 002020
-};
-static long old[6], next[6], new[6], mask;
-
-static volatile sig_atomic_t sigtermed;
-
-static int hascolor = 0;
-
-static void set(int, int);
-static void standt(int);
-static void movto(int, int);
-static void sighndl(int);
-static void usage(void);
-
-static void
-sighndl(int signo)
-{
-
- sigtermed = signo;
-}
-
-int
-main(int argc, char *argv[])
-{
- struct timespec delay;
- time_t prev_sec;
- long t, a;
- int i, j, s, k;
- int n;
- int ch;
- int scrol;
- int t12;
-
- t12 = scrol = 0;
-
- while ((ch = getopt(argc, argv, "ts")) != -1)
- switch (ch) {
- case 's':
- scrol = 1;
- break;
- case 't':
- t12 = 1;
- break;
- case '?':
- default:
- usage();
- /* NOTREACHED */
- }
- argc -= optind;
- argv += optind;
-
- if (argc > 1) {
- usage();
- /* NOTREACHED */
- }
-
- if (argc > 0) {
- n = atoi(*argv) + 1;
- if (n < 1) {
- warnx("number of seconds is out of range");
- usage();
- /* NOTREACHED */
- }
- } else
- n = 0;
-
- initscr();
-
- signal(SIGINT,sighndl);
- signal(SIGTERM,sighndl);
- signal(SIGHUP,sighndl);
-
- cbreak();
- noecho();
- curs_set(0);
-
- hascolor = has_colors();
-
- if(hascolor) {
- start_color();
- init_pair(1, COLOR_BLACK, COLOR_RED);
- init_pair(2, COLOR_RED, COLOR_BLACK);
- init_pair(3, COLOR_WHITE, COLOR_BLACK);
- attrset(COLOR_PAIR(2));
- }
-
- clear();
- refresh();
-
- if(hascolor) {
- attrset(COLOR_PAIR(3));
-
- mvaddch(YBASE - 2, XBASE - 3, ACS_ULCORNER);
- hline(ACS_HLINE, XLENGTH);
- mvaddch(YBASE - 2, XBASE - 2 + XLENGTH, ACS_URCORNER);
-
- mvaddch(YBASE + YDEPTH - 1, XBASE - 3, ACS_LLCORNER);
- hline(ACS_HLINE, XLENGTH);
- mvaddch(YBASE + YDEPTH - 1, XBASE - 2 + XLENGTH, ACS_LRCORNER);
-
- move(YBASE - 1, XBASE - 3);
- vline(ACS_VLINE, YDEPTH);
-
- move(YBASE - 1, XBASE - 2 + XLENGTH);
- vline(ACS_VLINE, YDEPTH);
-
- attrset(COLOR_PAIR(2));
- }
- clock_gettime(CLOCK_REALTIME_FAST, &now);
- prev_sec = now.tv_sec;
- 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);
-
- if (t12) {
- if (tm->tm_hour < 12) {
- if (tm->tm_hour == 0)
- tm->tm_hour = 12;
- mvaddstr(YBASE + 5, XBASE + 52, "AM");
- } else {
- if (tm->tm_hour > 12)
- tm->tm_hour -= 12;
- mvaddstr(YBASE + 5, XBASE + 52, "PM");
- }
- }
-
- set(tm->tm_hour%10, 20);
- set(tm->tm_hour/10, 24);
- set(10, 7);
- set(10, 17);
- for(k=0; k<6; k++) {
- if(scrol) {
- for(i=0; i<5; i++)
- new[i] = (new[i]&~mask) | (new[i+1]&mask);
- new[5] = (new[5]&~mask) | (next[k]&mask);
- } else
- new[k] = (new[k]&~mask) | (next[k]&mask);
- next[k] = 0;
- for(s=1; s>=0; s--) {
- standt(s);
- for(i=0; i<6; i++) {
- if((a = (new[i]^old[i])&(s ? new : old)[i]) != 0) {
- for(j=0,t=1<<26; t; t>>=1,j++) {
- if(a&t) {
- if(!(a&(t<<1))) {
- movto(YBASE + i, XBASE + 2*j);
- }
- addstr(" ");
- }
- }
- }
- if(!s) {
- old[i] = new[i];
- }
- }
- if(!s) {
- refresh();
- }
- }
- }
- movto(6, 0);
- refresh();
- clock_gettime(CLOCK_REALTIME_FAST, &now);
- if (now.tv_sec == prev_sec) {
- if (delay.tv_nsec > 0) {
- delay.tv_sec = 0;
- delay.tv_nsec = 1000000000 - now.tv_nsec;
- } else {
- delay.tv_sec = 1;
- delay.tv_nsec = 0;
- }
- nanosleep(&delay, NULL);
- clock_gettime(CLOCK_REALTIME_FAST, &now);
- }
- n -= now.tv_sec - prev_sec;
- prev_sec = now.tv_sec;
- if (sigtermed) {
- standend();
- clear();
- refresh();
- endwin();
- errx(1, "terminated by signal %d", (int)sigtermed);
- }
- } while (n);
- standend();
- clear();
- refresh();
- endwin();
- return(0);
-}
-
-static void
-set(int t, int n)
-{
- int i, m;
-
- m = 7<<n;
- for(i=0; i<5; i++) {
- next[i] |= ((disp[t]>>(4-i)*3)&07)<<n;
- mask |= (next[i]^old[i])&m;
- }
- if(mask&m)
- mask |= m;
-}
-
-static void
-standt(int on)
-{
- if (on) {
- if(hascolor) {
- attron(COLOR_PAIR(1));
- } else {
- attron(A_STANDOUT);
- }
- } else {
- if(hascolor) {
- attron(COLOR_PAIR(2));
- } else {
- attroff(A_STANDOUT);
- }
- }
-}
-
-static void
-movto(int line, int col)
-{
- move(line, col);
-}
-
-static void
-usage(void)
-{
-
- (void)fprintf(stderr, "usage: grdc [-st] [n]\n");
- exit(1);
-}
OpenPOWER on IntegriCloud