summaryrefslogtreecommitdiffstats
path: root/WWW/Library/Implementation/LYexit.h
blob: dd4b0e64a2d79a3477bf4ac80950c6ead92d2a83 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#ifndef __LYEXIT_H
/*
 *	Avoid include redundancy
 */
#define __LYEXIT_H

/*
 *	Copyright (c) 1994, University of Kansas, All Rights Reserved
 *
 *	Include File:	LYexit.h
 *	Purpose:	Provide an atexit function for libraries without such.
 *	Remarks/Portability/Dependencies/Restrictions:
 *		Include this header in every file that you have an exit or
 *			atexit statement.
 *	Revision History:
 *		06-15-94	created Lynx 2-3-1 Garrett Arch Blythe
 */

/*
 *	Required includes
 */
#ifdef _WINDOWS
#include <process.h>		/* declares exit() */
#endif

#ifndef HTUTILS_H
#include <HTUtils.h>
#endif

#ifdef __cplusplus
extern "C" {
#endif
/*
 *	Constant defines
 */
#ifdef exit
#undef exit
#endif
#define exit(code) LYexit(code)
#define atexit LYatexit
#define ATEXITSIZE 50

/*
 *	Data structures
 */

/*
 * Global variable declarations
 */

/*
 * Macros
 */

/*
 * Function declarations
 */
    extern GCC_NORETURN void outofmem(const char *fname, const char *func);
    extern void reset_signals(void);
    extern GCC_NORETURN void exit_immediately(int status);
    extern GCC_NORETURN void LYexit(int status);
    extern int LYatexit(void (*function) (void));

#ifdef __cplusplus
}
#endif
#endif				/* __LYEXIT_H */