-/* $NetBSD: arithmetic.c,v 1.9 1997/10/15 08:53:24 is Exp $ */
+/* $NetBSD: arithmetic.c,v 1.13 1999/07/17 19:11:30 hubertf Exp $ */
/*
* Copyright (c) 1989, 1993
#if 0
static char sccsid[] = "@(#)arithmetic.c 8.1 (Berkeley) 5/31/93";
#else
-__RCSID("$NetBSD: arithmetic.c,v 1.9 1997/10/15 08:53:24 is Exp $");
+__RCSID("$NetBSD: arithmetic.c,v 1.13 1999/07/17 19:11:30 hubertf Exp $");
#endif
#endif /* not lint */
#include <stdlib.h>
#include <string.h>
#include <time.h>
+#include <unistd.h>
int getrandom __P((int, int, int));
-void intr __P((int));
+void intr __P((int)) __attribute__((__noreturn__));
int main __P((int, char *[]));
int opnum __P((int));
void penalise __P((int, int, int));
int problem __P((void));
void showstats __P((void));
-void usage __P((void));
+void usage __P((void)) __attribute__((__noreturn__));
-char keylist[] = "+-x/";
-char defaultkeys[] = "+-";
-char *keys = defaultkeys;
+const char keylist[] = "+-x/";
+const char defaultkeys[] = "+-";
+const char *keys = defaultkeys;
int nkeys = sizeof(defaultkeys) - 1;
int rangemax = 10;
int nright, nwrong;
extern int optind;
int ch, cnt;
+ /* Revoke setgid privileges */
+ setregid(getgid(), getgid());
+
while ((ch = getopt(argc, argv, "r:o:")) != -1)
switch(ch) {
case 'o': {
- char *p;
+ const char *p;
for (p = keys = optarg; *p; ++p)
if (!strchr(keylist, *p))
/* Handle interrupt character. Print score and exit. */
void
intr(dummy)
- int dummy;
+ int dummy __attribute__((__unused__));
{
showstats();
exit(0);