diff options
Diffstat (limited to 'maccaml/errors.c')
-rw-r--r-- | maccaml/errors.c | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/maccaml/errors.c b/maccaml/errors.c new file mode 100644 index 000000000..eb4f7b78d --- /dev/null +++ b/maccaml/errors.c @@ -0,0 +1,112 @@ +/***********************************************************************/ +/* */ +/* Objective Caml */ +/* */ +/* Damien Doligez, projet Para, INRIA Rocquencourt */ +/* */ +/* Copyright 1997 Institut National de Recherche en Informatique et */ +/* en Automatique. Distributed only by permission. */ +/* */ +/***********************************************************************/ + +/* $Id$ */ + +#include "main.h" + +static int exiting = 0; + +void assert_failure (char *condition, char *file, int line) +{ + Str255 buf; + + if (exiting) ExitToShell (); + exiting = 1; + NumToString ((long) line, buf); + ParamText (c2pstr (condition), c2pstr (file), buf, NULL); + InitCursor (); + modalkeys = kKeysOK; + StopAlert (kAlertBug, myModalFilterUPP); + ExitApplication (); +} + +void XXX (void) +{ + InitCursor (); + modalkeys = kKeysOK; + StopAlert (kAlertNotYet, myModalFilterUPP); +} + +void ErrorAlert (short msg1, Str255 bufmsg2, short msg3, OSErr err) +{ + Str255 bufmsg1, bufmsg3, bufmsg4; + short msg; + + switch (err){ + case noErr: + case userCanceledErr: return; + + case mFulErr: + case memFullErr: + case cTempMemErr: + case cNoMemErr: + case updPixMemErr: msg = kMemFull; break; + case dskFulErr: + case afpDiskFull: msg = kDiskFull; break; + case dirFulErr: msg = kDirFull; break; + case tmfoErr: + case afpTooManyFilesOpen: msg = kTooManyFiles; break; + case fnfErr: msg = kFileNotFound; break; + case wPrErr: msg = kWriteProtect; break; + case fLckdErr: + case afpObjectLocked: msg = kFileLocked; break; + case vLckdErr: + case afpVolLocked: msg = kVolLocked; break; + case fBsyErr: + case afpFileBusy: msg = kFileBusy; break; + case opWrErr: msg = kFileOpen; break; + case volOffLinErr: msg = kVolOffLine; break; + case permErr: + case afpAccessDenied: msg = kPermDenied; break; + case wrPermErr: msg = kWritePermDenied; break; + case dirNFErr: msg = kDirNotFound; break; + case volGoneErr: + case afpSessClosed: msg = kDisconnected; break; + case ioErr: msg = kIOError; break; + + default: msg = 0; break; + } + + GetIndString (bufmsg1, kMiscStrings, msg1); + GetIndString (bufmsg3, kMiscStrings, msg3); + + if (msg != 0){ + GetIndString (bufmsg4, kErrorStrings, msg); + ParamText (bufmsg1, bufmsg2, bufmsg3, bufmsg4); + }else{ + NumToString (err, bufmsg4); + ParamText (bufmsg1, bufmsg2, bufmsg3, bufmsg4); + } + InitCursor (); + modalkeys = kKeysOK; + StopAlert (msg ? kAlertErrorMsg : kAlertErrorNum, myModalFilterUPP); +} + +void ErrorAlertCantOpen (Str255 filename, OSErr err) +{ + ErrorAlert (kCannotOpenIdx, filename, kCloseQuoteIdx, err); +} + +void ErrorAlertGeneric (OSErr err) +{ + ErrorAlert (kEmptyIdx, "\p", kEmptyIdx, err); +} + +OSErr InitialiseErrors (void) +{ +/* XXX CouldAlert n'existe plus ?? + CouldAlert (kAlertErrorMsg); + CouldAlert (kAlertErrorNum); + CouldAlert (kAlertBug); +*/ + return noErr; +} |