diff options
author | Simon Howard | 2010-05-03 17:07:45 +0000 |
---|---|---|
committer | Simon Howard | 2010-05-03 17:07:45 +0000 |
commit | 4767ddccafca1a1c50bc097284df1328d478882a (patch) | |
tree | 26846694ab4cb35dbea92bf1519dc3a4c9b33c52 /src/doom/p_saveg.c | |
parent | af48a6309cf1f03b5136e26a5fc27a38e490d808 (diff) | |
parent | aa35a71bd05536f82ce23887f7e84decc7f850a7 (diff) | |
download | chocolate-doom-4767ddccafca1a1c50bc097284df1328d478882a.tar.gz chocolate-doom-4767ddccafca1a1c50bc097284df1328d478882a.tar.bz2 chocolate-doom-4767ddccafca1a1c50bc097284df1328d478882a.zip |
Merge from trunk.
Subversion-branch: /branches/raven-branch
Subversion-revision: 1931
Diffstat (limited to 'src/doom/p_saveg.c')
-rw-r--r-- | src/doom/p_saveg.c | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/src/doom/p_saveg.c b/src/doom/p_saveg.c index e557e494..968120c0 100644 --- a/src/doom/p_saveg.c +++ b/src/doom/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) |