diff -r 06202df3799e -r 792daecf7c77 src/newgrf_config.cpp --- a/src/newgrf_config.cpp Sat Sep 15 16:01:34 2007 +0000 +++ b/src/newgrf_config.cpp Sun Sep 16 18:10:52 2007 +0000 @@ -51,7 +51,7 @@ } md5_finish(&md5state, config->md5sum); - fclose(f); + FioFCloseFile(f); return true; } @@ -356,26 +356,18 @@ return num; } -bool FioTarFileListScanNewGRFCallback(const char *filename, int size, void *userdata) +static uint ScanTar(TarFileList::iterator tar) { - uint *num = (uint *)userdata; + uint num = 0; + const char *filename = (*tar).first.c_str(); const char *ext = strrchr(filename, '.'); /* If no extension or extension isn't .grf, skip the file */ if (ext == NULL) return false; if (strcasecmp(ext, ".grf") != 0) return false; - if (ScanPathAddGrf(filename)) (*num)++; + if (ScanPathAddGrf(filename)) num++; - /* Always return false, as we don't want to stop with listing all the files */ - return false; -} - -static uint ScanTar(const char *filename) -{ - uint num = 0; - - FioTarFileList(filename, "rb", NULL, FioTarFileListScanNewGRFCallback, &num); return num; } @@ -384,7 +376,7 @@ { Searchpath sp; char path[MAX_PATH]; - const char *tar; + TarFileList::iterator tar; uint num = 0; ClearGRFConfigList(&_all_grfs);