Compress-Deflate7
view release on metacpan or search on metacpan
7zip/CPP/7zip/Archive/CpioHandler.cpp view on Meta::CPAN
// CpioHandler.cpp
#include "StdAfx.h"
#include "Common/ComTry.h"
#include "Common/StringConvert.h"
#include "Common/StringToInt.h"
#include "Windows/PropVariant.h"
#include "Windows/Time.h"
#include "../Common/LimitedStreams.h"
#include "../Common/ProgressUtils.h"
#include "../Common/RegisterArc.h"
#include "../Common/StreamUtils.h"
#include "../Compress/CopyCoder.h"
#include "Common/ItemNameUtils.h"
namespace NArchive {
namespace NCpio {
namespace NFileHeader
{
namespace NMagic
{
const char *kMagic1 = "070701";
const char *kMagic2 = "070702";
const char *kMagic3 = "070707";
const char *kEndName = "TRAILER!!!";
const Byte kMagicForRecord2[2] = { 0xC7, 0x71 };
}
const UInt32 kRecord2Size = 26;
/*
struct CRecord2
{
unsigned short c_magic;
short c_dev;
unsigned short c_ino;
unsigned short c_mode;
unsigned short c_uid;
unsigned short c_gid;
unsigned short c_nlink;
short c_rdev;
unsigned short c_mtimes[2];
unsigned short c_namesize;
unsigned short c_filesizes[2];
};
*/
const UInt32 kRecordSize = 110;
/*
struct CRecord
{
char Magic[6]; // "070701" for "new" portable format, "070702" for CRC format
char inode[8];
char Mode[8];
char UID[8];
char GID[8];
char nlink[8];
char mtime[8];
char Size[8]; // must be 0 for FIFOs and directories
char DevMajor[8];
char DevMinor[8];
char RDevMajor[8]; //only valid for chr and blk special files
char RDevMinor[8]; //only valid for chr and blk special files
char NameSize[8]; // count includes terminating NUL in pathname
char ChkSum[8]; // 0 for "new" portable format; for CRC format the sum of all the bytes in the file
bool CheckMagic() const
{ return memcmp(Magic, NMagic::kMagic1, 6) == 0 ||
memcmp(Magic, NMagic::kMagic2, 6) == 0; };
};
*/
const UInt32 kOctRecordSize = 76;
}
struct CItem
{
AString Name;
UInt32 inode;
UInt32 Mode;
UInt32 UID;
UInt32 GID;
UInt32 Size;
UInt32 MTime;
// char LinkFlag;
// AString LinkName; ?????
char Magic[8];
UInt32 NumLinks;
UInt32 DevMajor;
UInt32 DevMinor;
UInt32 RDevMajor;
UInt32 RDevMinor;
UInt32 ChkSum;
UInt32 Align;
bool IsDir() const { return (Mode & 0170000) == 0040000; }
};
( run in 2.810 seconds using v1.01-cache-2.11-cpan-5735350b133 )