home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
519b.lha
/
Experiment_IV
/
Source.LZH
/
Source
/
cleanup.h
< prev
next >
Wrap
C/C++ Source or Header
|
1991-06-09
|
2KB
|
63 lines
/* cleanup.h */
/*
*
* $Author: Espie $
* $Date: 91/04/24 02:40:48 $
* $Revision: 1.1 $
* $Log: cleanup.h,v $
* Revision 1.1 91/04/24 02:40:48 Espie
* Initial revision
*
*
*/
#ifndef CUSTOM_CLEANUP_H
#define CUSTOM_CLEANUP_H
#ifndef NIL
#define NIL (void *)0
#endif
typedef void *GENERIC;
typedef long INTEGER;
typedef struct clean *CLEAN;
typedef void (*FUNC0)(void);
typedef void (*FUNC1)(GENERIC);
typedef void (*FUNC2)(GENERIC, INTEGER);
typedef void (*FUNC3)(GENERIC, INTEGER, INTEGER);
#define ToClean0(f) ToClean0L(NIL, f)
#define ToClean(f, o) ToCleanL(NIL, f, o)
#define ToClean2(f, o, i) ToClean2L(NIL, f, o, i)
#define ToClean3(f, o, i, j) ToClean3L(NIL, f, o, i, j)
#define ToClean0(f) ToClean0L(NIL, f)
#define AllocClean(f) AllocCleanL(NIL, f)
extern void ToClean0L(CLEAN stem, void (*f)(void));
extern void ToCleanL(CLEAN stem, void (*f)(GENERIC), GENERIC o);
extern void ToClean2L(CLEAN stem, void (*f)(GENERIC, INTEGER),
GENERIC o, INTEGER i);
extern void ToClean3L(CLEAN stem, void (*f)(GENERIC, INTEGER, INTEGER),
GENERIC o, INTEGER i1, INTEGER i2);
extern CLEAN AllocCleanL(CLEAN base, void (*panic)(char *));
extern void CleanUp(CLEAN base);
extern void SetUpCleanUp(void (*panic)(char *));
extern void SafeCleanUp(CLEAN *base);
extern CLEAN AllocPrivateClean(void (*panic)(char *));
extern void PanicL(CLEAN stem, char *message);
#define Panic(message) PanicL(NIL, message)
/* should never be defined when compiling cleanup.c itself */
#ifdef USE_ANSI_AT_EXIT
extern int ANSIatexit(void (*func)(void));
#define atexit ANSIatexit
#define onexit ANSIatexit
#endif
#endif