Fix for big-endian.
authorFlorian Schulze <crow@icculus.org>
Wed, 20 Mar 2002 17:59:25 +0000 (17:59 +0000)
committerFlorian Schulze <crow@icculus.org>
Wed, 20 Mar 2002 17:59:25 +0000 (17:59 +0000)
modify/pack.c

index c085730..e9ba73b 100644 (file)
@@ -140,7 +140,25 @@ int main(int argc, char **argv)
 
        /* write the directory structure */
        for (i = 0; i < num_entries; i++) {
-               write(fd, &datafile[i], 20);
+               char temp;
+
+               write(fd, &datafile[i].filename, 12);
+               temp = (datafile[i].offset >>  0) & 0xff;
+               write(fd, &temp, 1);
+               temp = (datafile[i].offset >>  8) & 0xff;
+               write(fd, &temp, 1);
+               temp = (datafile[i].offset >> 16) & 0xff;
+               write(fd, &temp, 1);
+               temp = (datafile[i].offset >> 24) & 0xff;
+               write(fd, &temp, 1);
+               temp = (datafile[i].size >>  0) & 0xff;
+               write(fd, &temp, 1);
+               temp = (datafile[i].size >>  8) & 0xff;
+               write(fd, &temp, 1);
+               temp = (datafile[i].size >> 16) & 0xff;
+               write(fd, &temp, 1);
+               temp = (datafile[i].size >> 24) & 0xff;
+               write(fd, &temp, 1);
        }
 
        /* write in the actual files */