118710Sedward /*
260846Sbostic * Copyright (c) 1983, 1993
360846Sbostic * The Regents of the University of California. All rights reserved.
433694Sbostic *
542604Sbostic * %sccs.include.redist.c%
618710Sedward */
718710Sedward
818255Sedward #ifndef lint
960846Sbostic static char copyright[] =
1060846Sbostic "@(#) Copyright (c) 1983, 1993\n\
1160846Sbostic The Regents of the University of California. All rights reserved.\n";
1233694Sbostic #endif /* not lint */
1318255Sedward
1421237Sdist #ifndef lint
15*69068Sbostic static char sccsid[] = "@(#)main.c 8.2 (Berkeley) 04/28/95";
1633694Sbostic #endif /* not lint */
1721237Sdist
18*69068Sbostic #include "extern.h"
1918255Sedward
2018255Sedward /*ARGSUSED*/
main(argc,argv)2118255Sedward main(argc, argv)
2218255Sedward int argc;
2318255Sedward register char **argv;
2418255Sedward {
2518255Sedward register char *p;
2618255Sedward int i;
2718255Sedward
2818255Sedward (void) srand(getpid());
2918255Sedward issetuid = getuid() != geteuid();
3018255Sedward if (p = rindex(*argv, '/'))
3118255Sedward p++;
3218255Sedward else
3318255Sedward p = *argv;
3418255Sedward if (strcmp(p, "driver") == 0 || strcmp(p, "saildriver") == 0)
3518255Sedward mode = MODE_DRIVER;
3618255Sedward else if (strcmp(p, "sail.log") == 0)
3718255Sedward mode = MODE_LOGGER;
3818255Sedward else
3918255Sedward mode = MODE_PLAYER;
4018255Sedward while ((p = *++argv) && *p == '-')
4118255Sedward switch (p[1]) {
4218255Sedward case 'd':
4318255Sedward mode = MODE_DRIVER;
4418255Sedward break;
4518255Sedward case 's':
4618255Sedward mode = MODE_LOGGER;
4718255Sedward break;
4818255Sedward case 'D':
4918255Sedward debug++;
5018255Sedward break;
5118255Sedward case 'x':
5218255Sedward randomize;
5318255Sedward break;
5418255Sedward case 'l':
5518255Sedward longfmt++;
5618255Sedward break;
5718670Sedward case 'b':
5818670Sedward nobells++;
5918670Sedward break;
6018255Sedward default:
6118255Sedward fprintf(stderr, "SAIL: Unknown flag %s.\n", p);
6218255Sedward exit(1);
6318255Sedward }
6418255Sedward if (*argv)
6518255Sedward game = atoi(*argv);
6618255Sedward else
6718255Sedward game = -1;
6818255Sedward if (i = setjmp(restart))
6918255Sedward mode = i;
7018255Sedward switch (mode) {
7118255Sedward case MODE_PLAYER:
7218255Sedward return pl_main();
7318255Sedward case MODE_DRIVER:
7418255Sedward return dr_main();
7518255Sedward case MODE_LOGGER:
7618255Sedward return lo_main();
7718255Sedward default:
7818255Sedward fprintf(stderr, "SAIL: Unknown mode %d.\n", mode);
7918255Sedward abort();
8018255Sedward }
8118255Sedward /*NOTREACHED*/
8218255Sedward }
83