⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 7zitem.c

📁 sleuthit-2.09 一个磁盘的工具集
💻 C
字号:
/* 7zItem.c */#include "7zItem.h"#include "7zAlloc.h"void SzCoderInfoInit(CCoderInfo *coder){  SzByteBufferInit(&coder->Properties);}void SzCoderInfoFree(CCoderInfo *coder, void (*freeFunc)(void *p)){  SzByteBufferFree(&coder->Properties, freeFunc);  SzCoderInfoInit(coder);}void SzFolderInit(CFolder *folder){  folder->NumCoders = 0;  folder->Coders = 0;  folder->NumBindPairs = 0;  folder->BindPairs = 0;  folder->NumPackStreams = 0;  folder->PackStreams = 0;  folder->UnPackSizes = 0;  folder->UnPackCRCDefined = 0;  folder->UnPackCRC = 0;  folder->NumUnPackStreams = 0;}void SzFolderFree(CFolder *folder, void (*freeFunc)(void *p)){  UInt32 i;  for (i = 0; i < folder->NumCoders; i++)    SzCoderInfoFree(&folder->Coders[i], freeFunc);  freeFunc(folder->Coders);  freeFunc(folder->BindPairs);  freeFunc(folder->PackStreams);  freeFunc(folder->UnPackSizes);  SzFolderInit(folder);}UInt32 SzFolderGetNumOutStreams(CFolder *folder){  UInt32 result = 0;  UInt32 i;  for (i = 0; i < folder->NumCoders; i++)    result += folder->Coders[i].NumOutStreams;  return result;}int SzFolderFindBindPairForInStream(CFolder *folder, UInt32 inStreamIndex){  UInt32 i;  for(i = 0; i < folder->NumBindPairs; i++)    if (folder->BindPairs[i].InIndex == inStreamIndex)      return i;  return -1;}int SzFolderFindBindPairForOutStream(CFolder *folder, UInt32 outStreamIndex){  UInt32 i;  for(i = 0; i < folder->NumBindPairs; i++)    if (folder->BindPairs[i].OutIndex == outStreamIndex)      return i;  return -1;}CFileSize SzFolderGetUnPackSize(CFolder *folder){   int i = (int)SzFolderGetNumOutStreams(folder);  if (i == 0)    return 0;  for (i--; i >= 0; i--)    if (SzFolderFindBindPairForOutStream(folder, i) < 0)      return folder->UnPackSizes[i];  /* throw 1; */  return 0;}/*int FindPackStreamArrayIndex(int inStreamIndex) const{  for(int i = 0; i < PackStreams.Size(); i++)  if (PackStreams[i] == inStreamIndex)    return i;  return -1;}*/void SzFileInit(CFileItem *fileItem){  fileItem->IsFileCRCDefined = 0;  fileItem->HasStream = 1;  fileItem->IsDirectory = 0;  fileItem->IsAnti = 0;  fileItem->Name = 0;}void SzFileFree(CFileItem *fileItem, void (*freeFunc)(void *p)){  freeFunc(fileItem->Name);  SzFileInit(fileItem);}void SzArchiveDatabaseInit(CArchiveDatabase *db){  db->NumPackStreams = 0;  db->PackSizes = 0;  db->PackCRCsDefined = 0;  db->PackCRCs = 0;  db->NumFolders = 0;  db->Folders = 0;  db->NumFiles = 0;  db->Files = 0;}void SzArchiveDatabaseFree(CArchiveDatabase *db, void (*freeFunc)(void *)){  UInt32 i;  for (i = 0; i < db->NumFolders; i++)    SzFolderFree(&db->Folders[i], freeFunc);  for (i = 0; i < db->NumFiles; i++)    SzFileFree(&db->Files[i], freeFunc);  freeFunc(db->PackSizes);  freeFunc(db->PackCRCsDefined);  freeFunc(db->PackCRCs);  freeFunc(db->Folders);  freeFunc(db->Files);  SzArchiveDatabaseInit(db);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -