rnd-20020313-3-src
[rocksndiamonds.git] / src / libgame / misc.c
index e144979a7bb40ed1c2a38132e7860629477041ff..93ba670da6d130f17de807ea1b4fe08348d12f89 100644 (file)
@@ -700,26 +700,28 @@ void putFile32BitInteger(FILE *file, int value, int byte_order)
   }
 }
 
-void getFileChunk(FILE *file, char *chunk_buffer, int *chunk_length,
-                 int byte_order)
+boolean getFileChunk(FILE *file, char *chunk_name, int *chunk_size,
+                    int byte_order)
 {
-  const int chunk_identifier_length = 4;
+  const int chunk_name_length = 4;
+
+  /* read chunk name */
+  fgets(chunk_name, chunk_name_length + 1, file);
 
-  /* read chunk identifier */
-  fgets(chunk_buffer, chunk_identifier_length + 1, file);
+  /* read chunk size */
+  *chunk_size = getFile32BitInteger(file, byte_order);
 
-  /* read chunk length */
-  *chunk_length = getFile32BitInteger(file, byte_order);
+  return (feof(file) || ferror(file) ? FALSE : TRUE);
 }
 
-void putFileChunk(FILE *file, char *chunk_name, int chunk_length,
+void putFileChunk(FILE *file, char *chunk_name, int chunk_size,
                  int byte_order)
 {
-  /* write chunk identifier */
+  /* write chunk name */
   fputs(chunk_name, file);
 
-  /* write chunk length */
-  putFile32BitInteger(file, chunk_length, byte_order);
+  /* write chunk size */
+  putFile32BitInteger(file, chunk_size, byte_order);
 }
 
 #define TRANSLATE_KEYSYM_TO_KEYNAME    0