void cleanup()
{
- if (buffer != NULL)
- {
- delete[] buffer;
- }
-
- if (output != NULL)
- {
- delete[] output;
- }
+ delete[] buffer;
+ delete[] output;
}
void countFiles(const char *dirName)
{
printf("Couldn't open %s for reading!\n", filename);
closedir(dirp);
- gzclose(pak);
+ fclose(pak);
exit(1);
}
fclose(infile);
- if (buffer != NULL)
- {
- delete[] buffer;
- buffer = NULL;
- }
-
+ delete[] buffer;
buffer = new unsigned char[filesize];
- if (output != NULL)
- {
- delete[] output;
- output = NULL;
- }
-
+ delete[] output;
output = new unsigned char[(int)(filesize * 1.01) + 12];
fp = gzopen(filename, "rb");
{
printf("Couldn't open %s for reading!\n", filename);
closedir(dirp);
- gzclose(pak);
+ fclose(pak);
exit(1);
}
else
fileData[files].set(filename, fSize, cSize, ftell(pak));
- fwrite(output, 1, cSize, pak);
+ if (fwrite(output, 1, cSize, pak) != cSize)
+ {
+ fprintf(stderr, "Error writing to pakfile: %s\n", strerror(errno));
+ fclose(pak);
+ exit(1);
+ }
files++;
}
pak = fopen(argv[argc - 1], "wb");
+ if (!pak)
+ {
+ fprintf(stderr, "Error opening %s: %s\n", argv[argc - 1], strerror(errno));
+ return 1;
+ }
for (int i = 1 ; i < (argc - 1) ; i++)
{
break;
}
- fwrite(&fileData[i], sizeof(FileData), 1, pak);
+ if (fwrite(&fileData[i], sizeof(FileData), 1, pak) != 1)
+ {
+ fprintf(stderr, "Error writing to %s: %s\n", argv[argc - 1], strerror(errno));
+ fclose(pak);
+ return 1;
+ }
}
unsigned int numberOfFiles = totalFiles;
- fwrite(&pos, sizeof(unsigned int), 1, pak);
- fwrite(&numberOfFiles, sizeof(unsigned int), 1, pak);
+ if (fwrite(&pos, sizeof(unsigned int), 1, pak) != 1)
+ {
+ fprintf(stderr, "Error writing to %s: %s\n", argv[argc - 1], strerror(errno));
+ fclose(pak);
+ return 1;
+ }
+ if (fwrite(&numberOfFiles, sizeof(unsigned int), 1, pak) != 1)
+ {
+ fprintf(stderr, "Error writing to %s: %s\n", argv[argc - 1], strerror(errno));
+ fclose(pak);
+ return 1;
+ }
fclose(pak);