summaryrefslogtreecommitdiff
path: root/src/strife/p_saveg.c
diff options
context:
space:
mode:
authorSimon Howard2010-09-09 23:13:06 +0000
committerSimon Howard2010-09-09 23:13:06 +0000
commit120d90c67b2a4aa0a8883c4897241dee2222acd2 (patch)
treeb439e48483ebbd698c2daa6e24eeaaab1ba97470 /src/strife/p_saveg.c
parent79268587fc730e17cbd974a5583c7185604b59a3 (diff)
parent22fc405736dc4796958de221c07d52432f1b271b (diff)
downloadchocolate-doom-120d90c67b2a4aa0a8883c4897241dee2222acd2.tar.gz
chocolate-doom-120d90c67b2a4aa0a8883c4897241dee2222acd2.tar.bz2
chocolate-doom-120d90c67b2a4aa0a8883c4897241dee2222acd2.zip
Merge from raven-branch.
Subversion-branch: /branches/strife-branch Subversion-revision: 2051
Diffstat (limited to 'src/strife/p_saveg.c')
-rw-r--r--src/strife/p_saveg.c24
1 files changed, 21 insertions, 3 deletions
diff --git a/src/strife/p_saveg.c b/src/strife/p_saveg.c
index 6da095e5..52c6bcd5 100644
--- a/src/strife/p_saveg.c
+++ b/src/strife/p_saveg.c
@@ -44,6 +44,7 @@
FILE *save_stream;
int savegamelength;
+boolean savegame_error;
// Get the filename of a temporary file to write the savegame to. After
// the file has been successfully saved, it will be renamed to the
@@ -75,7 +76,7 @@ char *P_SaveGameFile(int slot)
filename = malloc(strlen(savegamedir) + 32);
}
- sprintf(basename, DEH_String(SAVEGAMENAME "%d.dsg"), slot);
+ DEH_snprintf(basename, 32, SAVEGAMENAME "%d.dsg", slot);
sprintf(filename, "%s%s", savegamedir, basename);
@@ -88,14 +89,31 @@ static byte saveg_read8(void)
{
byte result;
- fread(&result, 1, 1, save_stream);
+ if (fread(&result, 1, 1, save_stream) < 1)
+ {
+ if (!savegame_error)
+ {
+ fprintf(stderr, "saveg_read8: Unexpected end of file while "
+ "reading save game\n");
+
+ savegame_error = true;
+ }
+ }
return result;
}
static void saveg_write8(byte value)
{
- fwrite(&value, 1, 1, save_stream);
+ if (fwrite(&value, 1, 1, save_stream) < 1)
+ {
+ if (!savegame_error)
+ {
+ fprintf(stderr, "saveg_write8: Error while writing save game\n");
+
+ savegame_error = true;
+ }
+ }
}
static short saveg_read16(void)