diff options
Diffstat (limited to 'src/cc4group.c')
| -rw-r--r-- | src/cc4group.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/cc4group.c b/src/cc4group.c index bd0ea1a..0435c72 100644 --- a/src/cc4group.c +++ b/src/cc4group.c @@ -3089,6 +3089,20 @@ static bool cc4group_getEntryInfoForEntry(CC4Group* const this, const C4GroupEnt } } + uint32_t crc = entry->core.CRC; + if(entry->core.HasCRC != C4GroupEntryCore_ContentsFileNameCRC) + { + if(lazy) + { + crc = 0; + } + else + { + cc4group_calculateEntryCRC(this, (C4GroupEntryData*)entry); + crc = entry->core.CRC; + } + } + C4GroupHeader* headerOrParentHeader = header != NULL ? header : entry->parent != NULL ? entry->parent->header : NULL; *info = (CC4Group_EntryInfo){ @@ -3099,7 +3113,8 @@ static bool cc4group_getEntryInfoForEntry(CC4Group* const this, const C4GroupEnt .totalSize = entry->core.Size, .executable = entry->core.Executable ? true : false, .directory = entry->core.Directory ? true : false, - .official = headerOrParentHeader != NULL ? C4GroupHeader_isOfficial(headerOrParentHeader) : false + .official = headerOrParentHeader != NULL ? C4GroupHeader_isOfficial(headerOrParentHeader) : false, + .crc = crc }; return true; |
