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 )