]> git.cameronkatri.com Git - bsdgames-darwin.git/blobdiff - trek/dumpgame.c
Fix merge conflicts
[bsdgames-darwin.git] / trek / dumpgame.c
index 1adc6078c72eadaee56eb641c496cb80a7dd3d2d..d39268134aff9f8205286938bd0875fc6fbec191 100644 (file)
@@ -1,6 +1,8 @@
+/*     $NetBSD: dumpgame.c,v 1.15 2009/08/12 08:54:54 dholland Exp $   */
+
 /*
- * Copyright (c) 1980 Regents of the University of California.
- * All rights reserved.
+ * Copyright (c) 1980, 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
-/*static char sccsid[] = "from: @(#)dumpgame.c 4.6 (Berkeley) 6/1/90";*/
-static char rcsid[] = "$Id: dumpgame.c,v 1.2 1993/08/01 18:50:39 mycroft Exp $";
+#if 0
+static char sccsid[] = "@(#)dumpgame.c 8.1 (Berkeley) 5/31/93";
+#else
+__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 }
 };
 
 /*
@@ -72,21 +78,24 @@ struct dump Dump_template[] =
 **     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);
@@ -107,18 +116,19 @@ dumpgame()
 **     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);
        }
 
@@ -136,18 +146,17 @@ restartgame()
 **     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)