Archive-Unzip-Burst

 view release on metacpan or  search on metacpan

unzip-6.0/macos/source/macbin3.c  view on Meta::CPAN

/****************************************************************
    MacBinaryIII.c

    Copyright  1997 Christopher Evans (cevans@poppybank.com)

    Basic encoding and decoding of Macintosh files to the
    MacBinary III spec.

 This file is part of the MacBinaryIII_src_C.sit package
 see macbin3.h for more information

****************************************************************/

/*****************************************************************************/
/*  Includes                                                                 */
/*****************************************************************************/

#include <string.h>
#include <stdio.h>
#include "macbin3.h"

/*****************************************************************************/
/*  Macros, typedefs                                                         */
/*****************************************************************************/

/* source (the macbinary file) will be deleted */
#define DELETE_MACBINARY_SOURCE

/* enable encoding
#define INCLUDE_ENCODE_MACBINARY         */

/* enable decoding */
#define INCLUDE_DECODE_MACBINARY

/* include own CRC 32 Bit Calculation
#define INCLUDE_CRC32CALC               */

/* produce some helpful printouts for tracing
#define TRACE_MACBINARY   */



#define LONG_AT_OFFSET(data, offset) *((long *)((unsigned char *)&data[offset]))
#define WORD_AT_OFFSET(data, offset) *((Word *)((unsigned char *)&data[offset]))
#define BYTE_AT_OFFSET(data, offset) *((Byte *)((unsigned char *)&data[offset]))
#define PTR_AT_OFFSET(data, offset)  ((Ptr)((unsigned char *)&data[offset]))

typedef     unsigned short      Word;

#define kOldVersionOffset               0
#define kFileNameLengthOffset           1
#define kFileNameOffset                 2
#define kFileTypeOffset                 65
#define kFileCreatorOffset              69
#define kFinderFlagsHiOffset            73
#define kVersionCheckZero               74
#define kFileVPositionOffset            75
#define kFileHPositionOffset            77
#define kFileFolderIDOffset             79
#define kProtectedFlagOffset            81
#define kVersionOneCheckZero            82
#define kDataForkLengthOffset           83
#define kResourceForkLengthOffset       87
#define kFileCreationDateOffset         91
#define kFileModificationDateOffset     95
#define kGetInfoCommentLengthOffset     99
#define kFinderFlagsLowOffset           101
#define kMacbinarySigOffset             102
#define kFilenameScriptOffset           106
#define kExtendedFinderFlagsOffset      107
#define kTotalFileLengthOffset          116
#define kSecondaryHeaderLengthOffset    120
#define kCurrentVersionOffset           122
#define kMinimumVersionOffset           123
#define kCRCOffset                      124

#define kResourceForkMaxLen             (1024 * 1024 * 16)


/*****************************************************************************/
/*  Module level Vars                                                        */
/*****************************************************************************/



( run in 0.487 second using v1.01-cache-2.11-cpan-5735350b133 )