Mercurial > hg > dmlib
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 } |