summaryrefslogtreecommitdiffstats
path: root/games
diff options
context:
space:
mode:
authorjmallett <jmallett@FreeBSD.org>2002-08-30 07:14:42 +0000
committerjmallett <jmallett@FreeBSD.org>2002-08-30 07:14:42 +0000
commita059a854e9f7870b1d2446aa34d7130c5b660803 (patch)
tree8aaf697529194b5ec986e567eedb4b450fb87eae /games
parent3b8e2fbae0153619f7f0a7dc8f3cc2c47f9bcc00 (diff)
downloadFreeBSD-src-a059a854e9f7870b1d2446aa34d7130c5b660803.zip
FreeBSD-src-a059a854e9f7870b1d2446aa34d7130c5b660803.tar.gz
Rewrite wargames(6) in C. A program in C in the public domain is better than
a shell script with a big copyright. Or maybe just a good way to spend an hour after watching a Matthew Broderick flick.
Diffstat (limited to 'games')
-rw-r--r--games/wargames/Makefile3
-rw-r--r--games/wargames/wargames.c46
-rw-r--r--games/wargames/wargames.sh45
3 files changed, 48 insertions, 46 deletions
diff --git a/games/wargames/Makefile b/games/wargames/Makefile
index 4f2a9df..f692921 100644
--- a/games/wargames/Makefile
+++ b/games/wargames/Makefile
@@ -1,7 +1,8 @@
# @(#)Makefile 8.1 (Berkeley) 5/31/93
# $FreeBSD$
-SCRIPTS=wargames.sh
+PROG= wargames
+LDADD= -lcurses
MAN= wargames.6
.include <bsd.prog.mk>
diff --git a/games/wargames/wargames.c b/games/wargames/wargames.c
new file mode 100644
index 0000000..4a2282e
--- /dev/null
+++ b/games/wargames/wargames.c
@@ -0,0 +1,46 @@
+/*
+ * Program: wargames(6)
+ * Author: Juli Mallett <jmallett@FreeBSD.org>
+ * Copyright: This file is in the public domain.
+ * Description:
+ * Would you like to play a game? Or is the game you chose just a practice
+ * in futility... Based on the original Berkeley shell script, inspired by
+ * the motion picture.
+ *
+ * From: @(#)wargames.sh 8.1 (Berkeley) 5/31/93
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/stat.h>
+#include <ncurses.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+int
+main(void)
+{
+ struct stat sb;
+ char buffer[MAXPATHLEN];
+ char *line;
+ size_t len;
+
+ printf("Would you like to play a game? ");
+ line = fgetln(stdin, &len);
+ if (line == NULL) {
+ err(1, "I'm sorry to hear that");
+ }
+ line[len - 1] = '\0';
+ snprintf(buffer, sizeof buffer, "/usr/games/%s", line);
+ if (stat(buffer, &sb) != -1) {
+ initscr();
+ clear();
+ endwin();
+ execl(buffer, line, NULL);
+ }
+ printf("Funny, the only way to win is not to play at all.\n");
+ return 0;
+}
diff --git a/games/wargames/wargames.sh b/games/wargames/wargames.sh
deleted file mode 100644
index b378e25..0000000
--- a/games/wargames/wargames.sh
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/bin/sh -
-#
-# Copyright (c) 1985, 1993
-# The Regents of the University of California. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-# 3. All advertising materials mentioning features or use of this software
-# must display the following acknowledgement:
-# This product includes software developed by the University of
-# California, Berkeley and its contributors.
-# 4. Neither the name of the University nor the names of its contributors
-# may be used to endorse or promote products derived from this software
-# without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-# SUCH DAMAGE.
-#
-# @(#)wargames.sh 8.1 (Berkeley) 5/31/93
-#
-echo -n "Would you like to play a game? "
-read x
-
-if [ -f /usr/games/$x ] ; then
- tput cl
- exec /usr/games/$x
-else
- echo "Funny, the only way to win is not to play at all."
-fi
-exit 0
OpenPOWER on IntegriCloud