-/* $NetBSD: dumpgame.c,v 1.3 1995/04/22 10:58:46 cgd Exp $ */
+/* $NetBSD: dumpgame.c,v 1.15 2009/08/12 08:54:54 dholland Exp $ */
/*
* Copyright (c) 1980, 1993
* 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
#if 0
static char sccsid[] = "@(#)dumpgame.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: dumpgame.c,v 1.3 1995/04/22 10:58:46 cgd Exp $";
+__RCSID("$NetBSD: dumpgame.c,v 1.15 2009/08/12 08:54:54 dholland Exp $");
#endif
#endif /* not lint */
-# include "trek.h"
+#include <stdio.h>
+#include <err.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include "trek.h"
/*** THIS CONSTANT MUST CHANGE AS THE DATA SPACES CHANGE ***/
-# define VERSION 2
+#define VERSION 2
-struct dump
-{
+struct dump {
char *area;
int count;
};
+static int readdump(int);
-struct dump Dump_template[] =
-{
- (char *)&Ship, sizeof (Ship),
- (char *)&Now, sizeof (Now),
- (char *)&Param, sizeof (Param),
- (char *)&Etc, sizeof (Etc),
- (char *)&Game, sizeof (Game),
- (char *)Sect, sizeof (Sect),
- (char *)Quad, sizeof (Quad),
- (char *)&Move, sizeof (Move),
- (char *)Event, sizeof (Event),
- 0
+
+static struct dump Dump_template[] = {
+ { (char *)&Ship, sizeof (Ship) },
+ { (char *)&Now, sizeof (Now) },
+ { (char *)&Param, sizeof (Param) },
+ { (char *)&Etc, sizeof (Etc) },
+ { (char *)&Game, sizeof (Game) },
+ { (char *)Sect, sizeof (Sect) },
+ { (char *)Quad, sizeof (Quad) },
+ { (char *)&Move, sizeof (Move) },
+ { (char *)Event, sizeof (Event) },
+ { NULL, 0 }
};
/*
** output change.
*/
-dumpgame()
+/*ARGSUSED*/
+void
+dumpgame(int v __unused)
{
- int version;
- register int fd;
- register struct dump *d;
- register int i;
+ int version;
+ int fd;
+ struct dump *d;
+ int i;
- if ((fd = creat("trek.dump", 0644)) < 0)
- return (printf("cannot dump\n"));
+ if ((fd = creat("trek.dump", 0644)) < 0) {
+ warn("cannot open `trek.dump'");
+ return;
+ }
version = VERSION;
write(fd, &version, sizeof version);
/* output the main data areas */
- for (d = Dump_template; d->area; d++)
- {
+ for (d = Dump_template; d->area; d++) {
write(fd, &d->area, sizeof d->area);
i = d->count;
write(fd, d->area, i);
** Return value is zero for success, one for failure.
*/
-restartgame()
+int
+restartgame(void)
{
- register int fd;
+ int fd;
int version;
- if ((fd = open("trek.dump", 0)) < 0 ||
+ if ((fd = open("trek.dump", O_RDONLY)) < 0 ||
read(fd, &version, sizeof version) != sizeof version ||
version != VERSION ||
- readdump(fd))
- {
+ readdump(fd)) {
printf("cannot restart\n");
- close(fd);
+ if (fd >= 0)
+ close(fd);
return (1);
}
** Returns zero for success, one for failure.
*/
-readdump(fd1)
-int fd1;
+static int
+readdump(int fd1)
{
- register int fd;
- register struct dump *d;
- register int i;
- int junk;
+ int fd;
+ struct dump *d;
+ int i;
+ long junk;
fd = fd1;
- for (d = Dump_template; d->area; d++)
- {
+ for (d = Dump_template; d->area; d++) {
if (read(fd, &junk, sizeof junk) != (sizeof junk))
return (1);
if ((char *)junk != d->area)