]> git.cameronkatri.com Git - bsdgames-darwin.git/blobdiff - monop/execute.c
buffnum is shared between subs.c and fancy.c
[bsdgames-darwin.git] / monop / execute.c
index b8208fcc8c079c0e65828ae9ce6037cbe1416058..3466c7ec140f051acee638e0425f41e5174069e9 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: execute.c,v 1.20 2008/02/24 06:03:35 dholland Exp $    */
+/*     $NetBSD: execute.c,v 1.22 2012/06/19 05:35:32 dholland Exp $    */
 
 /*
  * Copyright (c) 1980, 1993
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)execute.c  8.1 (Berkeley) 5/31/93";
 #else
-__RCSID("$NetBSD: execute.c,v 1.20 2008/02/24 06:03:35 dholland Exp $");
+__RCSID("$NetBSD: execute.c,v 1.22 2012/06/19 05:35:32 dholland Exp $");
 #endif
 #endif /* not lint */
 
@@ -78,8 +78,7 @@ static int getnum_withbrace(const char *what, char *txt, int min, int max,
  *     This routine executes the given command by index number
  */
 void
-execute(com_num)
-       int com_num;
+execute(int com_num)
 {
        new_play = FALSE;       /* new_play is true if fixing   */
        (*func[com_num])();
@@ -95,7 +94,7 @@ execute(com_num)
  *     This routine moves a piece around.
  */
 void
-do_move()
+do_move(void)
 {
        int r1, r2;
        bool was_jail;
@@ -128,8 +127,7 @@ ret:
  *     This routine moves a normal move
  */
 void
-move(rl)
-       int rl;
+move(int rl)
 {
        int old_loc;
 
@@ -146,7 +144,7 @@ move(rl)
  *     This routine shows the results of a move
  */
 static void
-show_move()
+show_move(void)
 {
        SQUARE *sqp;
 
@@ -241,7 +239,7 @@ reset_game(void)
  *     This routine saves the current game for use at a later date
  */
 void
-save()
+save(void)
 {
        char *sp;
        FILE *outf;
@@ -362,6 +360,7 @@ rest_f(const char *file)
        char xbuf[80];
        STAT sbuf;
        char readbuf[512];
+       int ret = 0;
 
        inf = fopen(file, "r");
        if (inf == NULL) {
@@ -389,11 +388,13 @@ rest_f(const char *file)
                sp = strchr(readbuf, '\n');
                if (sp == NULL) {
                        printf("file is corrupt: long lines.\n");
+                       ret = -1;
                        break;
                }
                *sp = '\0';
 
                if (restore_parseline(readbuf)) {
+                       ret = -1;
                        break;
                }
        }
@@ -402,8 +403,16 @@ rest_f(const char *file)
                warnx("%s: read error", file);
        fclose(inf);
 
+       if (ret < 0)
+               return -1;
+
        name_list[num_play] = "done";
 
+       if (play == NULL || cur_p == NULL || num_play < 2) {
+               printf("save file is incomplete.\n");
+               return -1;
+       }
+
        /*
         * We could at this point crosscheck the following:
         *    - there are only two GOJF cards floating around