+/* $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
* 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.
*
* SUCH DAMAGE.
*/
+#include <sys/cdefs.h>
#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[] = "from: @(#)mille.c 5.5 (Berkeley) 2/28/91";*/
-static char rcsid[] = "$Id: mille.c,v 1.2 1993/08/01 18:54:01 mycroft Exp $";
+#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 <signal.h>
-# ifdef attron
-# include <term.h>
-# endif attron
+#include <time.h>
+#include "mille.h"
+#include <signal.h>
/*
* @(#)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;
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);
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 (;;) {
* 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);
}
-