From acd7fb50c63362ed11fbd1e36a44efdab83e8915 Mon Sep 17 00:00:00 2001 From: olle Date: Wed, 4 Feb 2004 15:17:16 +0000 Subject: [PATCH] * internal changes --- rtl/macos/system.pp | 98 +++++++++++++++++++++++++-------------------- 1 file changed, 54 insertions(+), 44 deletions(-) diff --git a/rtl/macos/system.pp b/rtl/macos/system.pp index 1eed65b5ef..150ee46bb1 100644 --- a/rtl/macos/system.pp +++ b/rtl/macos/system.pp @@ -418,102 +418,109 @@ begin errno:=0; end; -Procedure OSErr2InOutRes(err: OSErr); -{ Convert MacOS specific error codes to the correct InOutRes value} - +Function MacOSErr2RTEerr(err: OSErr): Integer; +{ Converts MacOS specific error codes to the correct FPC error code. + All non zero MacOS errors shall correspond to a nonzero FPC error.} +var + res: Integer; begin if err = noErr then { Else it will go through all the cases } - exit; - - case err of + res:= 0 + else case err of dirFulErr, { Directory full } dskFulErr { disk full } - :Inoutres:=101; + :res:=101; nsvErr { no such volume } - :Inoutres:=3; + :res:=3; ioErr, { I/O error (bummers) } bdNamErr { there may be no bad names in the final system! } - :Inoutres:=1; //TODO Exchange to something better + :res:=1; //TODO Exchange to something better fnOpnErr { File not open } - :Inoutres:=103; + :res:=103; eofErr, { End of file } posErr { tried to position to before start of file (r/w) } - :Inoutres:=100; + :res:=100; mFulErr { memory full (open) or file won't fit (load) } - :Inoutres:=1; //TODO Exchange to something better + :res:=1; //TODO Exchange to something better tmfoErr { too many files open} - :Inoutres:=4; + :res:=4; fnfErr { File not found } - :Inoutres:=2; + :res:=2; wPrErr { diskette is write protected. } - :Inoutres:=150; + :res:=150; fLckdErr { file is locked } - :Inoutres:=5; + :res:=5; vLckdErr { volume is locked } - :Inoutres:=150; + :res:=150; fBsyErr { File is busy (delete) } - :Inoutres:=5; + :res:=5; dupFNErr { duplicate filename (rename) } - :Inoutres:=5; + :res:=5; opWrErr { file already open with with write permission } - :Inoutres:=5; + :res:=5; rfNumErr, { refnum error } gfpErr { get file position error } - :Inoutres:=1; //TODO Exchange to something better + :res:=1; //TODO Exchange to something better volOffLinErr { volume not on line error (was Ejected) } - :Inoutres:=152; + :res:=152; permErr { permissions error (on file open) } - :Inoutres:=5; + :res:=5; volOnLinErr{ drive volume already on-line at MountVol } - :Inoutres:=0; //TODO Exchange to something other + :res:=1; //TODO Exchange to something other nsDrvErr { no such drive (tried to mount a bad drive num) } - :Inoutres:=1; //TODO Perhaps exchange to something better + :res:=1; //TODO Perhaps exchange to something better noMacDskErr, { not a mac diskette (sig bytes are wrong) } extFSErr { volume in question belongs to an external fs } - :Inoutres:=157; //TODO Perhaps exchange to something better + :res:=157; //TODO Perhaps exchange to something better fsRnErr, { file system internal error:during rename the old entry was deleted but could not be restored. } badMDBErr { bad master directory block } - :Inoutres:=1; //TODO Exchange to something better + :res:=1; //TODO Exchange to something better wrPermErr { write permissions error } - :Inoutres:=5; + :res:=5; dirNFErr { Directory not found } - :Inoutres:=3; + :res:=3; tmwdoErr { No free WDCB available } - :Inoutres:=1; //TODO Exchange to something better + :res:=1; //TODO Exchange to something better badMovErr { Move into offspring error } - :Inoutres:=5; + :res:=5; wrgVolTypErr { Wrong volume type error [operation not supported for MFS] } - :Inoutres:=1; //TODO Exchange to something better + :res:=1; //TODO Exchange to something better volGoneErr { Server volume has been disconnected. } - :Inoutres:=152; + :res:=152; diffVolErr { files on different volumes } - :Inoutres:=17; + :res:=17; catChangedErr { the catalog has been modified } { OR comment: when searching with PBCatSearch } - :Inoutres:=0; //TODO Exchange to something other + :res:=1; //TODO Exchange to something other afpAccessDenied, { Insufficient access privileges for operation } afpDenyConflict { Specified open/deny modes conflict with current open modes } - :Inoutres:=5; + :res:=5; afpNoMoreLocks { Maximum lock limit reached } - :Inoutres:=5; + :res:=5; afpRangeNotLocked, { Tried to unlock range that was not locked by user } afpRangeOverlap { Some or all of range already locked by same user } - :Inoutres:=1; //TODO Exchange to something better + :res:=1; //TODO Exchange to something better afpObjectTypeErr { File/Directory specified where Directory/File expected } - :Inoutres:=3; + :res:=3; afpCatalogChanged { OR comment: when searching with PBCatSearch } - :Inoutres:=0; //TODO Exchange to something other + :res:=1; //TODO Exchange to something other afpSameObjectErr - :Inoutres:=5; //TODO Exchange to something better + :res:=5; //TODO Exchange to something better memFullErr { Not enough room in heap zone } - :Inoutres:=203; + :res:=203; else - InOutRes := 1; //TODO Exchange to something better + res := 1; //TODO Exchange to something better end; + MacOSErr2RTEerr:= res; +end; + +Procedure OSErr2InOutRes(err: OSErr); +begin + InOutRes:= MacOSErr2RTEerr(err); end; function PathArgToFSSpec(s: string; var spec: FSSpec): Boolean; @@ -1141,7 +1148,10 @@ end. { $Log$ - Revision 1.12 2004-01-20 23:11:20 hajny + Revision 1.13 2004-02-04 15:17:16 olle + * internal changes + + Revision 1.12 2004/01/20 23:11:20 hajny * ExecuteProcess fixes, ProcessID and ThreadID added Revision 1.11 2004/01/04 21:06:43 jonas