--- a/spritecache.c Sat Jul 09 00:14:40 2005 +0000
+++ b/spritecache.c Sat Jul 09 09:24:34 2005 +0000
@@ -745,20 +745,16 @@
/* Check that the supplied MD5 hash matches that stored for the supplied filename */
static bool CheckMD5Digest(const MD5File file, md5_byte_t *digest, bool warn)
{
- int i, matching_bytes=0;
+ uint i;
/* Loop through each byte of the file MD5 and the stored MD5... */
- for (i = 0; i < 16; i++)
- {
- if (file.hash[i] == digest[i])
- matching_bytes++;
- };
+ for (i = 0; i < 16; i++) if (file.hash[i] != digest[i]) break;
/* If all bytes of the MD5's match (i.e. the MD5's match)... */
- if (matching_bytes == 16) {
+ if (i == 16) {
return true;
} else {
- if (warn) printf("MD5 of %s is ****INCORRECT**** - File Corrupt.\n", file.filename);
+ if (warn) fprintf(stderr, "MD5 of %s is ****INCORRECT**** - File Corrupt.\n", file.filename);
return false;
};
}
@@ -770,10 +766,6 @@
FILE *f;
char buf[MAX_PATH];
- md5_state_t filemd5state;
- int len=0;
- md5_byte_t buffer[1024], digest[16];
-
// open file
sprintf(buf, "%s%s", _path.data_dir, file.filename);
f = fopen(buf, "rb");
@@ -789,12 +781,16 @@
#endif
if (f != NULL) {
+ md5_state_t filemd5state;
+ md5_byte_t buffer[1024];
+ md5_byte_t digest[16];
+ size_t len;
+
md5_init(&filemd5state);
- while ((len = fread(buffer, 1, 1024, f)) != 0)
+ while ((len = fread(buffer, 1, sizeof(buffer), f)) != 0)
md5_append(&filemd5state, buffer, len);
- if (ferror(f))
- if (warn) printf("Error Reading from %s \n", buf);
+ if (ferror(f) && warn) fprintf(stderr, "Error Reading from %s \n", buf);
fclose(f);
md5_finish(&filemd5state, digest);
@@ -816,22 +812,14 @@
uint dos = 0;
uint win = 0;
- for (i = 0; i < 2; i++)
- if (FileMD5(files_dos.basic[i], true))
- dos++;
- for (i = 0; i < 3; i++)
- if (FileMD5(files_dos.landscape[i], true))
- dos++;
+ for (i = 0; i < 2; i++) if (FileMD5(files_dos.basic[i], true)) dos++;
+ for (i = 0; i < 3; i++) if (FileMD5(files_dos.landscape[i], true)) dos++;
- for (i = 0; i < 2; i++)
- if (FileMD5(files_win.basic[i], true))
- win++;
- for (i = 0; i < 3; i++)
- if (FileMD5(files_win.landscape[i], true))
- win++;
+ for (i = 0; i < 2; i++) if (FileMD5(files_win.basic[i], true)) win++;
+ for (i = 0; i < 3; i++) if (FileMD5(files_win.landscape[i], true)) win++;
if (!FileMD5(sample_cat_win, false) && !FileMD5(sample_cat_dos, false))
- printf("Your sample.cat file is corrupted or missing!\n");
+ fprintf(stderr, "Your sample.cat file is corrupted or missing!\n");
/*
* forced DOS palette via command line -> leave it that way