]>
jfr.im git - irc/quakenet/newserv.git/blob - core/hooks.c
5 #include "../lib/array.h"
12 for (i
=0;i
<HOOKMAX
;i
++) {
13 array_init(&(hooks
[i
]),sizeof(HookCallback
));
14 array_setlim1(&(hooks
[i
]),2);
15 array_setlim2(&(hooks
[i
]),2);
19 int registerhook(int hooknum
, HookCallback callback
) {
26 hcbs
=(HookCallback
*)(hooks
[hooknum
].content
);
27 for(i
=0;i
<hooks
[hooknum
].cursi
;i
++)
31 i
=array_getfreeslot(&hooks
[hooknum
]);
32 hcbs
=(HookCallback
*)(hooks
[hooknum
].content
);
38 int deregisterhook(int hooknum
, HookCallback callback
) {
45 hcbs
=(HookCallback
*)(hooks
[hooknum
].content
);
47 for(i
=0;i
<hooks
[hooknum
].cursi
;i
++)
48 if(hcbs
[i
]==callback
) {
49 array_delslot(&(hooks
[hooknum
]),i
);
56 void triggerhook(int hooknum
, void *arg
) {
63 hcbs
=(HookCallback
*)(hooks
[hooknum
].content
);
64 for (i
=0;i
<hooks
[hooknum
].cursi
;i
++) {
65 (hcbs
[i
])(hooknum
, arg
);