Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
BitchX
GitHub Repository: BitchX/BitchX1.3
Path: blob/master/include/modval.h
1069 views
1
#ifndef _MODVAL_
2
3
/* include this so we have the enum table just in case someone forgets. */
4
5
#include "module.h"
6
7
/*
8
* this is a method first used in eggdrop modules..
9
* A global table of functions is passed into the init function of module,
10
* which is then assigned to the value global. This table is then indexed,
11
* to access the various functions. What this means to us, is that we no
12
* longer require -rdynamic on the LDFLAGS line, which reduces the size
13
* of the client. This also makes this less compiler/environment dependant,
14
* allowing modules to work on more platforms.
15
* A Function_ptr *global is required in the module. The second arg to
16
* the init function is used to initialize this table. The table itself is
17
* initialized in modules.c. This file should only be included once in the
18
* module and also should be the last file included. It should never be
19
* included in the source itself.
20
* As long as we add new functions to the END of the list in module.h then
21
* currently compiled modules will continue to function fine. If we change
22
* the order of the list however, then BAD things will occur.
23
* Copyright Colten Edwards July 1998.
24
*/
25
26
#define _MODVAL_
27
#ifndef BUILT_IN_DLL
28
#define BUILT_IN_DLL(x) \
29
void x (IrcCommandDll *intp, char *command, char *args, char *subargs, char *helparg)
30
#endif
31
32
#if defined(WTERM_C) || defined(STERM_C)
33
/* If we are building wserv or scr-bx we can't use
34
* the global table so we forward to the actual
35
* functions instead of throught the global table.
36
*/
37
#define set_non_blocking(x) BX_set_non_blocking(x)
38
#define set_blocking(x) BX_set_blocking(x)
39
#define ip_to_host(x) BX_ip_to_host(x)
40
#define host_to_ip(x) BX_host_to_ip(x)
41
#define connect_by_number(a, b, c, d, e) BX_connect_by_number(a, b, c, d, e)
42
#ifndef __vars_h_
43
enum VAR_TYPES { unused };
44
#endif
45
int get_int_var (enum VAR_TYPES);
46
void ircpanic (char *, ...);
47
char *my_ltoa (long);
48
#else
49
50
/*
51
* need to undefine these particular defines. Otherwise we can't include
52
* them in the table.
53
*/
54
#undef new_malloc
55
#undef new_free
56
#undef RESIZE
57
#undef malloc_strcat
58
#undef malloc_strcpy
59
#undef m_strdup
60
#undef m_strcat_ues
61
#undef m_strndup
62
63
#undef MODULENAME
64
65
#ifdef MAIN_SOURCE
66
void init_global_functions(void);
67
#ifndef __modules_c
68
extern char *_modname_;
69
extern Function_ptr *global;
70
#endif
71
#else
72
73
#ifdef INIT_MODULE
74
/* only in the first c file do we #define INIT_MODULE */
75
char *_modname_ = NULL;
76
Function_ptr *global = NULL;
77
#undef INIT_MODULE
78
#else
79
extern char *_modname_;
80
extern Function_ptr *global;
81
#endif
82
83
#endif /* MAIN_SOURCE */
84
85
#define MODULENAME _modname_
86
87
#define check_module_version (*(int (*)(unsigned long))global[MODULE_VERSION_CHECK])
88
#define set_dll_name(x) malloc_strcpy(&_modname_, x)
89
#define set_global_func(x) global = x;
90
#define initialize_module(x) { \
91
global = global_table; \
92
malloc_strcpy(&_modname_, x); \
93
if (!check_module_version(MODULE_VERSION)) \
94
return INVALID_MODVERSION; \
95
}
96
97
98
#ifndef MAIN_SOURCE
99
#define empty_string ""
100
#define space " "
101
#endif
102
103
#ifndef HAVE_VSNPRINTF
104
#define vsnprintf ((char * (*)())global[VSNPRINTF])
105
#endif
106
#ifndef HAVE_SNPRINTF
107
#define snprintf ((char * (*)())global[SNPRINTF])
108
#endif
109
110
/* Changed these to cast the function pointer rather than the arguments and result. The old method wasn't portable to
111
* some 64 bit platforms. Next step - change instances of global[XYZ] to &xyzfunc in the code.
112
*
113
* Should also think about standardising types (eg Screen instead of struct ScreenStru, get rid of u_char).
114
*/
115
/* ircaux.c */
116
#define new_malloc(x) ((void * (*)(size_t, const char *, const char *, int))global[NEW_MALLOC])((x),MODULENAME, __FILE__,__LINE__)
117
#define new_free(x) (*(x) = ((void * (*)(void *, const char *, const char *, int))global[NEW_FREE])(*(x),MODULENAME, __FILE__,__LINE__))
118
#define RESIZE(x, y, z) ((x) = ((void * (*)(void *, size_t, const char *, const char *, int))global[NEW_REALLOC])((x), sizeof(y) * (z), MODULENAME, __FILE__, __LINE__))
119
#define malloc_strcpy(x, y) ((char * (*)(char **, const char *, const char *, const char *, int))global[MALLOC_STRCPY])((x), (y), MODULENAME, __FILE__, __LINE__)
120
#define malloc_strcat(x, y) ((char * (*)(char **, const char *, const char *, const char *, int))global[MALLOC_STRCAT])((x), (y), MODULENAME, __FILE__, __LINE__)
121
#define malloc_str2cpy (*(char * (*)(char **, const char *, const char *))global[MALLOC_STR2CPY])
122
#define m_3dup (*(char * (*)(const char *, const char *, const char *))global[M_3DUP])
123
#define m_opendup (*(char * (*)(const char *, ...))global[M_OPENDUP])
124
#define m_s3cat (*(char * (*)(char **, const char *, const char *))global[M_S3CAT])
125
#define m_s3cat_s (*(char * (*)(char **, const char *, const char *))global[M_S3CAT_S])
126
#define m_3cat (*(char * (*)(char **, const char *, const char *))global[M_3CAT])
127
#define m_2dup (*(char * (*)(const char *, const char *))global[M_2DUP])
128
#define m_e3cat (*(char * (*)(char **, const char *, const char *))global[M_E3CAT])
129
130
#define my_stricmp (*(int (*)(const char *, const char *))global[MY_STRICMP])
131
#define my_strnicmp (*(int (*)(const char *, const char *, size_t))global[MY_STRNICMP])
132
133
#define my_strnstr (*(int (*)(const unsigned char *, const unsigned char *, size_t))global[MY_STRNSTR])
134
#define chop (*(char * (*)(char *, int))global[CHOP])
135
#define strmcpy (*(char * (*)(char *, const char *, int))global[STRMCPY])
136
#define strmcat (*(char * (*)(char *, const char *, int))global[STRMCAT])
137
#define scanstr (*(int (*)(char *, char *))global[SCANSTR])
138
#define m_dupchar (*(char * (*)(int))global[M_DUPCHAR])
139
#define streq (*(size_t (*)(const char *, const char *))global[STREQ])
140
#define strieq (*(size_t (*)(const char *, const char *))global[STRIEQ])
141
#define strmopencat (*(char * (*)(char *, int , ...))global[STRMOPENCAT])
142
#define ov_strcpy (*(char * (*)(char *, const char *))global[OV_STRCPY])
143
#define upper (*(char * (*)(char *))global[UPPER])
144
#define lower (*(char * (*)(char *))global[LOWER])
145
#define stristr (*(char * (*)(const char *, const char *))global[STRISTR])
146
#define rstristr (*(char * (*)(char *, char *))global[RSTRISTR])
147
#define word_count (*(int (*)(char *))global[WORD_COUNT])
148
#define remove_trailing_spaces (*(char * (*)(char *))global[REMOVE_TRAILING_SPACES])
149
#define expand_twiddle (*(char * (*)(char *))global[EXPAND_TWIDDLE])
150
#define check_nickname (*(char * (*)(char *))global[CHECK_NICKNAME])
151
#define sindex (*(char * (*)(char *, char *))global[SINDEX])
152
#define rsindex (*(char * (*)(char *, char *, char *, int))global[RSINDEX])
153
#define is_number (*(int (*)(const char *))global[ISNUMBER])
154
#define rfgets (*(char * (*)(char *, int , FILE *))global[RFGETS])
155
#define path_search (*(char * (*)(char *, char *))global[PATH_SEARCH])
156
#define double_quote (*(char * (*)(const char *, const char *, char *))global[DOUBLE_QUOTE])
157
#define ircpanic (*(void (*)(char *, ...))global[IRCPANIC])
158
#define end_strcmp (*(int (*)(const char *, const char *, int))global[END_STRCMP])
159
#define beep_em (*(void (*)(int))global[BEEP_EM])
160
#define uzfopen (*(FILE * (*)(char **, char *, int))global[UZFOPEN])
161
#define get_time (*(struct timeval (*)(struct timeval *))global[FUNC_GET_TIME])
162
#define time_diff (*(double (*)(struct timeval , struct timeval))global[TIME_DIFF])
163
#define time_to_next_minute (*(int (*)(void))global[TIME_TO_NEXT_MINUTE])
164
#define plural (*(char * (*)(int))global[PLURAL])
165
#define my_ctime (*(char * (*)(time_t))global[MY_CTIME])
166
#define ccspan (*(size_t (*)(const char *, int))global[CCSPAN])
167
168
/* If we are in a module, undefine the previous define from ltoa to my_ltoa */
169
#ifdef ltoa
170
#undef ltoa
171
#endif
172
#define ltoa (*(char *(*)(long ))global[LTOA])
173
#define strformat (*(char *(*)(char *, const char *, int , char ))global[STRFORMAT])
174
#define MatchingBracket (*(char *(*)(char *, char , char ))global[MATCHINGBRACKET])
175
#define parse_number (*(int (*)(char **))global[PARSE_NUMBER])
176
#define splitw (*(int (*)(char *, char ***))global[SPLITW])
177
#define unsplitw (*(char *(*)(char ***, int ))global[UNSPLITW])
178
#define check_val (*(int (*)(char *))global[CHECK_VAL])
179
#define on_off (*(char *(*)(int ))global[ON_OFF])
180
#define strextend (*(char *(*)(char *, char , int ))global[STREXTEND])
181
#define strfill (*(const char *(*)(char , int ))global[STRFILL])
182
#define empty (*(int (*)(const char *))global[EMPTY_FUNC])
183
#define remove_brackets (*(char *(*)(const char *, const char *, int *))global[REMOVE_BRACKETS])
184
#define my_atol (*(long (*)(const char *))global[MY_ATOL])
185
#define strip_control (*(void (*)(const char *, char *))global[STRIP_CONTROL])
186
#define figure_out_address (*(int (*)(char *, char **, char **, char **, char **, int *))global[FIGURE_OUT_ADDRESS])
187
#define strnrchr (*(char *(*)(char *, char , int ))global[STRNRCHR])
188
#define mask_digits (*(void (*)(char **))global[MASK_DIGITS])
189
#define ccscpan (*(size_t (*)(const char *, int))global[CCSPAN])
190
#define charcount (*(int (*)(const char *, char ))global[CHARCOUNT])
191
#define strpcat (*(char *(*)(char *, const char *, ...))global[STRPCAT])
192
#define strcpy_nocolorcodes (*(u_char *(*)(u_char *, const u_char *))global[STRCPY_NOCOLORCODES])
193
#define cryptit (*(char *(*)(const char *))global[CRYPTIT])
194
#define stripdev (*(char *(*)(char *))global[STRIPDEV])
195
#define mangle_line (*(size_t (*)(char *, int, size_t))global[MANGLE_LINE])
196
#define m_strdup(x) (*(char *(*)(const char *, const char *, const char *, const int ))global[M_STRDUP])((x), MODULENAME, __FILE__, __LINE__)
197
#define m_strcat_ues(x, y, z) (*(char *(*)(char **, char *, int , const char *, const char *, const int ))global[M_STRCAT_UES])((x), (y), (z), MODULENAME, __FILE__, __LINE__)
198
#define m_strndup(x, y) (*(char *(*)(const char *, size_t, const char *, const char *, const int ))global[M_STRNDUP])((x), (y), MODULENAME, __FILE__, __LINE__)
199
#define malloc_sprintf (*(char *(*)(char **, const char *, ...))global[MALLOC_SPRINTF])
200
#define m_sprintf (*(char *(*)(const char *, ...))global[M_SPRINTF])
201
#define next_arg (*(char *(*)(char *, char **))global[NEXT_ARG])
202
#define new_next_arg (*(char *(*)(char *, char **))global[NEW_NEXT_ARG])
203
#define new_new_next_arg (*(char *(*)(char *, char **, char *))global[NEW_NEW_NEXT_ARG])
204
#define last_arg (*(char *(*)(char **))global[LAST_ARG])
205
#define next_in_comma_list (*(char *(*)(char *, char **))global[NEXT_IN_COMMA_LIST])
206
#define random_number (*(u_long (*)(u_long))global[RANDOM_NUMBER])
207
208
209
/* words.c reg.c */
210
#define strsearch (*(char *(*)(char *, char *, char *, int ))global[STRSEARCH])
211
#define move_to_abs_word (*(char *(*)(const char *, char **, int ))global[MOVE_TO_ABS_WORD])
212
#define move_word_rel (*(char *(*)(const char *, char **, int ))global[MOVE_WORD_REL])
213
#define extract (*(char *(*)(char *, int , int ))global[EXTRACT])
214
#define extract2 (*(char *(*)(const char *, int , int ))global[EXTRACT2])
215
#define wild_match (*(int (*)(const char *, const char *))global[WILD_MATCH])
216
217
/* network.c */
218
#define connect_by_number (*(int (*)(char *, unsigned short *, int , int , int ))global[CONNECT_BY_NUMBER])
219
#define lookup_host (*(struct sockaddr_foobar *(*)(const char *))global[LOOKUP_HOST])
220
#define resolv (*(struct sockaddr_foobar *(*)(const char *))global[LOOKUP_HOST])
221
#define host_to_ip (*(char *(*)(const char *))global[HOST_TO_IP])
222
#define ip_to_host (*(char *(*)(const char *))global[IP_TO_HOST])
223
#define one_to_another (*(char *(*)(const char *))global[ONE_TO_ANOTHER])
224
#define set_blocking (*(int (*)(int ))global[SET_BLOCKING])
225
#define set_non_blocking (*(int (*)(int ))global[SET_NON_BLOCKING])
226
227
228
/* list.c */
229
#define add_to_list (*(void (*)(List **, List *))global[ADD_TO_LIST])
230
#define add_to_list_ext (*(void (*)(List **, List *, int (*)(List *, List *)))global[ADD_TO_LIST_EXT])
231
#define find_in_list (*(List *(*)(List **, char *, int))global[FIND_IN_LIST])
232
#define find_in_list_ext (*(List *(*)(List **, char *, int, int (*)(List *, char *)))global[FIND_IN_LIST_EXT])
233
#define remove_from_list (*(List *(*)(List **, char *))global[REMOVE_FROM_LIST_])
234
#define remove_from_list_ext (*(List *(*)(List **, char *, int (*)(List *, char *)))global[REMOVE_FROM_LIST_EXT])
235
#define removewild_from_list (*(List *(*)(List **, char *))global[REMOVEWILD_FROM_LIST])
236
#define list_lookup (*(List *(*)(List **, char *, int, int))global[LIST_LOOKUP])
237
#define list_lookup_ext (*(List *(*)(List **, char *, int, int, int (*)(List *, char *)))global[LIST_LOOKUP_EXT])
238
239
/* alist.c */
240
#define add_to_array (*(Array_item *(*)(Array *, Array_item *))global[ADD_TO_ARRAY])
241
#define remove_from_array (*(Array_item *(*)(Array *, char *))global[REMOVE_FROM_ARRAY])
242
#define array_pop (*(Array_item *(*)(Array *, int))global[ARRAY_POP])
243
244
#define remove_all_from_array (*(Array_item *(*)(Array *, char *))global[REMOVE_ALL_FROM_ARRAY])
245
#define array_lookup (*(Array_item *(*)(Array *, char *, int, int ))global[ARRAY_LOOKUP])
246
#define find_array_item (*(Array_item *(*)(Array *, char *, int *, int *))global[FIND_ARRAY_ITEM])
247
248
#define find_fixed_array_item (*(void *(*)(void *, size_t, int, char *, int *, int *))global[FIND_FIXED_ARRAY_ITEM])
249
250
/* output.c */
251
#define put_it (*(void (*)(const char *, ...))global[PUT_IT])
252
#define bitchsay (*(void (*)(const char *, ...))global[BITCHSAY])
253
#define yell (*(void (*)(const char *, ...))global[YELL])
254
#define add_to_screen (*(void (*)(unsigned char *))global[ADD_TO_SCREEN])
255
#define add_to_log (*(void (*)(FILE *, time_t, const char *, int ))global[ADD_TO_LOG])
256
257
#define bsd_glob (*(int (*)(const char *, int, int (*)(const char *, int), glob_t *))global[BSD_GLOB])
258
#define bsd_globfree (*(void (*)(glob_t *))global[BSD_GLOBFREE])
259
260
/* misc commands */
261
#define my_encrypt (*(void (*)(char *, int , char *))global[MY_ENCRYPT])
262
#define my_decrypt (*(void (*)(char *, int , char *))global[MY_DECRYPT])
263
#define prepare_command (*(ChannelList *(*)(int *, char *, int))global[PREPARE_COMMAND])
264
#define convert_output_format (*(char *(*)(const char *, const char *, ...))global[CONVERT_OUTPUT_FORMAT])
265
#define userage (*(void (*)(char *, char *))global[USERAGE])
266
#define send_text (*(void (*)(const char *, const char *, char *, int , int ))global[SEND_TEXT])
267
/* this needs to be worked out. it's passed in the IrcVariable * to _Init */
268
#define load (*(void (*)(char *, char *, char *, char *))global[FUNC_LOAD])
269
#define update_clock (*(char *(*)(int ))global[UPDATE_CLOCK])
270
#define PasteArgs (*(char *(*)(char **, int ))global[PASTEARGS])
271
#define BreakArgs (*(int (*)(char *, char **, char **, int ))global[BREAKARGS])
272
273
#define set_lastlog_msg_level (*(unsigned long (*)(unsigned long ))global[SET_LASTLOG_MSG_LEVEL])
274
#define split_CTCP (*(void (*)(char *, char *, char *))global[SPLIT_CTCP])
275
#define random_str (*(char *(*)(int , int ))global[RANDOM_STR])
276
#define dcc_printf (*(int (*)(int, char *, ...))global[DCC_PRINTF])
277
278
/* screen.c */
279
#define prepare_display (*(unsigned char **(*)(const unsigned char *, int , int *, int ))global[PREPARE_DISPLAY])
280
#define add_to_window (*(void (*)(Window *, const unsigned char *))global[ADD_TO_WINDOW])
281
#define skip_incoming_mirc (*(unsigned char *(*)(unsigned char *))global[SKIP_INCOMING_MIRC])
282
#define add_to_screen (*(void (*)(unsigned char *))global[ADD_TO_SCREEN])
283
#define split_up_line (*(unsigned char **(*)(const unsigned char *, int ))global[SPLIT_UP_LINE])
284
#define output_line (*(int (*)(const unsigned char *))global[OUTPUT_LINE])
285
#define output_with_count (*(int (*)(const unsigned char *, int , int ))global[OUTPUT_WITH_COUNT])
286
#define scroll_window (*(void (*)(Window *))global[SCROLL_WINDOW])
287
/* Previous broken definitions - yet it still seemed to work?
288
#define cursor_not_in_display(x) ((void) (global[CURSOR_IN_DISPLAY]((Screen *)x)))
289
#define cursor_in_display(x) ((void) (global[CURSOR_IN_DISPLAY]((Screen *)x)))
290
*/
291
#define cursor_not_in_display (*(void (*)(Screen *))global[CURSOR_NOT_IN_DISPLAY])
292
#define cursor_in_display (*(void (*)(Window *))global[CURSOR_IN_DISPLAY])
293
#define is_cursor_in_display (*(int (*)(Screen *))global[IS_CURSOR_IN_DISPLAY])
294
#define repaint_window (*(void (*)(Window *, int, int))global[REPAINT_WINDOW])
295
296
#define kill_screen (*(void (*)(Screen *))global[KILL_SCREEN])
297
#define xterm_settitle (*(void (*)(void))global[XTERM_SETTITLE])
298
#define add_wait_prompt (*(void (*)(char *, void (*)(char *, char *), char *, int , int ))global[ADD_WAIT_PROMPT])
299
#define skip_ctl_c_seq (*(const unsigned char *(*)(const unsigned char *, int *, int *, int ))global[SKIP_CTL_C_SEQ])
300
#define strip_ansi (*(unsigned char *(*)(const unsigned char *))global[STRIP_ANSI])
301
#define create_new_screen ((Screen * (*)(void))global[CREATE_NEW_SCREEN])
302
#define create_additional_screen ((Window * (*)(void))global[CREATE_ADDITIONAL_SCREEN])
303
304
305
/* window.c */
306
#define free_formats (*(void (*)(Window *))global[FREE_FORMATS])
307
#define set_screens_current_window (*(void (*)(Screen *, Window *))global[SET_SCREENS_CURRENT_WINDOW])
308
#define new_window (*(Window *(*)(struct ScreenStru *))global[NEW_WINDOW])
309
#define delete_window (*(void (*)(Window *))global[DELETE_WINDOW])
310
#define traverse_all_windows (*(int (*)(Window **))global[TRAVERSE_ALL_WINDOWS])
311
#define add_to_invisible_list (*(void (*)(Window *))global[ADD_TO_INVISIBLE_LIST])
312
#define remove_window_from_screen (*(void (*)(Window *))global[REMOVE_WINDOW_FROM_SCREEN])
313
#define recalculate_window_positions (*(void (*)(struct ScreenStru *))global[RECALCULATE_WINDOW_POSITIONS])
314
#define move_window (*(void (*)(Window *, int))global[MOVE_WINDOW])
315
#define resize_window (*(void (*)(int, Window *, int))global[RESIZE_WINDOW])
316
#define redraw_all_windows (*(void (*)(void))global[REDRAW_ALL_WINDOWS])
317
#define rebalance_windows (*(void (*)(struct ScreenStru *))global[REBALANCE_WINDOWS])
318
#define recalculate_windows (*(void (*)(struct ScreenStru *))global[RECALCULATE_WINDOWS])
319
320
#define update_all_windows (*(void (*)(void))global[UPDATE_ALL_WINDOWS])
321
322
/* Several of these are never used! */
323
#define goto_window (*(void (*)(Screen *, int))global[GOTO_WINDOW])
324
#define hide_window (*(void (*)(Window *))global[HIDE_BX_WINDOW])
325
#define swap_last_window (*(void (*)(char , char *))global[FUNC_SWAP_LAST_WINDOW])
326
#define swap_next_window (*(void (*)(char , char *))global[FUNC_SWAP_NEXT_WINDOW])
327
#define swap_previous_window (*(void (*)(char , char *))global[FUNC_SWAP_PREVIOUS_WINDOW])
328
#define show_window (*(void (*)(Window *))global[SHOW_WINDOW])
329
#define get_status_by_refnum (*(char *(*)(unsigned , unsigned ))global[GET_STATUS_BY_REFNUM])
330
#define get_visible_by_refnum (*(int (*)(char *))global[GET_VISIBLE_BY_REFNUM])
331
#define get_window_by_desc (*(Window *(*)(const char *))global[GET_WINDOW_BY_DESC])
332
#define get_window_by_refnum (*(Window *(*)(unsigned ))global[GET_WINDOW_BY_REFNUM])
333
#define get_window_by_name (*(Window *(*)(const char *))global[GET_WINDOW_BY_NAME])
334
#define next_window (*(void (*)(char , char *))global[FUNC_NEXT_WINDOW])
335
#define previous_window (*(void (*)(char , char *))global[FUNC_PREVIOUS_WINDOW])
336
#define update_window_status (*(void (*)(Window *, int ))global[UPDATE_WINDOW_STATUS])
337
#define update_all_status (*(void (*)(Window *, char *, int))global[UPDATE_ALL_STATUS])
338
#define update_window_status_all (*(void (*)(void ))global[UPDATE_WINDOW_STATUS_ALL])
339
#define status_update (*(int (*)(int ))global[STATUS_UPDATE])
340
341
#define set_prompt_by_refnum (*(void (*)(unsigned , char *))global[SET_PROMPT_BY_REFNUM])
342
#define get_prompt_by_refnum (*(char *(*)(unsigned ))global[GET_PROMPT_BY_REFNUM])
343
#define get_target_by_refnum (*(char *(*)(unsigned ))global[GET_TARGET_BY_REFNUM])
344
#define get_target_cmd_by_refnum (*(char *(*)(u_int))global[GET_TARGET_CMD_BY_REFNUM])
345
#define get_window_target_by_desc (*(Window *(*)(char *))global[GET_WINDOW_TARGET_BY_DESC])
346
#define is_current_channel (*(int (*)(char *, int , int ))global[IS_CURRENT_CHANNEL])
347
#define set_current_channel_by_refnum (*(const char *(*)(unsigned , char *))global[SET_CURRENT_CHANNEL_BY_REFNUM])
348
#define get_current_channel_by_refnum (*(char *(*)(unsigned ))global[GET_CURRENT_CHANNEL_BY_REFNUM])
349
#define get_refnum_by_window (*(char *(*)(const Window *))global[GET_REFNUM_BY_WINDOW])
350
#define is_bound_to_window (*(int (*)(const Window *, const char *))global[IS_BOUND_TO_WINDOW])
351
#define get_window_bound_channel (*(Window *(*)(const char *))global[GET_WINDOW_BOUND_CHANNEL])
352
#define is_bound_anywhere (*(int (*)(const char *))global[IS_BOUND_ANYWHERE])
353
#define is_bound (*(int (*)(const char *, int ))global[IS_BOUND])
354
#define unbind_channel (*(void (*)(const char *, int ))global[UNBIND_CHANNEL])
355
#define get_bound_channel (*(char *(*)(Window *))global[GET_BOUND_CHANNEL])
356
#define get_window_server (*(int (*)(unsigned ))global[GET_WINDOW_SERVER])
357
#define set_window_server (*(void (*)(int , int , int ))global[SET_WINDOW_SERVER])
358
#define window_check_servers (*(void (*)(int ))global[WINDOW_CHECK_SERVERS])
359
#define change_window_server (*(void (*)(int , int ))global[CHANGE_WINDOW_SERVER])
360
#define set_level_by_refnum (*(void (*)(unsigned , unsigned long ))global[SET_LEVEL_BY_REFNUM])
361
#define message_to (*(void (*)(unsigned long ))global[MESSAGE_TO])
362
#define clear_window (*(void (*)(Window *))global[CLEAR_WINDOW])
363
#define clear_all_windows (*(void (*)(int , int ))global[CLEAR_ALL_WINDOWS])
364
#define clear_window_by_refnum (*(void (*)(unsigned ))global[CLEAR_WINDOW_BY_REFNUM])
365
#define unclear_window_by_refnum (*(void (*)(unsigned ))global[UNCLEAR_WINDOW_BY_REFNUM])
366
#define set_scroll_lines (*(void (*)(Window *, char *, int))global[SET_SCROLL_LINES])
367
#define set_continued_lines (*(void (*)(Window *, char *, int))global[SET_CONTINUED_LINES])
368
#define current_refnum (*(unsigned (*)(void ))global[CURRENT_REFNUM])
369
#define number_of_windows_on_screen (*(int (*)(Window *))global[NUMBER_OF_WINDOWS_ON_SCREEN])
370
#define set_scrollback_size (*(void (*)(Window *, char *, int))global[SET_SCROLLBACK_SIZE])
371
#define is_window_name_unique (*(int (*)(char *))global[IS_WINDOW_NAME_UNIQUE])
372
#define get_nicklist_by_window (*(char *(*)(Window *))global[GET_NICKLIST_BY_WINDOW])
373
#define scrollback_backwards_lines (*(void (*)(int ))global[SCROLLBACK_BACKWARDS_LINES])
374
#define scrollback_forwards_lines (*(void (*)(int ))global[SCROLLBACK_FORWARDS_LINES])
375
#define scrollback_forwards (*(void (*)(char , char *))global[SCROLLBACK_FORWARDS])
376
#define scrollback_backwards (*(void (*)(char , char *))global[SCROLLBACK_BACKWARDS])
377
#define scrollback_end (*(void (*)(char , char *))global[SCROLLBACK_END])
378
#define scrollback_start (*(void (*)(char , char *))global[SCROLLBACK_START])
379
#define set_hold_mode (*(void (*)(Window *, int, int))global[SET_HOLD_MODE])
380
#define unhold_windows (*(int (*)(void ))global[UNHOLD_WINDOWS])
381
#define unstop_all_windows (*(void (*)(char , char *))global[FUNC_UNSTOP_ALL_WINDOWS])
382
#define reset_line_cnt (*(void (*)(Window *, char *, int))global[RESET_LINE_CNT])
383
#define toggle_stop_screen (*(void (*)(char , char *))global[FUNC_TOGGLE_STOP_SCREEN])
384
#define flush_everything_being_held (*(void (*)(Window *))global[FLUSH_EVERYTHING_BEING_HELD])
385
#define unhold_a_window (*(int (*)(Window *))global[UNHOLD_A_WINDOW])
386
#define recalculate_window_cursor (*(void (*)(Window *))global[RECALCULATE_WINDOW_CURSOR])
387
#define make_window_current (*(void (*)(Window *))global[MAKE_WINDOW_CURRENT])
388
#define clear_scrollback (*(void (*)(Window *))global[CLEAR_SCROLLBACK])
389
390
#define set_display_target (*(void (*)(const char *, unsigned long ))global[SET_DISPLAY_TARGET])
391
#define save_display_target (*(void (*)(const char **, unsigned long *))global[SAVE_DISPLAY_TARGET])
392
#define restore_display_target (*(void (*)(const char *, unsigned long ))global[RESTORE_DISPLAY_TARGET])
393
#define reset_display_target (*(void (*)(void ))global[RESET_DISPLAY_TARGET])
394
395
#define build_status (*(void (*)(Window *, char *, int))global[BUILD_STATUS])
396
397
398
399
#define do_hook (*(int (*)(int, char *, ...))global[HOOK])
400
401
/* input.c */
402
#define update_input (*(void (*)(int ))global[FUNC_UPDATE_INPUT])
403
#define cursor_to_input (*(void (*)(void ))global[CURSOR_TO_INPUT])
404
#define set_input (*(void (*)(char *))global[SET_INPUT])
405
#define get_input (*(char *(*)(void ))global[GET_INPUT])
406
#define get_input_prompt (*(char *(*)(void ))global[GET_INPUT_PROMPT])
407
#define set_input_prompt (*(void (*)(Window *, char *, int))global[SET_INPUT_PROMPT])
408
#define addtabkey (*(void (*)(char *, char *, int ))global[ADDTABKEY])
409
#define gettabkey (*(NickTab *(*)(int, int, char *))global[GETTABKEY])
410
#define getnextnick (*(NickTab *(*)(int, char *, char *, char *))global[GETNEXTNICK])
411
#define getchannick (*(char *(*)(char *, char *))global[GETCHANNICK])
412
#define lookup_nickcompletion (*(NickList *(*)(ChannelList *, char *))global[LOOKUP_NICKCOMPLETION])
413
#define add_completion_type (*(int (*)(char *, int , enum completion ))global[ADD_COMPLETION_TYPE])
414
415
/* names.c */
416
#define is_channel (*(int (*)(char *))global[IS_CHANNEL])
417
#define make_channel (*(char *(*)(char *))global[MAKE_CHANNEL])
418
#define is_chanop (*(int (*)(char *, char *))global[IS_CHANOP])
419
#define is_halfop (*(int (*)(char *, char *))global[IS_HALFOP])
420
#define im_on_channel (*(int (*)(char *, int ))global[IM_ON_CHANNEL])
421
#define is_on_channel (*(int (*)(char *, int , char *))global[IS_ON_CHANNEL])
422
#define add_channel (*(ChannelList *(*)(char *, int, int))global[ADD_CHANNEL])
423
#define add_to_channel (*(ChannelList *(*)(char *, char *, int, int, int, char *, char *, char *, int, int))global[ADD_TO_CHANNEL])
424
#define get_channel_key (*(char *(*)(char *, int ))global[GET_CHANNEL_KEY])
425
#define recreate_mode (*(char *(*)(ChannelList *))global[FUNC_RECREATE_MODE])
426
#define do_compress_modes (*(char *(*)(ChannelList *, int, char *, char *))global[FUNC_COMPRESS_MODES])
427
#define got_ops (*(int (*)(int, ChannelList *))global[FUNC_GOT_OPS])
428
#define get_channel_bans (*(char *(*)(char *, int , int ))global[GET_CHANNEL_BANS])
429
#define get_channel_mode (*(char *(*)(char *, int ))global[GET_CHANNEL_MODE])
430
#define clear_bans (*(void (*)(ChannelList *))global[CLEAR_BANS])
431
#define remove_channel (*(void (*)(char *, int ))global[REMOVE_CHANNEL])
432
#define remove_from_channel (*(void (*)(char *, char *, int , int , char *))global[REMOVE_FROM_CHANNEL])
433
#define rename_nick (*(void (*)(char *, char *, int ))global[RENAME_NICK])
434
#define get_channel_oper (*(int (*)(char *, int ))global[GET_CHANNEL_OPER])
435
#define get_channel_halfop (*(int (*)(char *, int ))global[GET_CHANNEL_HALFOP])
436
#define get_channel_voice (*(int (*)(char *, int ))global[GET_CHANNEL_VOICE])
437
#define fetch_userhost (*(char *(*)(int , char *))global[FETCH_USERHOST])
438
#define create_channel_list (*(char *(*)(Window *))global[CREATE_CHANNEL_LIST])
439
#define flush_channel_stats (*(void (*)(void ))global[FLUSH_CHANNEL_STATS])
440
#define lookup_channel (*(ChannelList *(*)(char *, int, int))global[LOOKUP_CHANNEL])
441
442
/* hash.c */
443
#define find_nicklist_in_channellist (*(NickList *(*)(char *, ChannelList *, int))global[FIND_NICKLIST_IN_CHANNELLIST])
444
#define add_nicklist_to_channellist (*(void (*)(NickList *, ChannelList *))global[ADD_NICKLIST_TO_CHANNELLIST])
445
#define next_nicklist (*(NickList *(*)(ChannelList *, NickList *))global[NEXT_NICKLIST])
446
#define next_namelist (*(List *(*)(HashEntry *, List *, unsigned int))global[NEXT_NAMELIST])
447
#define add_name_to_genericlist (*(void (*)(char *, HashEntry *, unsigned int))global[ADD_NAME_TO_GENERICLIST])
448
#define find_name_in_genericlist (*(List *(*)(char *, HashEntry *, unsigned int, int))global[FIND_NAME_IN_GENERICLIST])
449
#define add_whowas_userhost_channel (*(void (*)(WhowasList *, WhowasWrapList *))global[ADD_WHOWAS_USERHOST_CHANNEL])
450
#define find_userhost_channel (*(WhowasList *(*)(char *, char *, int, WhowasWrapList *))global[FIND_USERHOST_CHANNEL])
451
#define next_userhost (*(WhowasList *(*)(WhowasWrapList *, WhowasList *))global[NEXT_USERHOST])
452
#define sorted_nicklist (*(NickList *(*)(ChannelList *, int))global[SORTED_NICKLIST])
453
#define clear_sorted_nicklist (*(void (*)(NickList **))global[CLEAR_SORTED_NICKLIST])
454
#define add_name_to_floodlist (*(Flooding *(*)(char *, char *, char *, HashEntry *, unsigned int))global[ADD_NAME_TO_FLOODLIST])
455
#define find_name_in_floodlist (*(Flooding *(*)(char *, char *, HashEntry *, unsigned int, int))global[FIND_NAME_IN_FLOODLIST])
456
457
#define remove_oldest_whowas_hashlist (*(int (*)(WhowasWrapList *, time_t, int))global[REMOVE_OLDEST_WHOWAS_HASHLIST])
458
459
460
461
/* cset.c fset.c vars.c set string and set int ops */
462
#define fget_string_var (*(char *(*)(enum FSET_TYPES ))global[FGET_STRING_VAR])
463
#define fset_string_var (*(void (*)(enum FSET_TYPES , char *))global[FSET_STRING_VAR])
464
#define get_wset_string_var (*(char *(*)(WSet *, int))global[GET_WSET_STRING_VAR])
465
#define set_wset_string_var (*(void (*)(WSet *, int, char *))global[SET_WSET_STRING_VAR])
466
#define get_cset_int_var (*(int (*)(CSetList *, int))global[GET_CSET_INT_VAR])
467
#define set_cset_int_var (*(void (*)(CSetList *, int, int))global[SET_CSET_INT_VAR])
468
#define get_cset_str_var (*(char *(*)(CSetList *, int))global[GET_CSET_STR_VAR])
469
#define set_cset_str_var (*(void (*)(CSetList *, int, const char *))global[SET_CSET_STR_VAR])
470
471
#define get_dllint_var (*(int (*)(char *))global[GET_DLLINT_VAR])
472
#define set_dllint_var (*(void (*)(char *, unsigned int ))global[SET_DLLINT_VAR])
473
#define get_dllstring_var (*(char *(*)(char *))global[GET_DLLSTRING_VAR])
474
#define set_dllstring_var (*(void (*)(char *, char *))global[SET_DLLSTRING_VAR])
475
476
#define get_int_var (*(int (*)(enum VAR_TYPES ))global[GET_INT_VAR])
477
#define set_int_var (*(void (*)(enum VAR_TYPES , unsigned int ))global[SET_INT_VAR])
478
#define get_string_var (*(char *(*)(enum VAR_TYPES ))global[GET_STRING_VAR])
479
#define set_string_var (*(void (*)(enum VAR_TYPES , char *))global[SET_STRING_VAR])
480
481
482
/* module.c */
483
#define add_module_proc (*(int (*)(unsigned int , char *, char *, char *, int , int , void *, void *))global[ADD_MODULE_PROC])
484
#define remove_module_proc (*(int (*)(unsigned int , char *, char *, char *))global[REMOVE_MODULE_PROC])
485
486
487
/* timer.c */
488
#define add_timer (*(char *(*)(int , char *, double , long , int (*)(void *, char *), char *, char *, int , char *))global[ADD_TIMER])
489
#define delete_timer (*(int (*)(char *))global[DELETE_TIMER])
490
#define delete_all_timers (*(void (*)(void ))global[DELETE_ALL_TIMERS])
491
492
493
494
/* server.c */
495
#define send_to_server (*(void (*)(const char *, ...))global[SEND_TO_SERVER])
496
#define queue_send_to_server (*(void (*)(int, const char *, ...))global[QUEUE_SEND_TO_SERVER])
497
#define my_send_to_server (*(void (*)(int, const char *, ...))global[MY_SEND_TO_SERVER])
498
#define get_connected (*(void (*)(int , int ))global[GET_CONNECTED])
499
#define connect_to_server_by_refnum (*(int (*)(int , int ))global[CONNECT_TO_SERVER_BY_REFNUM])
500
#define close_server (*(void (*)(int , char *))global[CLOSE_SERVER])
501
#define is_server_connected (*(int (*)(int ))global[IS_SERVER_CONNECTED])
502
#define flush_server (*(void (*)(void ))global[FLUSH_SERVER])
503
#define server_is_connected (*(void (*)(int , int ))global[SERVER_IS_CONNECTED])
504
#define is_server_open (*(int (*)(int ))global[IS_SERVER_OPEN])
505
#define close_all_server (*(void (*)(void ))global[CLOSE_ALL_SERVER])
506
507
#define read_server_file (*(int (*)(char *))global[READ_SERVER_FILE])
508
#define add_to_server_list (*(void (*)(char *, int , char *, char *, char *, char *, char *, int , int ))global[ADD_TO_SERVER_LIST])
509
#define build_server_list (*(int (*)(char *))global[BUILD_SERVER_LIST])
510
#define display_server_list (*(void (*)(void ))global[DISPLAY_SERVER_LIST])
511
#define create_server_list (*(char *(*)(char *))global[CREATE_SERVER_LIST])
512
#define parse_server_info (*(void (*)(char *, char **, char **, char **, char **, char **, char **))global[PARSE_SERVER_INFO])
513
#define server_list_size (*(int (*)(void ))global[SERVER_LIST_SIZE])
514
515
#define find_server_refnum (*(int (*)(char *, char **))global[FIND_SERVER_REFNUM])
516
#define find_in_server_list (*(int (*)(char *, int ))global[FIND_IN_SERVER_LIST])
517
#define parse_server_index (*(int (*)(char *))global[PARSE_SERVER_INDEX])
518
519
#define set_server_redirect (*(void (*)(int , const char *))global[SET_SERVER_REDIRECT])
520
#define get_server_redirect (*(char *(*)(int ))global[GET_SERVER_REDIRECT])
521
#define check_server_redirect (*(int (*)(char *))global[CHECK_SERVER_REDIRECT])
522
#define fudge_nickname (*(void (*)(int , int ))global[FUDGE_NICKNAME])
523
#define reset_nickname (*(void (*)(int ))global[RESET_NICKNAME])
524
525
#define set_server_cookie (*(void (*)(int , char *))global[SET_SERVER_COOKIE])
526
#define set_server_flag (*(void (*)(int , int , int ))global[SET_SERVER_FLAG])
527
#define set_server_motd (*(void (*)(int , int ))global[SET_SERVER_MOTD])
528
#define set_server_operator (*(void (*)(int , int ))global[SET_SERVER_OPERATOR])
529
#define set_server_itsname (*(void (*)(int , char *))global[SET_SERVER_ITSNAME])
530
#define set_server_version (*(void (*)(int , int ))global[SET_SERVER_VERSION])
531
#define set_server_lag (*(void (*)(int , int ))global[SET_SERVER_LAG])
532
#define set_server_password (*(char *(*)(int , char *))global[SET_SERVER_PASSWORD])
533
#define set_server_nickname (*(void (*)(int , char *))global[SET_SERVER_NICKNAME])
534
#define set_server2_8 (*(void (*)(int , int ))global[SET_SERVER2_8])
535
#define set_server_away (*(void (*)(int , char *, int ))global[SET_SERVER_AWAY])
536
537
#define get_server_cookie (*(char *(*)(int ))global[GET_SERVER_COOKIE])
538
#define get_server_nickname (*(char *(*)(int ))global[GET_SERVER_NICKNAME])
539
#define get_server_name (*(char *(*)(int ))global[GET_SERVER_NAME])
540
#define get_server_itsname (*(char *(*)(int ))global[GET_SERVER_ITSNAME])
541
#define get_server_motd (*(int (*)(int ))global[GET_SERVER_MOTD])
542
#define get_server_operator (*(int (*)(int ))global[GET_SERVER_OPERATOR])
543
#define get_server_version (*(int (*)(int ))global[GET_SERVER_VERSION])
544
#define get_server_flag (*(int (*)(int , int ))global[GET_SERVER_FLAG])
545
#define get_possible_umodes (*(char *(*)(int ))global[GET_POSSIBLE_UMODES])
546
#define get_server_port (*(int (*)(int ))global[GET_SERVER_PORT])
547
#define get_server_lag (*(int (*)(int ))global[GET_SERVER_LAG])
548
#define get_server2_8 (*(int (*)(int ))global[GET_SERVER2_8])
549
#define get_umode (*(char *(*)(int ))global[GET_UMODE])
550
#define get_server_away (*(char *(*)(int ))global[GET_SERVER_AWAY])
551
#define get_server_network (*(char *(*)(int ))global[GET_SERVER_NETWORK])
552
#define get_pending_nickname (*(char *(*)(int ))global[GET_PENDING_NICKNAME])
553
#define server_disconnect (*(void (*)(int , char *))global[SERVER_DISCONNECT])
554
555
#define get_server_list (*(Server *(*)(void))global[GET_SERVER_LIST])
556
#define get_server_channels (*(ChannelList *(*)(int))global[GET_SERVER_CHANNELS])
557
558
#define set_server_last_ctcp_time (*(void (*)(int , time_t))global[SET_SERVER_LAST_CTCP_TIME])
559
#define get_server_last_ctcp_time (*(time_t (*)(int))global[GET_SERVER_LAST_CTCP_TIME])
560
#define set_server_trace_flag (*(void (*)(int , int ))global[SET_SERVER_TRACE_FLAG])
561
#define get_server_trace_flag (*(int (*)(int ))global[GET_SERVER_TRACE_FLAG])
562
#define get_server_read (*(int (*)(int ))global[GET_SERVER_READ])
563
#define get_server_linklook (*(int (*)(int ))global[GET_SERVER_LINKLOOK])
564
#define set_server_linklook (*(void (*)(int , int ))global[SET_SERVER_LINKLOOK])
565
#define get_server_stat_flag (*(int (*)(int ))global[GET_SERVER_STAT_FLAG])
566
#define set_server_stat_flag (*(void (*)(int , int ))global[SET_SERVER_STAT_FLAG])
567
#define get_server_linklook_time (*(time_t (*)(int ))global[GET_SERVER_LINKLOOK_TIME])
568
#define set_server_linklook_time (*(void (*)(int , time_t))global[SET_SERVER_LINKLOOK_TIME])
569
#define get_server_trace_kill (*(int (*)(int ))global[GET_SERVER_TRACE_KILL])
570
#define set_server_trace_kill (*(void (*)(int , int ))global[SET_SERVER_TRACE_KILL])
571
#define add_server_channels (*(void (*)(int, ChannelList *))global[ADD_SERVER_CHANNELS])
572
#define set_server_channels (*(void (*)(int, ChannelList *))global[SET_SERVER_CHANNELS])
573
#define send_msg_to_channels (*(void (*)(ChannelList *, int, char *))global[SEND_MSG_TO_CHANNELS])
574
#define send_msg_to_nicks (*(void (*)(ChannelList *, int, char *))global[SEND_MSG_TO_NICKS])
575
#define is_server_queue (*(int (*)(void ))global[IS_SERVER_QUEUE])
576
577
578
/* sockets */
579
#define add_socketread (*(int (*)(int, int, unsigned long, char *, void (*)(int), void (*)(int)))global[ADD_SOCKETREAD])
580
#define add_sockettimeout (*(void (*)(int , time_t, void *))global[ADD_SOCKETTIMEOUT])
581
#define close_socketread (*(void (*)(int ))global[CLOSE_SOCKETREAD])
582
#define get_socket (*(SocketList *(*)(int ))global[GET_SOCKET])
583
#define set_socketflags (*(unsigned long (*)(int , unsigned long ))global[SET_SOCKETFLAGS])
584
#define get_socketflags (*(unsigned long (*)(int ))global[GET_SOCKETFLAGS])
585
#define check_socket (*(int (*)(int ))global[CHECK_SOCKET])
586
#define read_sockets (*(int (*)(int , unsigned char *, int ))global[READ_SOCKETS])
587
#define write_sockets (*(int (*)(int , unsigned char *, int , int ))global[WRITE_SOCKETS])
588
#define get_max_fd (*(int (*)(void ))global[GET_MAX_FD])
589
#define new_close (*(int (*)(int ))global[NEW_CLOSE])
590
#define new_open (*(int (*)(int ))global[NEW_OPEN])
591
#define dgets (*(int (*)(char *, int , int , int , void *))global[DGETS])
592
#define get_socketinfo (*(void *(*)(int ))global[GET_SOCKETINFO])
593
#define set_socketinfo (*(void (*)(int , void *))global[SET_SOCKETINFO])
594
#define set_socket_write (*(int (*)(int ))global[SET_SOCKETWRITE])
595
596
597
/* flood.c */
598
#define is_other_flood (*(int (*)(ChannelList *, NickList *, int, int *))global[IS_OTHER_FLOOD])
599
#define check_flooding (*(int (*)(char *, int , char *, char *))global[CHECK_FLOODING])
600
#define flood_prot (*(int (*)(char *, char *, char *, int , int , char *))global[FLOOD_PROT])
601
602
/* expr.c */
603
#define next_unit (*(char *(*)(char *, const char *, int *, int ))global[NEXT_UNIT])
604
#define parse_inline (*(char *(*)(char *, const char *, int *))global[PARSE_INLINE])
605
#define expand_alias (*(char *(*)(const char *, const char *, int *, char **))global[EXPAND_ALIAS])
606
#define alias_special_char (*(char *(*)(char **, char *, const char *, char *, int *))global[ALIAS_SPECIAL_CHAR])
607
#define parse_line (*(void (*)(const char *, char *, const char *, int , int , int ))global[PARSE_LINE])
608
#define parse_command (*(int (*)(char *, int , char *))global[PARSE_COMMAND_FUNC])
609
#define make_local_stack (*(void (*)(char *))global[MAKE_LOCAL_STACK])
610
#define destroy_local_stack (*(void (*)(void ))global[DESTROY_LOCAL_STACK])
611
612
613
/* dcc.c */
614
#define dcc_create (*(DCC_int *(*)(char *, char *, char *, unsigned long, int, int, unsigned long, void (*)(int)))global[DCC_CREATE_FUNC])
615
#define find_dcc (*(SocketList *(*)(char *, char *, char *, int, int, int, int))global[FIND_DCC_FUNC])
616
#define erase_dcc_info (*(void (*)(int, int, char *, ...))global[ERASE_DCC_INFO])
617
#define add_dcc_bind (*(int (*)(char *, char *, void *, void *, void *, void *, void *))global[ADD_DCC_BIND])
618
#define remove_dcc_bind (*(int (*)(char *, int ))global[REMOVE_DCC_BIND])
619
#define remove_all_dcc_binds (*(int (*)(char *))global[REMOVE_ALL_DCC_BINDS])
620
#define get_active_count (*(int (*)(void ))global[GET_ACTIVE_COUNT])
621
#define get_num_queue (*(int (*)(void ))global[GET_NUM_QUEUE])
622
#define add_to_queue (*(int (*)(char *, char *, pack *))global[ADD_TO_QUEUE])
623
#define dcc_filesend (*(void (*)(char *, char *))global[DCC_FILESEND])
624
#define dcc_resend (*(void (*)(char *, char *))global[DCC_RESEND])
625
626
/* irc.c */
627
#define irc_exit (*(void (*)(int, char *, char *, ...))global[IRC_EXIT_FUNC])
628
#define io (*(void (*)(const char *))global[IRC_IO_FUNC])
629
630
/* commands.c */
631
#define find_command (*(IrcCommand *(*)(char *, int *))global[FIND_COMMAND_FUNC])
632
633
#define lock_stack_frame (*(void (*)(void ))global[LOCK_STACK_FRAME])
634
#define unlock_stack_frame (*(void (*)(void ))global[UNLOCK_STACK_FRAME])
635
636
/* who.c */
637
#define userhostbase (*(void (*)(char *, void (*)(UserhostItem *, char *, char *), int, char *, ...))global[USERHOSTBASE])
638
#define isonbase (*(void (*)(char *, void (*)(char *, char *)))global[ISONBASE])
639
#define whobase (*(void (*)(char *, void (*)(WhoEntry *, char *, char **), void (*)(WhoEntry *, char *, char **), char *, ...))global[WHOBASE])
640
641
#define add_to_window_list (*(Window *(*)(struct ScreenStru *, Window *))global[ADD_TO_WINDOW_LIST])
642
643
/*
644
* Rest of these are all variables of various sorts.
645
*/
646
647
#ifndef MAIN_SOURCE
648
649
#define nickname ((char *) *global[NICKNAME])
650
#define irc_version ((char *) *global[IRC_VERSION])
651
652
#define from_server (*(int *)global[FROM_SERVER])
653
#define connected_to_server ((int) *((int *)global[CONNECTED_TO_SERVER]))
654
#define primary_server ((int) *((int *)global[PRIMARY_SERVER]))
655
#define parsing_server_index ((int) *((int *)global[PARSING_SERVER_INDEX]))
656
#define now ((time_t) *((time_t *)global[NOW]))
657
#define start_time ((time_t) *((time_t *)global[START_TIME]))
658
#define idle_time() ((time_t) *((time_t *)global[IDLE_TIME]()))
659
660
#define loading_global (*((int *)global[LOADING_GLOBAL]))
661
#define target_window (*((Window **)global[TARGET_WINDOW]))
662
#define current_window (*((Window **)global[CURRENT_WINDOW]))
663
#define invisible_list (*((Window **)global[INVISIBLE_LIST]))
664
#define main_screen (*((Screen **)global[MAIN_SCREEN]))
665
#define last_input_screen (*((Screen **)global[LAST_INPUT_SCREEN]))
666
#define output_screen (*((Screen **)global[OUTPUT_SCREEN]))
667
#define screen_list (*((Screen **)global[SCREEN_LIST]))
668
#define irclog_fp (*((FILE **)global[IRCLOG_FP]))
669
#define dll_functions (*((BuiltInDllFunctions **)global[DLL_FUNCTIONS]))
670
#define dll_numeric (*((NumericFunction **)global[DLL_NUMERIC]))
671
#define dll_commands (*((IrcCommandDll **)global[DLL_COMMANDS]))
672
#define dll_variable (*((IrcVariableDll **)global[DLL_VARIABLE]))
673
#define dll_ctcp (*((CtcpEntryDll **)global[DLL_CTCP]))
674
#define dll_window (*((WindowDll **)global[DLL_WINDOW]))
675
#define window_display ((int) *((int *)global[WINDOW_DISPLAY]))
676
#define status_update_flag ((int) *((int *)global[STATUS_UPDATE_FLAG]))
677
#define tabkey_array (*((NickTab **)global[TABKEY_ARRAY]))
678
#define autoreply_array (*((NickTab *)global[AUTOREPLY_ARRAY]))
679
#define identd (*((int *)global[IDENTD_SOCKET]))
680
#define doing_notice ((int) *((int *)global[DOING_NOTICE]))
681
682
#define default_output_function (*(void (**)(char *))global[DEFAULT_OUTPUT_FUNCTION])
683
684
#define serv_open_func (*(int (**)(int, unsigned long, int))global[SERV_OPEN_FUNC])
685
#define serv_input_func (*(int (**)(int, char *, int, int, int))global[SERV_INPUT_FUNC])
686
#define serv_output_func (*(int (**)(int, int, char *, int))global[SERV_OUTPUT_FUNC])
687
#define serv_close_func (*(int (**)(int, unsigned long, int))global[SERV_CLOSE_FUNC])
688
#if 0
689
#define check_ext_mail_status (*(int (**)()) global[CHECK_EXT_MAIL_STATUS])
690
#define check_ext_mail (*(char *(**)())global[CHECK_EXT_MAIL])
691
#endif
692
693
#ifdef WANT_TCL
694
#define tcl_interp ((Tcl_Interp *)((Tcl_Interp **)(global[VAR_TCL_INTERP])))
695
#else
696
#define tcl_interp NULL
697
#endif
698
#else
699
#undef get_time
700
#define get_time(a) BX_get_time(a)
701
#endif /* MAIN_SOURCE */
702
703
#ifdef GUI
704
#ifndef MAIN_SOURCE
705
#define lastclicklinedata ((char *) *global[LASTCLICKLINEDATA])
706
#define contextx ((int) *((int *)global[CONTEXTX]))
707
#define contexty ((int) *((int *)global[CONTEXTY]))
708
#define guiipc ((int) *((int *)global[GUIIPC]))
709
#endif
710
#define gui_mutex_lock() ((void (*)(void)) global[GUI_MUTEX_LOCK])()
711
#define gui_mutex_unlock() ((void (*)(void))global[GUI_MUTEX_UNLOCK])()
712
#endif
713
714
#endif /* WTERM_C || STERM_C */
715
#endif
716
717