diff lwlink/readfiles.c @ 173:0395e6fd67e9

Fixed stupid errors with changes for archive handling
author lost
date Mon, 02 Mar 2009 04:13:49 +0000
parents d610b8aef91b
children 6ebb93b409ba
line wrap: on
line diff
--- a/lwlink/readfiles.c	Sun Mar 01 22:59:52 2009 +0000
+++ b/lwlink/readfiles.c	Mon Mar 02 04:13:49 2009 +0000
@@ -340,9 +340,11 @@
 		if (cc >= fn -> filesize || !(fn -> filedata[cc]))
 			return;
 
-		for (l = cc; cc < fn -> filesize && fn -> filedata[cc]; l++)
+		for (l = cc; cc < fn -> filesize && fn -> filedata[cc]; cc++)
 			/* do nothing */ ;
 
+		cc++;
+
 		if (cc >= fn -> filesize)
 		{
 			fprintf(stderr, "Malformed archive file %s.\n", fn -> filename);
@@ -352,8 +354,10 @@
 		if (cc + 4 > fn -> filesize)
 			return;
 
-		flen = (fn -> filedata[cc++] << 24) | (fn -> filedata[cc++] << 16)
-			| (fn -> filedata[cc++] << 8) | (fn -> filedata[cc]);
+		flen = (fn -> filedata[cc++] << 24);
+		flen |= (fn -> filedata[cc++] << 16);
+		flen |= (fn -> filedata[cc++] << 8);
+		flen |= (fn -> filedata[cc++]);
 
 		if (flen == 0)
 			return;
@@ -372,7 +376,9 @@
 		fn -> subs[fn -> nsubs] -> filesize = flen;
 		fn -> subs[fn -> nsubs] -> filename = lw_strdup(fn -> filedata + l);
 		fn -> subs[fn -> nsubs] -> parent = fn;
+		
 		read_file(fn -> subs[fn -> nsubs]);
 		fn -> nsubs++;
+		cc += flen;
 	}
 }