diff options
author | jmallett <jmallett@FreeBSD.org> | 2002-08-30 07:14:42 +0000 |
---|---|---|
committer | jmallett <jmallett@FreeBSD.org> | 2002-08-30 07:14:42 +0000 |
commit | a059a854e9f7870b1d2446aa34d7130c5b660803 (patch) | |
tree | 8aaf697529194b5ec986e567eedb4b450fb87eae /games | |
parent | 3b8e2fbae0153619f7f0a7dc8f3cc2c47f9bcc00 (diff) | |
download | FreeBSD-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/Makefile | 3 | ||||
-rw-r--r-- | games/wargames/wargames.c | 46 | ||||
-rw-r--r-- | games/wargames/wargames.sh | 45 |
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 |