[Scummvm-cvs-logs] CVS: tools compress_simon.c,1.4,1.5

Gregory Montoir cyx at users.sourceforge.net
Tue Mar 29 13:17:00 CEST 2005


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

Modified Files:
	compress_simon.c 
Log Message:
Changed compress_simon to match compress_sou behaviour, that is : creating temporary files in current directory. Should fix bug #1169111.

Index: compress_simon.c
===================================================================
RCS file: /cvsroot/scummvm/tools/compress_simon.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- compress_simon.c	1 Jan 2005 10:33:29 -0000	1.4
+++ compress_simon.c	29 Mar 2005 21:16:13 -0000	1.5
@@ -21,6 +21,9 @@
 
 #include "compress.h"
 
+#define TEMP_DAT	"tempfile.dat"
+#define TEMP_IDX	"tempfile.idx"
+
 static FILE *input, *output_idx, *output_snd;
 
 static CompressMode gCompMode = kMP3Mode;
@@ -49,17 +52,15 @@
 	fclose(output_idx);
 	fclose(input);
 
-	sprintf(tmp, "%s%s", infile_base, head);
+	sprintf(tmp, "%s.%s", infile_base, head);
 	output_idx = fopen(tmp, "wb");
 
-	sprintf(tmp, "%sidx", infile_base);
-	input = fopen(tmp, "rb");
+	input = fopen(TEMP_IDX, "rb");
 	while ((size = fread(fbuf, 1, 2048, input)) > 0) {
 		fwrite(fbuf, 1, size, output_idx);
 	}
 	fclose(input);
-	sprintf(tmp, "%sdat", infile_base);
-	input = fopen(tmp, "rb");
+	input = fopen(TEMP_DAT, "rb");
 	while ((size = fread(fbuf, 1, 2048, input)) > 0) {
 		fwrite(fbuf, 1, size, output_idx);
 	}
@@ -67,10 +68,8 @@
 	fclose(output_idx);
 
 	/* And some clean-up :-) */
-	sprintf(tmp, "%sidx", infile_base);
-	unlink(tmp);
-	sprintf(tmp, "%sdat", infile_base);
-	unlink(tmp);
+	unlink(TEMP_IDX);
+	unlink(TEMP_DAT);
 	unlink(TEMP_RAW);
 	unlink(tempEncoded);
 	unlink(TEMP_WAV);
@@ -187,18 +186,22 @@
 
 static void convert_pc(char *infile)
 {
-	int i, n, size, num;
-	char tmp[256];
+	int i, size, num;
 	uint32 filenums[32768];
 	uint32 offsets[32768];
+	char *p;
 
-	memccpy(infile_base, infile, '.', strlen(infile));
-	n = strlen(infile_base);
-	if (infile_base[n-1] == '.')
-		infile_base[n] = '\0';
-	else {
-		infile_base[n] = '.';
-		infile_base[n + 1] = '\0';
+	p = strrchr(infile, '/');
+	if (!p) {
+		p = strrchr(infile, '\\');
+		if (!p) {
+			p = infile - 1;
+		}
+	}
+	strcpy(infile_base, p + 1);
+	p = strrchr(infile_base, '.');
+	if (p) {
+		*p = '\0';
 	}
 
 	input = fopen(infile, "rb");
@@ -207,11 +210,17 @@
 		exit(-1);
 	}
 
-	sprintf(tmp, "%sidx", infile_base);
-	output_idx = fopen(tmp, "wb");
+	output_idx = fopen(TEMP_IDX, "wb");
+	if (!output_idx) {
+		printf("Can't open file " TEMP_IDX " for write!\n" );
+		exit(-1);
+	}
 
-	sprintf(tmp, "%sdat", infile_base);
-	output_snd = fopen(tmp, "wb");
+	output_snd = fopen(TEMP_DAT, "wb");
+	if (!output_snd) {
+		printf("Can't open file " TEMP_DAT " for write!\n" );
+		exit(-1);
+	}
 
 	num = get_offsets(filenums, offsets);
 
@@ -243,8 +252,7 @@
 	uint32 filenums[32768];
 	uint32 offsets[32768];
 	
-
-	sprintf(infile_base, "simon2.");
+	sprintf(infile_base, "simon2");
 
 	input = fopen("voices.idx", "rb");
 	if (!input) {
@@ -252,11 +260,17 @@
 		exit(-1);
 	}
 
-	sprintf(tmp, "%sidx", infile_base);
-	output_idx = fopen(tmp, "wb");
+	output_idx = fopen(TEMP_IDX, "wb");
+	if (!output_idx) {
+		printf("Can't open file " TEMP_IDX " for write!\n" );
+		exit(-1);
+	}
 
-	sprintf(tmp, "%sdat", infile_base);
-	output_snd = fopen(tmp, "wb");
+	output_snd = fopen(TEMP_DAT, "wb");
+	if (!output_snd) {
+		printf("Can't open file " TEMP_DAT " for write!\n" );
+		exit(-1);
+	}
 
 	num = get_offsets_mac(filenums, offsets);
 





More information about the Scummvm-git-logs mailing list