This is exception.h in view mode; [Download] [Up]
#ifndef ExcIncluded
#define ExcIncluded 1 /* %W% (serge) %G% */ /* /usr/local/devel/postgres-4.2-devel/src/backend/utils/RCS/exception.h,v 1.3 1993/01/01 00:43:17 marc Exp */
#include <setjmp.h>
typedef char* ExcMsg;
typedef struct {
ExcMsg msg;
} Exception;
typedef jmp_buf ExcContext;
typedef Exception* ExcId;
typedef long ExcDetail;
typedef char* ExcData;
typedef struct ExcFrame {
struct ExcFrame *link;
ExcContext context;
ExcId id;
ExcDetail detail;
ExcData data;
ExcMsg msg;
} ExcFrame;
extern ExcFrame* ExcCurFrameP;
#define ExcBegin() \
{ \
ExcFrame exception; \
\
exception.link = ExcCurFrameP; \
if (setjmp(exception.context) == 0) { \
ExcCurFrameP = &exception; \
{
#define ExcExcept() \
} \
ExcCurFrameP = exception.link; \
} else { \
{
#define ExcEnd() \
} \
} \
}
#define raise4(x, t, d, msg) \
ExcRaise(&(x), (ExcDetail)(t), (ExcData)(d), (ExcMsg)(msg))
#define reraise() \
raise4(exception.id, exception.detail, exception.data, exception.msg)
typedef void ExcProc(/* Exception*, ExcDetail, ExcData, ExcMsg */);
extern void ExcRaise(/* Exception*, ExcDetail, ExcData, ExcMsg */);
extern ExcProc *ExcGetUnCaught();
extern ExcProc *ExcSetUnCaught(/* ExcProc * */);
extern void ExcUnCaught(/* Exception*, ExcDetail, ExcData, ExcMsg */);
extern void ExcPrint(/* Exception*, ExcDetail, ExcData, ExcMsg */);
extern char* ProgramName;
extern void ExcAbort(/* Exception*, ExcDetail, ExcData, ExcMsg */);
#endif /* !defined(ExcIncluded) */
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.