123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- #ifdef __cplusplus
- extern "C" {
- #endif
- #ifndef kGenericError
- #define kGenericError -1
- #endif
- extern char *gErrorMessage;
- void SetErrorMessage(const char *theErrorMessage);
- void SetErrorMessageAndAppendLongInt(const char *theErrorMessage,const long theLongInt);
- void SetErrorMessageAndCStrAndLongInt(const char *theErrorMessage,const char * theCStr,const long theLongInt);
- void SetErrorMessageAndCStr(const char *theErrorMessage,const char * theCStr);
- void AppendCStrToErrorMessage(const char *theErrorMessage);
- void AppendLongIntToErrorMessage(const long theLongInt);
- char *GetErrorMessage(void);
- OSErr GetErrorMessageInNewHandle(Handle *inoutHandle);
- OSErr GetErrorMessageInExistingHandle(Handle inoutHandle);
- OSErr AppendErrorMessageToHandle(Handle inoutHandle);
- #ifdef __EXCEPTIONS_ENABLED__
- void ThrowErrorMessageException(void);
- #endif
- // A bunch of evil macros that would be unnecessary if I were always using C++ !
- #define SetErrorMessageAndBailIfNil(theArg,theMessage) \
- { \
- if (theArg == nil) \
- { \
- SetErrorMessage(theMessage); \
- errCode = kGenericError; \
- goto EXITPOINT; \
- } \
- }
- #define SetErrorMessageAndBail(theMessage) \
- { \
- SetErrorMessage(theMessage); \
- errCode = kGenericError; \
- goto EXITPOINT; \
- }
- #define SetErrorMessageAndLongIntAndBail(theMessage,theLongInt) \
- { \
- SetErrorMessageAndAppendLongInt(theMessage,theLongInt); \
- errCode = kGenericError; \
- goto EXITPOINT; \
- }
- #define SetErrorMessageAndLongIntAndBailIfError(theErrCode,theMessage,theLongInt) \
- { \
- if (theErrCode != noErr) \
- { \
- SetErrorMessageAndAppendLongInt(theMessage,theLongInt); \
- errCode = theErrCode; \
- goto EXITPOINT; \
- } \
- }
- #define SetErrorMessageCStrLongIntAndBailIfError(theErrCode,theMessage,theCStr,theLongInt) \
- { \
- if (theErrCode != noErr) \
- { \
- SetErrorMessageAndCStrAndLongInt(theMessage,theCStr,theLongInt); \
- errCode = theErrCode; \
- goto EXITPOINT; \
- } \
- }
- #define SetErrorMessageAndCStrAndBail(theMessage,theCStr) \
- { \
- SetErrorMessageAndCStr(theMessage,theCStr); \
- errCode = kGenericError; \
- goto EXITPOINT; \
- }
- #define SetErrorMessageAndBailIfError(theErrCode,theMessage) \
- { \
- if (theErrCode != noErr) \
- { \
- SetErrorMessage(theMessage); \
- errCode = theErrCode; \
- goto EXITPOINT; \
- } \
- }
- #define SetErrorMessageAndLongIntAndBailIfNil(theArg,theMessage,theLongInt) \
- { \
- if (theArg == nil) \
- { \
- SetErrorMessageAndAppendLongInt(theMessage,theLongInt); \
- errCode = kGenericError; \
- goto EXITPOINT; \
- } \
- }
- #define BailIfError(theErrCode) \
- { \
- if ((theErrCode) != noErr) \
- { \
- goto EXITPOINT; \
- } \
- }
- #define SetErrCodeAndBail(theErrCode) \
- { \
- errCode = theErrCode; \
- \
- goto EXITPOINT; \
- }
- #define SetErrorCodeAndMessageAndBail(theErrCode,theMessage) \
- { \
- SetErrorMessage(theMessage); \
- errCode = theErrCode; \
- goto EXITPOINT; \
- }
- #define BailNow() \
- { \
- errCode = kGenericError; \
- goto EXITPOINT; \
- }
- #ifdef __cplusplus
- }
- #endif
|