X-Git-Url: https://git.cameronkatri.com/bsdgames-darwin.git/blobdiff_plain/77e3814f0c0e3dea4d0032e25666f77e6f83bfff..e51dd5d1fb713d15515575d8a5a600a11434a186:/mille/mille.c diff --git a/mille/mille.c b/mille/mille.c index 0bd9010d..10857a8d 100644 --- a/mille/mille.c +++ b/mille/mille.c @@ -1,6 +1,8 @@ +/* $NetBSD: mille.c,v 1.20 2011/08/31 16:24:56 plunky Exp $ */ + /* - * Copyright (c) 1982 Regents of the University of California. - * All rights reserved. + * Copyright (c) 1982, 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 @@ -10,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. * @@ -31,40 +29,39 @@ * SUCH DAMAGE. */ +#include #ifndef lint -char copyright[] = -"@(#) Copyright (c) 1982 Regents of the University of California.\n\ - All rights reserved.\n"; +__COPYRIGHT("@(#) Copyright (c) 1982, 1993\ + The Regents of the University of California. All rights reserved."); #endif /* not lint */ #ifndef lint -static char sccsid[] = "@(#)mille.c 5.5 (Berkeley) 2/28/91"; +#if 0 +static char sccsid[] = "@(#)mille.c 8.1 (Berkeley) 5/31/93"; +#else +__RCSID("$NetBSD: mille.c,v 1.20 2011/08/31 16:24:56 plunky Exp $"); +#endif #endif /* not lint */ -# include "mille.h" -# include -# ifdef attron -# include -# endif attron +#include +#include "mille.h" +#include /* * @(#)mille.c 1.3 (Berkeley) 5/10/83 */ -void rub(); - -main(ac, av) -reg int ac; -reg char *av[]; { +int +main(int ac, char *av[]) +{ + bool restore; - reg bool restore; - - /* run as the user */ - setuid(getuid()); + /* Revoke setgid privileges */ + setgid(getgid()); if (strcmp(av[0], "a.out") == 0) { outf = fopen("q", "w"); - setbuf(outf, (char *)NULL); + setbuf(outf, NULL); Debug = TRUE; } restore = FALSE; @@ -76,18 +73,12 @@ reg char *av[]; { break; default: printf("usage: milles [ restore_file ]\n"); - exit(-1); + exit(1); /* NOTREACHED */ } Play = PLAYER; - initscr(); -# ifdef attron -# define CA cursor_address -# endif - if (!CA) { - printf("Sorry. Need cursor addressing to play mille\n"); - exit(-1); - } + if (!initscr()) + errx(0, "couldn't initialize screen"); delwin(stdscr); stdscr = Board = newwin(BOARD_Y, BOARD_X, 0, 0); Score = newwin(SCORE_Y, SCORE_X, 0, 40); @@ -100,12 +91,12 @@ reg char *av[]; { leaveok(Score, TRUE); leaveok(Miles, TRUE); clearok(curscr, TRUE); -# ifndef PROF - srandom(getpid()); -# else +#ifndef PROF + srandom((long) time(NULL)); +#else srandom(0); -# endif - crmode(); +#endif + cbreak(); noecho(); signal(SIGINT, rub); for (;;) { @@ -147,24 +138,25 @@ reg char *av[]; { * quit. */ void -rub() { - +rub(int dummy __unused) +{ (void)signal(SIGINT, SIG_IGN); if (getyn(REALLYPROMPT)) - die(); + die(0); (void)signal(SIGINT, rub); } /* * Time to go beddy-by */ -die() { +void +die(int code) +{ (void)signal(SIGINT, SIG_IGN); if (outf) fflush(outf); mvcur(0, COLS - 1, LINES - 1, 0); endwin(); - exit(1); + exit(code); } -