]> git.cameronkatri.com Git - bsdgames-darwin.git/blobdiff - backgammon/common_source/save.c
Curses works - define USE_CURSES for BSD44 and don't try to do our own
[bsdgames-darwin.git] / backgammon / common_source / save.c
index b91d3ec3e7a1f3ca0c3a60ec813fafb91ea6d759..2f4a810140b97836b73caa13ac86af964e08de25 100644 (file)
@@ -1,6 +1,8 @@
+/*     $NetBSD: save.c,v 1.9 1999/07/28 02:07:39 hubertf 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
  * SUCH DAMAGE.
  */
 
+#include <sys/cdefs.h>
 #ifndef lint
-static char sccsid[] = "@(#)save.c     5.4 (Berkeley) 6/1/90";
+#if 0
+static char sccsid[] = "@(#)save.c     8.1 (Berkeley) 5/31/93";
+#else
+__RCSID("$NetBSD: save.c,v 1.9 1999/07/28 02:07:39 hubertf Exp $");
+#endif
 #endif /* not lint */
 
-#include "back.h"
-
-extern int     errno;
+#include <errno.h>
 
-static char    confirm[] = "Are you sure you want to leave now?";
-static char    prompt[] = "Enter a file name:  ";
-static char    exist1[] = "The file '";
-static char    exist2[] =
-       "' already exists.\nAre you sure you want to use this file?";
-static char    cantuse[] = "\nCan't use ";
-static char    saved[] = "This game has been saved on the file '";
-static char    type[] = "'.\nType \"backgammon ";
-static char    rec[] = "\" to recover your game.\n\n";
-static char    cantrec[] = "Can't recover file:  ";
+#include "back.h"
 
-save (n)
-register int   n;
+static const char confirm[] = "Are you sure you want to leave now?";
+static const char prompt[] = "Enter a file name:  ";
+static const char exist1[] = "The file '";
+static const char exist2[] =
+"' already exists.\nAre you sure you want to use this file?";
+static const char cantuse[] = "\nCan't use ";
+static const char saved[] = "This game has been saved on the file '";
+static const char type[] = "'.\nType \"backgammon ";
+static const char rec[] = "\" to recover your game.\n\n";
+static const char cantrec[] = "Can't recover file:  ";
 
+void
+save(n)
+       int     n;
 {
-       register int    fdesc;
-       register char   *fs;
-       char            fname[50];
+       int     fdesc;
+       char   *fs;
+       char    fname[50];
 
-       if (n)  {
-               if (tflag)  {
-                       curmove (20,0);
+       if (n) {
+               if (tflag) {
+                       curmove(20, 0);
                        clend();
                } else
-                       writec ('\n');
-               writel (confirm);
-               if (! yorn(0))
+                       writec('\n');
+               writel(confirm);
+               if (!yorn(0))
                        return;
        }
        cflag = 1;
-       for (;;)  {
-               writel (prompt);
+       for (;;) {
+               writel(prompt);
                fs = fname;
-               while ((*fs = readc()) != '\n')  {
-                       if (*fs == tty.sg_erase)  {
-                               if (fs > fname)  {
+               while ((*fs = readc()) != '\n') {
+                       if (*fs == old.c_cc[VERASE]) {
+                               if (fs > fname) {
                                        fs--;
                                        if (tflag)
-                                               curmove (curr,curc-1);
+                                               curmove(curr, curc - 1);
                                        else
-                                               writec (*fs);
+                                               writec(*fs);
                                } else
-                                       writec ('\007');
+                                       writec('\007');
                                continue;
                        }
-                       writec (*fs++);
+                       writec(*fs++);
                }
                *fs = '\0';
-               if ((fdesc = open(fname,2)) == -1 && errno == 2)  {
-                       if ((fdesc = creat (fname,0700)) != -1)
-                       break;
+               if ((fdesc = open(fname, O_RDWR)) == -1 && errno == ENOENT) {
+                       if ((fdesc = creat(fname, 0600)) != -1)
+                               break;
                }
-               if (fdesc != -1)  {
-                       if (tflag)  {
-                               curmove (18,0);
+               if (fdesc != -1) {
+                       if (tflag) {
+                               curmove(18, 0);
                                clend();
                        } else
-                               writec ('\n');
-                       writel (exist1);
-                       writel (fname);
-                       writel (exist2);
+                               writec('\n');
+                       writel(exist1);
+                       writel(fname);
+                       writel(exist2);
                        cflag = 0;
-                       close (fdesc);
-                       if (yorn (0))  {
-                               unlink (fname);
-                               fdesc = creat (fname,0700);
+                       close(fdesc);
+                       if (yorn(0)) {
+                               unlink(fname);
+                               fdesc = creat(fname, 0600);
                                break;
-                       } else  {
+                       } else {
                                cflag = 1;
                                continue;
                        }
                }
-               writel (cantuse);
-               writel (fname);
-               writel (".\n");
-               close (fdesc);
+               writel(cantuse);
+               writel(fname);
+               writel(".\n");
+               close(fdesc);
                cflag = 1;
        }
-       write (fdesc,board,sizeof board);
-       write (fdesc,off,sizeof off);
-       write (fdesc,in,sizeof in);
-       write (fdesc,dice,sizeof dice);
-       write (fdesc,&cturn,sizeof cturn);
-       write (fdesc,&dlast,sizeof dlast);
-       write (fdesc,&pnum,sizeof pnum);
-       write (fdesc,&rscore,sizeof rscore);
-       write (fdesc,&wscore,sizeof wscore);
-       write (fdesc,&gvalue,sizeof gvalue);
-       write (fdesc,&raflag,sizeof raflag);
-       close (fdesc);
+       write(fdesc, board, sizeof board);
+       write(fdesc, off, sizeof off);
+       write(fdesc, in, sizeof in);
+       write(fdesc, dice, sizeof dice);
+       write(fdesc, &cturn, sizeof cturn);
+       write(fdesc, &dlast, sizeof dlast);
+       write(fdesc, &pnum, sizeof pnum);
+       write(fdesc, &rscore, sizeof rscore);
+       write(fdesc, &wscore, sizeof wscore);
+       write(fdesc, &gvalue, sizeof gvalue);
+       write(fdesc, &raflag, sizeof raflag);
+       close(fdesc);
        if (tflag)
-               curmove (18,0);
-       writel (saved);
-       writel (fname);
-       writel (type);
-       writel (fname);
-       writel (rec);
+               curmove(18, 0);
+       writel(saved);
+       writel(fname);
+       writel(type);
+       writel(fname);
+       writel(rec);
        if (tflag)
                clend();
-       getout ();
+       getout(0);
 }
-\f
-recover (s)
-char   *s;
 
+void
+recover(s)
+       const char   *s;
 {
-       register int    i;
-       int             fdesc;
+       int     fdesc;
 
-       if ((fdesc = open (s,0)) == -1)
-               norec (s);
-       read (fdesc,board,sizeof board);
-       read (fdesc,off,sizeof off);
-       read (fdesc,in,sizeof in);
-       read (fdesc,dice,sizeof dice);
-       read (fdesc,&cturn,sizeof cturn);
-       read (fdesc,&dlast,sizeof dlast);
-       read (fdesc,&pnum,sizeof pnum);
-       read (fdesc,&rscore,sizeof rscore);
-       read (fdesc,&wscore,sizeof wscore);
-       read (fdesc,&gvalue,sizeof gvalue);
-       read (fdesc,&raflag,sizeof raflag);
-       close (fdesc);
+       if ((fdesc = open(s, O_RDONLY)) == -1)
+               norec(s);
+       read(fdesc, board, sizeof board);
+       read(fdesc, off, sizeof off);
+       read(fdesc, in, sizeof in);
+       read(fdesc, dice, sizeof dice);
+       read(fdesc, &cturn, sizeof cturn);
+       read(fdesc, &dlast, sizeof dlast);
+       read(fdesc, &pnum, sizeof pnum);
+       read(fdesc, &rscore, sizeof rscore);
+       read(fdesc, &wscore, sizeof wscore);
+       read(fdesc, &gvalue, sizeof gvalue);
+       read(fdesc, &raflag, sizeof raflag);
+       close(fdesc);
        rflag = 1;
 }
 
-norec (s)
-register char  *s;
-
+void
+norec(s)
+       const char   *s;
 {
-       register char   *c;
+       const char   *c;
 
        tflag = 0;
-       writel (cantrec);
+       writel(cantrec);
        c = s;
        while (*c != '\0')
-               writec (*c++);
-       getout ();
+               writec(*c++);
+       getout(0);
 }