File: newhandler.c

package info (click to toggle)
elk 3.0-6
  • links: PTS
  • area: main
  • in suites: potato, slink
  • size: 4,068 kB
  • ctags: 3,123
  • sloc: ansic: 20,686; lisp: 5,232; makefile: 419; awk: 91; sh: 21
file content (27 lines) | stat: -rw-r--r-- 571 bytes parent folder | download | duplicates (3)
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
#include "scheme.h"

#ifdef USE_ATTC_PLUS_PLUS
#  define set_new_handler set_new_handler__FPFv_v
#endif

static Object New_Handler;

static void New_Handler_Proc () {
    (void)Funcall (New_Handler, Null, 0);
}

static Object P_Set_New_Handler (p) Object p; {
    Object old;

    Check_Procedure (p);
    old = New_Handler;
    New_Handler = p;
    return old;
}

elk_init_lib_cplusplus () {
    New_Handler = Null;
    Global_GC_Link (New_Handler);
    set_new_handler (New_Handler_Proc);
    Define_Primitive (P_Set_New_Handler, "set-c++-new-handler!", 1, 1, EVAL);
}