[Scummvm-cvs-logs] CVS: tools extract_kyra.cpp,1.2,1.3

Gregory Montoir cyx at users.sourceforge.net
Sun Jun 5 11:42:27 CEST 2005


Update of /cvsroot/scummvm/tools
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12908

Modified Files:
	extract_kyra.cpp 
Log Message:
fix for bug #1209076

Index: extract_kyra.cpp
===================================================================
RCS file: /cvsroot/scummvm/tools/extract_kyra.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- extract_kyra.cpp	1 Jan 2005 10:33:30 -0000	1.2
+++ extract_kyra.cpp	5 Jun 2005 18:42:06 -0000	1.3
@@ -70,19 +70,18 @@
 }
 
 PAKFile::PAKFile(const char* file) {
-	FILE* pakfile = fopen(file, "r");
-	
+	FILE *pakfile = fopen(file, "rb");
 	if (!pakfile) {
 		error("couldn't open file '%s'", file);
 	}
 	
 	_open = true;
-	
-	_buffer = new uint8[fileSize(pakfile)];
+	_filesize = fileSize(pakfile);
+
+	_buffer = new uint8[_filesize];
 	assert(_buffer);
 	
-	_filesize = fileSize(pakfile);
-	fread(_buffer, fileSize(pakfile), 1, pakfile);
+	fread(_buffer, _filesize, 1, pakfile);
 	
 	fclose(pakfile);
 }
@@ -146,9 +145,11 @@
 		position += 4;
 		
 		if (!strcmp(currentName, file)) {
-			FILE* output = fopen(file, "wb+");
-			fwrite(_buffer + startoffset, endoffset - startoffset, 1,output);
-			fclose(output);
+			FILE *output = fopen(file, "wb");
+			if (output) {
+				fwrite(_buffer + startoffset, endoffset - startoffset, 1, output);
+				fclose(output);
+			}
 			return;
 		}
 		
@@ -186,9 +187,11 @@
 		}
 		position += 4;
 		
-		FILE* output = fopen(currentName, "wb+");
-		fwrite(_buffer + startoffset, endoffset - startoffset, 1,output);
-		fclose(output);
+		FILE *output = fopen(currentName, "wb");
+		if (output) {
+			fwrite(_buffer + startoffset, endoffset - startoffset, 1, output);
+			fclose(output);
+		}
 		
 		if (endoffset == _filesize) {
 			break;





More information about the Scummvm-git-logs mailing list