From 6bb1d8eec514833c3a4aa3d6d129dec8d95fa52d Mon Sep 17 00:00:00 2001 From: Juli Mallett Date: Fri, 30 Aug 2002 07:14:42 +0000 Subject: [PATCH] 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. --- games/wargames/Makefile | 3 ++- games/wargames/wargames.c | 46 ++++++++++++++++++++++++++++++++++++++ games/wargames/wargames.sh | 45 ------------------------------------- 3 files changed, 48 insertions(+), 46 deletions(-) create mode 100644 games/wargames/wargames.c delete mode 100644 games/wargames/wargames.sh diff --git a/games/wargames/Makefile b/games/wargames/Makefile index 4f2a9df8c673..f692921921d8 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 diff --git a/games/wargames/wargames.c b/games/wargames/wargames.c new file mode 100644 index 000000000000..4a2282ea89db --- /dev/null +++ b/games/wargames/wargames.c @@ -0,0 +1,46 @@ +/* + * Program: wargames(6) + * Author: Juli Mallett + * 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 +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include + +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 b378e25b00d4..000000000000 --- 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