summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--battlestar/save.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/battlestar/save.c b/battlestar/save.c
index 6af3c2ee..fa24f407 100644
--- a/battlestar/save.c
+++ b/battlestar/save.c
@@ -1,4 +1,4 @@
-/* $NetBSD: save.c,v 1.7 1997/10/12 02:06:15 lukem Exp $ */
+/* $NetBSD: save.c,v 1.8 1998/09/13 15:24:41 hubertf Exp $ */
/*
* Copyright (c) 1983, 1993
@@ -38,7 +38,7 @@
#if 0
static char sccsid[] = "@(#)save.c 8.2 (Berkeley) 4/28/95";
#else
-__RCSID("$NetBSD: save.c,v 1.7 1997/10/12 02:06:15 lukem Exp $");
+__RCSID("$NetBSD: save.c,v 1.8 1998/09/13 15:24:41 hubertf Exp $");
#endif
#endif /* not lint */
@@ -57,7 +57,7 @@ restore()
strcpy(home1, home);
strcat(home1, "/Bstar");
if ((fp = fopen(home1, "r")) == 0) {
- warn("fopen %s", home1);
+ err(1, "fopen %s", home1);
return;
}
fread(&WEIGHT, sizeof WEIGHT, 1, fp);
@@ -94,7 +94,9 @@ restore()
fread(&loved, sizeof loved, 1, fp);
fread(&pleasure, sizeof pleasure, 1, fp);
fread(&power, sizeof power, 1, fp);
- fread(&ego, sizeof ego, 1, fp);
+ if (fread(&ego, sizeof ego, 1, fp) < 1)
+ errx(1, "save file %s too short", home1);
+ fclose(fp);
}
void
@@ -149,4 +151,8 @@ save()
fwrite(&pleasure, sizeof pleasure, 1, fp);
fwrite(&power, sizeof power, 1, fp);
fwrite(&ego, sizeof ego, 1, fp);
+ fflush(fp);
+ if (ferror(fp))
+ warn("fwrite %s", home1);
+ fclose(fp);
}