X-Git-Url: https://git.cameronkatri.com/bsdgames-darwin.git/blobdiff_plain/634cb6ceab3191623a3daed5e953821e3f37a4cb..6ee975e21fcf991ef591682630e1259efc1e2d46:/trek/main.c diff --git a/trek/main.c b/trek/main.c index 3d90d0f8..3c55293f 100644 --- a/trek/main.c +++ b/trek/main.c @@ -1,4 +1,4 @@ -/* $NetBSD: main.c,v 1.5 1997/10/12 21:25:01 christos Exp $ */ +/* $NetBSD: main.c,v 1.22 2009/05/25 00:37:27 dholland Exp $ */ /* * Copyright (c) 1980, 1993 @@ -12,11 +12,7 @@ * 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 + * 3. 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. * @@ -35,30 +31,28 @@ #include #ifndef lint -__COPYRIGHT("@(#) Copyright (c) 1980, 1993\n\ - The Regents of the University of California. All rights reserved.\n"); +__COPYRIGHT("@(#) Copyright (c) 1980, 1993\ + The Regents of the University of California. All rights reserved."); #endif /* not lint */ #ifndef lint #if 0 static char sccsid[] = "@(#)main.c 8.1 (Berkeley) 5/31/93"; #else -__RCSID("$NetBSD: main.c,v 1.5 1997/10/12 21:25:01 christos Exp $"); +__RCSID("$NetBSD: main.c,v 1.22 2009/05/25 00:37:27 dholland Exp $"); #endif #endif /* not lint */ #include #include -#include #include #include #include +#include +#include #include "trek.h" #include "getpar.h" -# define PRIO 00 /* default priority */ - -int Mother = 51 + (51 << 8); /* ** #### ##### # #### ##### #### ##### # # @@ -134,7 +128,7 @@ int Mother = 51 + (51 << 8); ** ** Many things in trek are not as clear as they might be, but are ** done to reduce space. I compile with the -f and -O flags. I -** am constrained to running with non-seperated I/D space, since +** am constrained to running with non-separated I/D space, since ** we don't have doubleing point hardware here; even if we did, I ** would like trek to be available to the large number of people ** who either have an 11/40 or do not have FP hardware. I also @@ -159,42 +153,29 @@ int Mother = 51 + (51 << 8); jmp_buf env; -int main __P((int, char **)); +static void +usage(const char *av0) +{ + errx(1, "Usage: %s [-fs]", av0); +} + +int main(int, char **); int -main(argc, argv) -int argc; -char **argv; +main(int argc, char **argv) { - long vect; - char opencode; - int prio; - int ac; - char **av; - struct termios argp; - - av = argv; - ac = argc; - av++; - time(&vect); - srand(vect); - opencode = 'w'; - prio = PRIO; - - if (tcgetattr(1, &argp) == 0) - { - if (cfgetispeed(&argp) < B1200) - Etc.fast++; - } + int ch; - while (ac > 1 && av[0][0] == '-') - { - switch (av[0][1]) - { - case 'a': /* append to log file */ - opencode = 'a'; - break; + /* Revoke setgid privileges */ + setgid(getgid()); + /* Default to fast mode */ + Etc.fast = 1; + + srandom((long) time(NULL)); + + while ((ch = getopt(argc, argv, "fst")) != -1) { + switch (ch) { case 'f': /* set fast mode */ Etc.fast++; break; @@ -203,44 +184,28 @@ char **argv; Etc.fast = 0; break; -# ifdef xTRACE +#ifdef xTRACE case 't': /* trace */ - if (getuid() != Mother) - goto badflag; Trace++; break; -# endif - - case 'p': /* set priority */ - if (getuid() != Mother) - goto badflag; - prio = atoi(av[0] + 2); - break; +#endif default: - badflag: - printf("Invalid option: %s\n", av[0]); - + usage(argv[0]); } - ac--; - av++; } - if (ac > 2) - errx(1, "arg count"); - /* - if (ac > 1) - f_log = fopen(av[0], opencode); - */ + if (optind < argc) + usage(argv[0]); - printf("\n * * * S T A R T R E K * * *\n\nPress return to continue.\n"); + printf("\n * * * S T A R T R E K * * *\n\n" + "Press return to continue.\n"); - if (setjmp(env)) - { + if (setjmp(env)) { if ( !getynpar("Another game") ) exit(0); } - do - { + + do { setup(); play(); } while (getynpar("Another game"));