comparison src/dmpack.c @ 1037:d674ddc0fc82

Change PACK file format to use 64 bit fileoffsets. Also switch some fields around for nicety. This breaks compatibility, so bump version.
author Matti Hamalainen <ccr@tnsp.org>
date Sun, 01 Mar 2015 16:59:00 +0200
parents c353e6bcb733
children 7e54b2d08ce7
comparison
equal deleted inserted replaced
1036:1a0a327d8fed 1037:d674ddc0fc82
94 // Read PACK header 94 // Read PACK header
95 fseek(pack->file, 0L, SEEK_SET); 95 fseek(pack->file, 0L, SEEK_SET);
96 if (!dm_fread_str(pack->file, (Uint8 *) &hdr.ident, sizeof(hdr.ident)) || 96 if (!dm_fread_str(pack->file, (Uint8 *) &hdr.ident, sizeof(hdr.ident)) ||
97 !dm_fread_le16(pack->file, &hdr.version) || 97 !dm_fread_le16(pack->file, &hdr.version) ||
98 !dm_fread_le32(pack->file, &hdr.dirEntries) || 98 !dm_fread_le32(pack->file, &hdr.dirEntries) ||
99 !dm_fread_le32(pack->file, &hdr.dirOffset)) 99 !dm_fread_le64(pack->file, &hdr.dirOffset))
100 { 100 {
101 ret = DMERR_FREAD; 101 ret = DMERR_FREAD;
102 goto out; 102 goto out;
103 } 103 }
104 104
133 ret = DMERR_MALLOC; 133 ret = DMERR_MALLOC;
134 goto out; 134 goto out;
135 } 135 }
136 136
137 if (!dm_fread_str(pack->file, (Uint8 *) &entry->filename, DMRES_NAME_LEN) || 137 if (!dm_fread_str(pack->file, (Uint8 *) &entry->filename, DMRES_NAME_LEN) ||
138 !dm_fread_le64(pack->file, &entry->offset) ||
139 !dm_fread_le32(pack->file, &entry->length) ||
138 !dm_fread_le32(pack->file, &entry->size) || 140 !dm_fread_le32(pack->file, &entry->size) ||
139 !dm_fread_le32(pack->file, &entry->offset) ||
140 !dm_fread_le32(pack->file, &entry->length) ||
141 !dm_fread_le32(pack->file, &entry->flags)) 141 !dm_fread_le32(pack->file, &entry->flags))
142 { 142 {
143 ret = DMERR_FREAD; 143 ret = DMERR_FREAD;
144 goto out; 144 goto out;
145 } 145 }