From: Rolf K. <lab...@us...> - 2006-01-10 17:38:14
|
Update of /cvsroot/opengtoolkit/lvzip/c_source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv930/c_source Modified Files: MacBinaryIII.c macbin.c macbin.h Log Message: Index: macbin.c =================================================================== RCS file: /cvsroot/opengtoolkit/lvzip/c_source/macbin.c,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** macbin.c 10 Jan 2006 17:21:31 -0000 1.16 --- macbin.c 10 Jan 2006 17:38:01 -0000 1.17 *************** *** 24,28 **** static OSErr MakeMacSpec(Path path, FSSpec *fss); static OSErr MakeFSpec(int16 vol, int32 dirID, ConstStr255 path, FSSpec *fss); - static OSErr IfDirCloseIt(int16 vol); static MgErr OSErrToLVErr(OSErr err); --- 24,27 ---- *************** *** 74,78 **** if (!err) { ! int theRefNum = FSpOpenResFile(&theFSSpec, fsRdWrPerm); if (ResError() == noErr) //we've got a resource file { --- 73,77 ---- if (!err) { ! int theRefNum = FSpOpenResFile(&theFSSpec, fsRdPerm); if (ResError() == noErr) //we've got a resource file { *************** *** 134,152 **** int16 perm; FSSpec fss; ! File fd = (File)0;; ! HParamBlockRec pbr; OSErr ret; ! switch(openMode) { case openReadWrite: ! perm = 0x0003; break; case openReadOnly: ! perm = 0x0001; break; case openWriteOnly: case openWriteOnlyTruncate: ! perm = 0x0002; break; default: --- 133,150 ---- int16 perm; FSSpec fss; ! int16 fd = 0;; OSErr ret; ! switch (openMode) { case openReadWrite: ! perm = fsRdWrPerm; break; case openReadOnly: ! perm = fsRdPerm; break; case openWriteOnly: case openWriteOnlyTruncate: ! perm = fsWrPerm; break; default: *************** *** 172,196 **** return OSErrToLVErr(err); } ! pbr.fileParam.ioCompletion = NULL; ! pbr.fileParam.ioNamePtr = fss.name; ! pbr.fileParam.ioVRefNum = fss.vRefNum; ! pbr.fileParam.ioDirID = fss.parID; ! pbr.ioParam.ioMisc = NULL; ! // pbr.ioParam.ioPermssn = perm; ! ! pbr.accessParam.ioDenyModes = perm; ! if (!(ret = PBHOpenRFDenySync(&pbr))) { - fd = (File)pbr.ioParam.ioRefNum; - if (openMode == openWriteOnlyTruncate) ! ret = SetEOF((int16)fd, 0L); } - - IfDirCloseIt(fss.vRefNum); if (ret) err = OSErrToLVErr(ret); else ! err = FNewRefNum(path, fd, refnum); #endif return err; --- 170,183 ---- return OSErrToLVErr(err); } ! ret = FSpOpenRF(&fss, perm, &fd); ! if (!ret) { if (openMode == openWriteOnlyTruncate) ! ret = SetEOF(fd, 0L); } if (ret) err = OSErrToLVErr(ret); else ! err = FNewRefNum(path, (File)fd, refnum); #endif return err; *************** *** 227,231 **** dtpb.ioVRefNum = fss.vRefNum; ! err = PBDTGetPath(&dtpb)) if (err == noErr) { --- 214,218 ---- dtpb.ioVRefNum = fss.vRefNum; ! err = PBDTGetPath(&dtpb); if (err == noErr) { *************** *** 236,243 **** if (write) { ! if (MacIsDir(cpb) { cpb.dirInfo.ioDrUsrWds.frFlags = fileInfo->flags; ! cpb.dirInfo.ioDrUsrWds.frLocation = fileInfo->location; ConvertLVTime(&fileInfo->cDate, &cpb.dirInfo.ioDrCrDat, false); --- 223,231 ---- if (write) { ! if (MacIsDir(cpb)) { cpb.dirInfo.ioDrUsrWds.frFlags = fileInfo->flags; ! cpb.dirInfo.ioDrUsrWds.frLocation.v = fileInfo->location.v; ! cpb.dirInfo.ioDrUsrWds.frLocation.h = fileInfo->location.h; ConvertLVTime(&fileInfo->cDate, &cpb.dirInfo.ioDrCrDat, false); *************** *** 250,256 **** cpb.hFileInfo.ioFlFndrInfo.fdFlags = fileInfo->flags; cpb.hFileInfo.ioFlFndrInfo.fdFldr = fileInfo->fId; ! cpb.hFileInfo.ioFlFndrInfo.fdLocation = fileInfo->location; cpb.hFileInfo.ioFlXFndrInfo.fdScript = fileInfo->sId; ! cpb.hFileInfo.ioFlXFndrInfo.fdFlags = fileInfo->xFlags; ConvertLVTime(&fileInfo->cDate, &cpb.hFileInfo.ioFlCrDat, false); --- 238,245 ---- cpb.hFileInfo.ioFlFndrInfo.fdFlags = fileInfo->flags; cpb.hFileInfo.ioFlFndrInfo.fdFldr = fileInfo->fId; ! cpb.hFileInfo.ioFlFndrInfo.fdLocation.v = fileInfo->location.v; ! cpb.hFileInfo.ioFlFndrInfo.fdLocation.h = fileInfo->location.h; cpb.hFileInfo.ioFlXFndrInfo.fdScript = fileInfo->sId; ! cpb.hFileInfo.ioFlXFndrInfo.fdXFlags = fileInfo->xFlags; ConvertLVTime(&fileInfo->cDate, &cpb.hFileInfo.ioFlCrDat, false); *************** *** 267,297 **** else { ! if (MacIsDir(cpb) { fileInfo->type = kUnknownType; ! fileInfo->creator = kUnknownCreator; ! fileInfo->flags = cbp.dirInfo.ioDrUsrWds.frFlags; ! fileInfo->fId = ! fileInfo->location = cbp.dirInfo.ioDrUsrWds.frLocation; ! fileInfo->size = cbp.dirInfo.ioDrNmFls; fileInfo->rfSize = 0; ! ConvertLVTime(&fileInfo->cDate, &cbp.dirInfo.ioDrCrDat, true); ! ConvertLVTime(&fileInfo->cDate, &cbp.dirInfo.ioDrMdDat, true); } else { ! fileInfo->type = cbp.hFileInfo.ioFlFndrInfo.fdType; ! fileInfo->creator = cbp.hFileInfo.ioFlFndrInfo.fdCreator; fileInfo->flags = cpb.hFileInfo.ioFlFndrInfo.fdFlags; fileInfo->fId = cpb.hFileInfo.ioFlFndrInfo.fdFldr; ! fileInfo->location = cbp.hFileInfo.ioFlFndrInfo.fdLocation; ! fileInfo->size = catInfoPB.hFileInfo.ioFlLgLen; ! fileInfo->rfSize = catInfoPB.hFileInfo.ioFlRLgLen; fileInfo->sId = cpb.hFileInfo.ioFlXFndrInfo.fdScript; ! fileInfo->xFlags = cpb.hFileInfo.ioFlXFndrInfo.fdFlags; ! ConvertLVTime(&fileInfo->cDate, &cbp.hFileInfo.ioFlCrDat, true); ! ConvertLVTime(&fileInfo->cDate, &cbp.hFileInfo.ioFlMdDat, true); } --- 256,288 ---- else { ! if (MacIsDir(cpb)) { fileInfo->type = kUnknownType; ! fileInfo->creator = kUnknownType; ! fileInfo->flags = cpb.dirInfo.ioDrUsrWds.frFlags; ! fileInfo->fId = 0; ! fileInfo->location.v = cpb.dirInfo.ioDrUsrWds.frLocation.v; ! fileInfo->location.h = cpb.dirInfo.ioDrUsrWds.frLocation.h; ! fileInfo->size = cpb.dirInfo.ioDrNmFls; fileInfo->rfSize = 0; ! ConvertLVTime(&fileInfo->cDate, &cpb.dirInfo.ioDrCrDat, true); ! ConvertLVTime(&fileInfo->cDate, &cpb.dirInfo.ioDrMdDat, true); } else { ! fileInfo->type = cpb.hFileInfo.ioFlFndrInfo.fdType; ! fileInfo->creator = cpb.hFileInfo.ioFlFndrInfo.fdCreator; fileInfo->flags = cpb.hFileInfo.ioFlFndrInfo.fdFlags; fileInfo->fId = cpb.hFileInfo.ioFlFndrInfo.fdFldr; ! fileInfo->location.v = cpb.hFileInfo.ioFlFndrInfo.fdLocation.v; ! fileInfo->location.h = cpb.hFileInfo.ioFlFndrInfo.fdLocation.h; ! fileInfo->size = cpb.hFileInfo.ioFlLgLen; ! fileInfo->rfSize = cpb.hFileInfo.ioFlRLgLen; fileInfo->sId = cpb.hFileInfo.ioFlXFndrInfo.fdScript; ! fileInfo->xFlags = cpb.hFileInfo.ioFlXFndrInfo.fdXFlags; ! ConvertLVTime(&fileInfo->cDate, &cpb.hFileInfo.ioFlCrDat, true); ! ConvertLVTime(&fileInfo->cDate, &cpb.hFileInfo.ioFlMdDat, true); } *************** *** 301,305 **** } } - IfDirCloseIt(fss.vRefNum); return OSErrToLVErr(err); #else --- 292,295 ---- *************** *** 329,335 **** if (n > 255) n = 255; ! ps[0] = n; if (n) ! MoveBlock(LStrBuf(lstr), PStrBuf(str), n); return n; } --- 319,325 ---- if (n > 255) n = 255; ! str[0] = n; if (n) ! BlockMove(LStrBuf(lstr), PStrBuf(str), n); return n; } *************** *** 376,391 **** } - static OSErr IfDirCloseIt(int16 vol) - { - WDPBRec wdpb; - if (vol < 0) - { - wdpb.ioCompletion = NULL; - wdpb.ioVRefNum = vol; - return PBCloseWDSync(&wdpb); - } - return noErr; - } - static MgErr OSErrToLVErr(OSErr err) { --- 366,369 ---- Index: macbin.h =================================================================== RCS file: /cvsroot/opengtoolkit/lvzip/c_source/macbin.h,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** macbin.h 10 Jan 2006 17:21:31 -0000 1.11 --- macbin.h 10 Jan 2006 17:38:01 -0000 1.12 *************** *** 123,135 **** }; ! #if !Mac ! typedef struct { int16 v; int16 h; ! } Point; ! #endif ! typedef uChar Str255[256], *PStr, *CStr; typedef const uChar ConstStr255[256]; --- 123,133 ---- }; ! typedef struct { int16 v; int16 h; ! } LVPoint; ! typedef uChar Str255[256], *PStr, *CStr, *UPtr; typedef const uChar ConstStr255[256]; *************** *** 160,164 **** uInt32 mDate; uInt16 flags; /* Mac only */ ! Point location; /* Mac only */ uInt16 fId; /* Mac only */ uInt8 sId; /* Mac only */ --- 158,162 ---- uInt32 mDate; uInt16 flags; /* Mac only */ ! LVPoint location; /* Mac only */ uInt16 fId; /* Mac only */ uInt8 sId; /* Mac only */ Index: MacBinaryIII.c =================================================================== RCS file: /cvsroot/opengtoolkit/lvzip/c_source/MacBinaryIII.c,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** MacBinaryIII.c 7 Jan 2006 20:11:30 -0000 1.1 --- MacBinaryIII.c 10 Jan 2006 17:38:01 -0000 1.2 *************** *** 240,244 **** } ! FSpCreate(outfile,'????','BINA',smSystemScript); err = FSpOpenDF(outfile,fsRdWrPerm,&outrefnum); --- 240,244 ---- } ! FSpCreate(outfile, kUnknownType, 'BINA', smSystemScript); err = FSpOpenDF(outfile,fsRdWrPerm,&outrefnum); *************** *** 585,589 **** OSErr DecodeMacBinaryFiles(FSSpec* inputfile,FSSpec* outputfile) { - Handle result = nil; FInfo fndrInfo; OSErr err; --- 585,588 ---- *************** *** 645,650 **** fndrInfo.fdCreator = LONG_AT_OFFSET(header, kFileCreatorOffset); ! fndrInfo.fdFlags = BYTE_AT_OFFSET(header, kFinderFlagsHiOffset); ! fndrInfo.fdFlags << 8; fndrInfo.fdFlags |= BYTE_AT_OFFSET(header, kFinderFlagsLowOffset); --- 644,648 ---- fndrInfo.fdCreator = LONG_AT_OFFSET(header, kFileCreatorOffset); ! fndrInfo.fdFlags = BYTE_AT_OFFSET(header, kFinderFlagsHiOffset) << 8; fndrInfo.fdFlags |= BYTE_AT_OFFSET(header, kFinderFlagsLowOffset); *************** *** 781,785 **** OSErr DecodeMacBinary(Handle data, FSSpec *destination) { - Handle result = nil; FInfo fndrInfo; OSErr err; --- 779,782 ---- *************** *** 821,826 **** fndrInfo.fdCreator = LONG_AT_OFFSET(header, kFileCreatorOffset); ! fndrInfo.fdFlags = BYTE_AT_OFFSET(header, kFinderFlagsHiOffset); ! fndrInfo.fdFlags << 8; fndrInfo.fdFlags |= BYTE_AT_OFFSET(header, kFinderFlagsLowOffset); --- 818,822 ---- fndrInfo.fdCreator = LONG_AT_OFFSET(header, kFileCreatorOffset); ! fndrInfo.fdFlags = BYTE_AT_OFFSET(header, kFinderFlagsHiOffset) << 8; fndrInfo.fdFlags |= BYTE_AT_OFFSET(header, kFinderFlagsLowOffset); |