Without IGNORE, -Wunused-result throws a warning on fread(2).
authorEric S. Raymond <esr@thyrsus.com>
Sat, 1 Jul 2017 12:35:05 +0000 (08:35 -0400)
committerEric S. Raymond <esr@thyrsus.com>
Sat, 1 Jul 2017 12:35:05 +0000 (08:35 -0400)
I've seen it happen on fwrite(2) as well; wrapping that as well in
case some compiler decides to be finicky.

saveresume.c

index e6c0b0ab8c5218fb25b5f73380551f3707c6c86b..3ec4ebd11b0aa1a192ea145e99c689d44295b616 100644 (file)
@@ -26,6 +26,8 @@ struct save_t {
 };
 struct save_t save;
 
+#define IGNORE(r) do{if (r){}}while(0)
+
 int savefile(FILE *fp, long version)
 /* Save game to file. No input or output from user. */
 {
@@ -38,7 +40,7 @@ int savefile(FILE *fp, long version)
     save.version = (version == 0) ? VRSION : version;
 
     memcpy(&save.game, &game, sizeof(struct game_t));
-    fwrite(&save, sizeof(struct save_t), 1, fp);
+    IGNORE(fwrite(&save, sizeof(struct save_t), 1, fp));
     return (0);
 }
 
@@ -114,7 +116,7 @@ int restore(FILE* fp)
     return GO_UNKNOWN;
 #endif
 
-    fread(&save, sizeof(struct save_t), 1, fp);
+    IGNORE(fread(&save, sizeof(struct save_t), 1, fp));
     fclose(fp);
     if (save.version != VRSION) {
         rspeak(VERSION_SKEW, save.version / 10, MOD(save.version, 10), VRSION / 10, MOD(VRSION, 10));