summaryrefslogtreecommitdiffstats
path: root/mille/save.c
diff options
context:
space:
mode:
authorlukem <lukem@NetBSD.org>1997-10-12 00:53:45 +0000
committerlukem <lukem@NetBSD.org>1997-10-12 00:53:45 +0000
commit718b40e43f2fbb804acc0266499926f8e51f83ef (patch)
treece23ec6ddb7cc228fe2f9f6af3f68bd843f6c4f9 /mille/save.c
parent465f7ee80758219cdc70f7ed834148335f5c4d59 (diff)
downloadbsdgames-darwin-718b40e43f2fbb804acc0266499926f8e51f83ef.tar.gz
bsdgames-darwin-718b40e43f2fbb804acc0266499926f8e51f83ef.tar.zst
bsdgames-darwin-718b40e43f2fbb804acc0266499926f8e51f83ef.zip
WARNSify
Diffstat (limited to 'mille/save.c')
-rw-r--r--mille/save.c73
1 files changed, 36 insertions, 37 deletions
diff --git a/mille/save.c b/mille/save.c
index a66a6597..05c007f0 100644
--- a/mille/save.c
+++ b/mille/save.c
@@ -1,4 +1,4 @@
-/* $NetBSD: save.c,v 1.5 1997/05/23 23:09:43 jtc Exp $ */
+/* $NetBSD: save.c,v 1.6 1997/10/12 00:54:32 lukem Exp $ */
/*
* Copyright (c) 1983, 1993
@@ -33,18 +33,15 @@
* SUCH DAMAGE.
*/
+#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)save.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: save.c,v 1.5 1997/05/23 23:09:43 jtc Exp $";
+__RCSID("$NetBSD: save.c,v 1.6 1997/10/12 00:54:32 lukem Exp $");
#endif
#endif /* not lint */
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <string.h>
-#include <termios.h>
#include "mille.h"
#ifndef unctrl
@@ -61,24 +58,22 @@ static char rcsid[] = "$NetBSD: save.c,v 1.5 1997/05/23 23:09:43 jtc Exp $";
typedef struct stat STAT;
-char *ctime();
-
-int read(), write();
-
/*
* This routine saves the current game for use at a later date
+ * Returns FALSE if it couldn't be done.
*/
-
-save() {
-
- extern int errno;
- register char *sp;
- register int outf;
- register time_t *tp;
- char buf[80];
- time_t tme;
- STAT junk;
-
+bool
+save()
+{
+ char *sp;
+ int outf;
+ time_t *tp;
+ char buf[80];
+ time_t tme;
+ STAT junk;
+ bool rv;
+
+ sp = NULL;
tp = &tme;
if (Fromfile && getyn(SAMEFILEPROMPT))
strcpy(buf, Fromfile);
@@ -130,16 +125,20 @@ over:
mvwaddstr(Score, ERR_Y, ERR_X, buf);
wrefresh(Score);
time(tp); /* get current time */
- strcpy(buf, ctime(tp));
- for (sp = buf; *sp != '\n'; sp++)
- continue;
- *sp = '\0';
- varpush(outf, write);
+ rv = varpush(outf, writev);
close(outf);
- wprintw(Score, " [%s]", buf);
+ if (rv == FALSE) {
+ unlink(buf);
+ } else {
+ strcpy(buf, ctime(tp));
+ for (sp = buf; *sp != '\n'; sp++)
+ continue;
+ *sp = '\0';
+ wprintw(Score, " [%s]", buf);
+ }
wclrtoeol(Score);
wrefresh(Score);
- return TRUE;
+ return rv;
}
/*
@@ -147,24 +146,25 @@ over:
* backup was made on exiting, in which case certain things must
* be cleaned up before the game starts.
*/
+bool
rest_f(file)
-register char *file;
+ char *file;
{
- register char *sp;
- register int inf;
- char buf[80];
- STAT sbuf;
+ char *sp;
+ int inf;
+ char buf[80];
+ STAT sbuf;
if ((inf = open(file, 0)) < 0) {
- perror(file);
+ warn("%s", file);
exit(1);
}
if (fstat(inf, &sbuf) < 0) { /* get file stats */
- perror(file);
+ warn("%s", file);
exit(1);
}
- varpush(inf, read);
+ varpush(inf, readv);
close(inf);
strcpy(buf, ctime(&sbuf.st_mtime));
for (sp = buf; *sp != '\n'; sp++)
@@ -177,4 +177,3 @@ register char *file;
Fromfile = file;
return !On_exit;
}
-