1 /*
2  * hook.h: header for hook.c
3  *
4  * Copyright 1990, 1995 Michael Sandrof, Matthew Green and others
5  * Copyright 1997 EPIC Software Labs
6  * See the COPYRIGHT file for license information.
7  */
8 
9 #ifndef __hook_h__
10 #define __hook_h__
11 
12 enum HOOK_TYPES {
13 	ACTION_LIST,
14 	CHANNEL_NICK_LIST,
15 	CHANNEL_SIGNOFF_LIST,
16 	CHANNEL_SYNC_LIST,
17 	CONNECT_LIST,
18 	CTCP_LIST,
19 	CTCP_REPLY_LIST,
20 	CTCP_REQUEST_LIST,
21 	DCC_ACTIVITY_LIST,
22 	DCC_CHAT_LIST,
23 	DCC_CONNECT_LIST,
24 	DCC_LIST_LIST,
25 	DCC_LOST_LIST,
26 	DCC_OFFER_LIST,
27 	DCC_RAW_LIST,
28 	DCC_REQUEST_LIST,
29 	DISCONNECT_LIST,
30 	ENCRYPTED_NOTICE_LIST,
31 	ENCRYPTED_PRIVMSG_LIST,
32 	ERROR_LIST,
33 	EXEC_LIST,
34 	EXEC_ERRORS_LIST,
35 	EXEC_EXIT_LIST,
36 	EXEC_PROMPT_LIST,
37 	EXIT_LIST,
38 	FLOOD_LIST,
39 	GENERAL_NOTICE_LIST,
40 	GENERAL_PRIVMSG_LIST,
41 	HELP_LIST,
42 	HOOK_LIST,
43 	IDLE_LIST,
44 	INPUT_LIST,
45 	INVITE_LIST,
46 	JOIN_LIST,
47 	KICK_LIST,
48 	KILL_LIST,
49 	LEAVE_LIST,
50 	LIST_LIST,
51 	MAIL_LIST,
52 	MODE_LIST,
53 	MODE_STRIPPED_LIST,
54 	MSG_LIST,
55 	MSG_GROUP_LIST,
56 	NAMES_LIST,
57 	NICKNAME_LIST,
58 	NOTE_LIST,
59 	NOTICE_LIST,
60 	NOTIFY_SIGNOFF_LIST,
61 	NOTIFY_SIGNON_LIST,
62 	ODD_SERVER_STUFF_LIST,
63 	OPER_NOTICE_LIST,
64 	PONG_LIST,
65 	PUBLIC_LIST,
66 	PUBLIC_MSG_LIST,
67 	PUBLIC_NOTICE_LIST,
68 	PUBLIC_OTHER_LIST,
69 	RAW_IRC_LIST,
70 	REDIRECT_LIST,
71 	SEND_ACTION_LIST,
72 	SEND_CTCP_LIST,
73 	SEND_DCC_CHAT_LIST,
74 	SEND_MSG_LIST,
75 	SEND_NOTICE_LIST,
76 	SEND_PUBLIC_LIST,
77 	SEND_TO_SERVER_LIST,
78 	SERVER_ESTABLISHED_LIST,
79 	SERVER_LOST_LIST,
80 	SERVER_NOTICE_LIST,
81 	SET_LIST,
82 	SIGNAL_LIST,
83 	SIGNOFF_LIST,
84 	SILENCE_LIST,
85 	SSL_SERVER_CERT_LIST,
86 	STATUS_UPDATE_LIST,
87 	SWITCH_CHANNELS_LIST,
88 	SWITCH_WINDOWS_LIST,
89 	TIMER_LIST,
90 	TOPIC_LIST,
91 	UNLOAD_LIST,
92 	WALL_LIST,
93 	WALLOP_LIST,
94 	WHO_LIST,
95 	WIDELIST_LIST,
96 	WINDOW_LIST,
97 	WINDOW_COMMAND_LIST,
98 	WINDOW_CREATE_LIST,
99 	WINDOW_BEFOREKILL_LIST,
100 	WINDOW_KILL_LIST,
101 	YELL_LIST,
102 	ZZZZ_THIS_ALWAYS_COMES_LAST_ZZZZ
103 };
104 
105 #define NUMBER_OF_LISTS ZZZZ_THIS_ALWAYS_COMES_LAST_ZZZZ
106 #define INVALID_HOOKNUM -1001
107 
108 	BUILT_IN_COMMAND(oncmd);
109 	BUILT_IN_COMMAND(shookcmd);
110 	int	do_hook 		(int, const char *, ...) __A(2);
111 	void	flush_on_hooks 		(void);
112 	void	unload_on_hooks		(char *);
113 	void	save_hooks 		(FILE *, int);
114 	void	do_stack_on		(int, char *);
115 	int	hook_find_free_serial	(int, int, int);
116 
117 #endif /* __hook_h_ */
118