Logo Search packages:      
Sourcecode: macutils version File versions  Download package

sit.h

#define S_SIGNATURE    0
#define S_NUMFILES     4
#define S_ARCLENGTH    6
#define S_SIGNATURE2  10
#define     S_VERSION     14
#define SITHDRSIZE    22

#define F_COMPRMETHOD    0
#define F_COMPDMETHOD    1
#define F_FNAME          2
#define F_FTYPE         66
#define F_CREATOR       70
#define F_FNDRFLAGS     74
#define F_CREATIONDATE  76
#define F_MODDATE       80
#define F_RSRCLENGTH    84
#define F_DATALENGTH    88
#define F_COMPRLENGTH   92
#define F_COMPDLENGTH   96
#define F_RSRCCRC      100
#define F_DATACRC      102
#define F_HDRCRC       110
#define FILEHDRSIZE    112

typedef long OSType;

typedef struct sitHdr {             /* 22 bytes */
      OSType      signature;        /* = 'SIT!' -- for verification */
      unsigned short    numFiles;   /* number of files in archive */
      unsigned long     arcLength;  /* length of entire archive incl.
                                    hdr. -- for verification */
      OSType      signature2;       /* = 'rLau' -- for verification */
      unsigned char     version;    /* version number */
      char reserved[7];
};

typedef struct fileHdr {            /* 112 bytes */
      unsigned char     compRMethod;      /* rsrc fork compression method */
      unsigned char     compDMethod;      /* data fork compression method */
      unsigned char     fName[64];  /* a STR63 */
      OSType      fType;                  /* file type */
      OSType      fCreator;         /* er... */
      unsigned short FndrFlags;     /* copy of Finder flags.  For our
                                    purposes, we can clear:
                                    busy,onDesk */
      unsigned long     creationDate;
      unsigned long     modDate;    /* !restored-compat w/backup prgms */
      unsigned long     rsrcLength; /* decompressed lengths */
      unsigned long     dataLength;
      unsigned long     compRLength;      /* compressed lengths */
      unsigned long     compDLength;
      unsigned short rsrcCRC;       /* crc of rsrc fork */
      unsigned short dataCRC;       /* crc of data fork */
      char reserved[6];
      unsigned short hdrCRC;        /* crc of file header */
};


/* file format is:
      sitArchiveHdr
            file1Hdr
                  file1RsrcFork
                  file1DataFork
            file2Hdr
                  file2RsrcFork
                  file2DataFork
            .
            .
            .
            fileNHdr
                  fileNRsrcFork
                  fileNDataFork
*/



/* compression methods */
#define nocomp    0     /* just read each byte and write it to archive */
#define rle 1     /* RLE compression */
#define lzc 2     /* LZC compression */
#define huffman   3     /* Huffman compression */
#define lzah      5     /* LZ with adaptive Huffman */
#define fixhuf    6     /* Fixed Huffman table */
#define mw  8     /* Miller-Wegman encoding */
/* this bit says whether the file is protected or not */
#define prot      16    /* password protected bit */
/* rsrc & data compress are identical here: */
#define sfolder   32    /* start of folder */
#define efolder   33    /* end of folder */
#define sknown    0x16f /* known compression methods */

/* all other numbers are reserved */

#define     ESC   0x90  /* repeat packing escape */


Generated by  Doxygen 1.6.0   Back to index