diff --git a/dll/aim/aim.c b/dll/aim/aim.c index 565a378..4721a58 100644 --- a/dll/aim/aim.c +++ b/dll/aim/aim.c @@ -304,7 +304,7 @@ void toggle_aimwin (Window *win, char *unused, int onoff){ tmp->query_cmd = m_strdup("asay"); tmp->double_status = 0; tmp->absolute_size = 1; - tmp->update_window_status = update_aim_window; + tmp->update_status = update_aim_window; tmp->server = -2; set_wset_string_var(tmp->wset, STATUS_FORMAT1_WSET, NULL); set_wset_string_var(tmp->wset, STATUS_FORMAT2_WSET, NULL); diff --git a/dll/nap/nap.c b/dll/nap/nap.c index e7cc1e1..426ce79 100644 --- a/dll/nap/nap.c +++ b/dll/nap/nap.c @@ -1286,7 +1286,7 @@ Window *tmp; tmp->query_cmd = m_strdup("nsay"); tmp->double_status = 0; tmp->absolute_size = 1; - tmp->update_window_status = update_napster_window; + tmp->update_status = update_napster_window; tmp->server = -2; set_wset_string_var(tmp->wset, STATUS_FORMAT1_WSET, NULL); set_wset_string_var(tmp->wset, STATUS_FORMAT2_WSET, NULL); diff --git a/include/dcc.h b/include/dcc.h index 3c75644..9cc1e7c 100644 --- a/include/dcc.h +++ b/include/dcc.h @@ -113,22 +113,20 @@ #define DCC_STATES 0xffffff00 -#define DCC_COMMAND(x) void x (char *command, char *args) - int check_dcc_list (char *); int dcc_exempt_save (FILE *); - DCC_COMMAND(BX_dcc_filesend); - DCC_COMMAND(BX_dcc_resend); - DCC_COMMAND(dcc_stats); - DCC_COMMAND(dcc_chat); - DCC_COMMAND(dcc_ftpopen); - DCC_COMMAND(dcc_glist); - DCC_COMMAND(dcc_chatbot); - DCC_COMMAND(dcc_resume); - DCC_COMMAND(dcc_rename); + void BX_dcc_filesend(char *, char *); + void BX_dcc_resend(char *, char *); + void dcc_stats(char *, char *); + void dcc_chat(char *, char *); + void dcc_ftpopen(char *, char *); + void dcc_glist(char *, char *); + void dcc_chatbot(char *, char *); + void dcc_resume(char *, char *); + void dcc_rename(char *, char *); - int BX_get_active_count(); + int BX_get_active_count(void); int dcc_ftpcommand(char *, char *); void process_dcc(char *); int dcc_activechat(char *); /* identify all active chat dcc's */ diff --git a/include/ircaux.h b/include/ircaux.h index a37f703..46370f9 100644 --- a/include/ircaux.h +++ b/include/ircaux.h @@ -138,7 +138,7 @@ char * urldecode (char *); /* From words.c */ #define SOS -32767 #define EOS 32767 -char *BX_search (register char *, char **, char *, int); +char *BX_strsearch (register char *, char *, char *, int); char *BX_move_to_abs_word (const register char *, char **, int); char *BX_move_word_rel (const register char *, char **, int); char *BX_extract (char *, int, int); @@ -197,16 +197,16 @@ int lame_resolv (const char *, struct sockaddr_foobar *); ((double)x/_1KB): (double)x)))) ) void *n_malloc (size_t, const char *, const char *, const int); -void *n_realloc (void **, size_t, const char *, const char *, const int); +void *n_realloc (void *, size_t, const char *, const char *, const int); -void *n_free (void **, const char *, const char *, const int); +void *n_free (void *, const char *, const char *, const int); #define MODULENAME NULL #define new_malloc(x) n_malloc(x, MODULENAME, __FILE__, __LINE__) -#define new_free(x) n_free((void **)(x), MODULENAME, __FILE__, __LINE__) +#define new_free(x) (*(x) = n_free(*(x), MODULENAME, __FILE__, __LINE__)) -#define RESIZE(x, y, z) n_realloc ((void **)& (x), sizeof(y) * (z), MODULENAME, __FILE__, __LINE__) +#define RESIZE(x, y, z) ((x) = n_realloc((x), sizeof(y) * (z), MODULENAME, __FILE__, __LINE__)) #define malloc_strcpy(x, y) n_malloc_strcpy((char **)x, (char *)y, MODULENAME, __FILE__, __LINE__) #define malloc_strcat(x, y) n_malloc_strcat((char **)x, (char *)y, MODULENAME, __FILE__, __LINE__) #define m_strdup(x) n_m_strdup(x, MODULENAME, __FILE__, __LINE__) diff --git a/include/module.h b/include/module.h index 413eb82..51d2950 100644 --- a/include/module.h +++ b/include/module.h @@ -200,7 +200,7 @@ enum FUNCTION_VALUE RANDOM_NUMBER, /* words.c */ - SEARCH, + STRSEARCH, MOVE_TO_ABS_WORD, MOVE_WORD_REL, EXTRACT, @@ -504,9 +504,9 @@ enum FUNCTION_VALUE STATUS_UPDATE, SET_PROMPT_BY_REFNUM, GET_PROMPT_BY_REFNUM, - QUERY_NICK, - QUERY_HOST, - QUERY_CMD, + QUERY_NICK, /* DEFUNCT */ + QUERY_HOST, /* DEFUNCT */ + QUERY_CMD, /* DEFUNCT */ GET_TARGET_BY_REFNUM, GET_TARGET_CMD_BY_REFNUM, GET_WINDOW_TARGET_BY_DESC, @@ -545,7 +545,7 @@ enum FUNCTION_VALUE SCROLLBACK_BACKWARDS, SCROLLBACK_END, SCROLLBACK_START, - HOLD_MODE, + SET_HOLD_MODE, UNHOLD_WINDOWS, FUNC_UNSTOP_ALL_WINDOWS, RESET_LINE_CNT, diff --git a/include/modval.h b/include/modval.h index 895da16..b1adb2d 100644 --- a/include/modval.h +++ b/include/modval.h @@ -84,7 +84,7 @@ extern Function_ptr *global; #define MODULENAME _modname_ -#define check_module_version(x) ((int) (global[MODULE_VERSION_CHECK]((unsigned long)x))) +#define check_module_version (*(int (*)(unsigned long))global[MODULE_VERSION_CHECK]) #define set_dll_name(x) malloc_strcpy(&_modname_, x) #define set_global_func(x) global = x; #define initialize_module(x) { \ @@ -107,531 +107,537 @@ extern Function_ptr *global; #define snprintf ((char * (*)())global[SNPRINTF]) #endif +/* Changed these to cast the function pointer rather than the arguments and result. The old method wasn't portable to + * some 64 bit platforms. Next step - change instances of global[XYZ] to &xyzfunc in the code. + * + * Should also think about standardising types (eg Screen instead of struct ScreenStru, get rid of u_char). + */ /* ircaux.c */ -#define new_malloc(x) ((void *)(global[NEW_MALLOC]((x),MODULENAME, __FILE__,__LINE__))) -#define new_free(x) ((void *)(global[NEW_FREE]((x),MODULENAME, __FILE__,__LINE__))) -#define RESIZE(x, y, z) ((void *)(global[NEW_REALLOC]((void **)& (x), sizeof(y) * (z), MODULENAME, __FILE__, __LINE__))) -#define malloc_strcpy(x, y) ((char *)(global[MALLOC_STRCPY]((char **)x, (char *)y, MODULENAME, __FILE__, __LINE__))) -#define malloc_strcat(x, y) ((char *)(global[MALLOC_STRCAT]((char **)x, (char *)y, MODULENAME, __FILE__, __LINE__))) -#define malloc_str2cpy(x, y, z) ((char *)(global[MALLOC_STR2CPY]((char **)x, (char *)y, (char *)z))) -#define m_3dup(x, y, z) ((char *) (global[M_3DUP]((char *)x, (char *)y, (char *)z))) -#define m_opendup ((char * (*)())global[M_OPENDUP]) -#define m_s3cat(x, y, z) ((char *)(global[M_S3CAT]((char **)x, (char *)y, (char *)z))) -#define m_s3cat_s(x, y, z) ((char *)(global[M_S3CAT_S]((char **)x, (char *)y, (char *)z))) -#define m_3cat(x, y, z) ((char *) (global[M_3CAT]((char **)x, (char *)y, (char *)z))) -#define m_2dup(x, y) ((char *)(global[M_2DUP]((char *)x, (char *)y))) -#define m_e3cat(x, y, z) ((char *)(global[M_E3CAT]((char **)x, (char *)y, (char *)z))) +#define new_malloc(x) ((void * (*)(size_t, const char *, const char *, int))global[NEW_MALLOC])((x),MODULENAME, __FILE__,__LINE__) +#define new_free(x) (*(x) = ((void * (*)(void *, const char *, const char *, int))global[NEW_FREE])(*(x),MODULENAME, __FILE__,__LINE__)) +#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__)) +#define malloc_strcpy(x, y) ((char * (*)(char **, const char *, const char *, const char *, int))global[MALLOC_STRCPY])((x), (y), MODULENAME, __FILE__, __LINE__) +#define malloc_strcat(x, y) ((char * (*)(char **, const char *, const char *, const char *, int))global[MALLOC_STRCAT])((x), (y), MODULENAME, __FILE__, __LINE__) +#define malloc_str2cpy (*(char * (*)(char **, const char *, const char *))global[MALLOC_STR2CPY]) +#define m_3dup (*(char * (*)(const char *, const char *, const char *))global[M_3DUP]) +#define m_opendup (*(char * (*)(const char *, ...))global[M_OPENDUP]) +#define m_s3cat (*(char * (*)(char **, const char *, const char *))global[M_S3CAT]) +#define m_s3cat_s (*(char * (*)(char **, const char *, const char *))global[M_S3CAT_S]) +#define m_3cat (*(char * (*)(char **, const char *, const char *))global[M_3CAT]) +#define m_2dup (*(char * (*)(const char *, const char *))global[M_2DUP]) +#define m_e3cat (*(char * (*)(char **, const char *, const char *))global[M_E3CAT]) -#define my_stricmp(x, y) ((int)(global[MY_STRICMP]((const unsigned char *)x, (const unsigned char *)y))) -#define my_strnicmp(x, y, n) ((int)(global[MY_STRNICMP]((const unsigned char *)x, (const unsigned char *)y, (int)n))) +#define my_stricmp (*(int (*)(const unsigned char *, const unsigned char *))global[MY_STRICMP]) +#define my_strnicmp (*(int (*)(const unsigned char *, const unsigned char *, size_t))global[MY_STRNICMP]) -#define my_strnstr(x, y, z) ((int) (global[MY_STRNSTR]((const unsigned char *)x, (const unsigned char *)y, (size_t)z))) -#define chop(x, n) ((char *) (global[CHOP]((char *)x, (int)n))) -#define strmcpy(x, y, n) ((char *) (global[STRMCPY]((char *)x, (const char *)y, (int)n))) -#define strmcat(x, y, n) ((char *) (global[STRMCAT]((char *)x, (const char *)y, (int)n))) -#define scanstr(x, y) ((int) (global[SCANSTR]((char *)x, (char *)y))) -#define m_dupchar(c) ((char *) (global[M_DUPCHAR]((int)c))) -#define streq(x, y) ((size_t) (global[STREQ]((const char *)x, (const char *)y))) -#define strieq(x, y) ((size_t) (global[STRIEQ]((const char *)x, (const char *)y))) -#define strmopencat ((char * (*)())global[STRMOPENCAT]) -#define ov_strcpy(x, y) ((char *) (global[OV_STRCPY]((char *)x, (const char *)y))) -#define upper(x) ((char *) (global[UPPER]((char *)x))) -#define lower(x) ((char *) (global[LOWER]((char *)x))) -#define stristr(x, y) ((char *) (global[STRISTR]((const char *)x, (char *)y))) -#define rstristr(x, y) ((char *) (global[RSTRISTR]((char *)x, (char *)y))) -#define word_count(x) ((int) (global[WORD_COUNT]((char *)x))) -#define remove_trailing_spaces(x) ((char *) (global[REMOVE_TRAILING_SPACES]((char *)x))) -#define expand_twiddle(x) ((char *) (global[EXPAND_TWIDDLE]((char *)x))) -#define check_nickname(x) ((char *) (global[CHECK_NICKNAME]((char *)x))) -#define sindex(x, y) ((char *) (global[SINDEX](( char *)x, (char *)y))) -#define rsindex(x, y, z, a) ((char *) (global[RSINDEX](( char *)x, (char *)y, (char *)z, (int)a))) -#define is_number(x) ((int) (global[ISNUMBER]((char *)x))) -#define rfgets(x, n, y) ((char *) (global[RFGETS]((char *)x, (int)n, (FILE *)y))) -#define path_search(x, y) ((char *) (global[PATH_SEARCH]((char *)x, (char *)y))) -#define double_quote(x, y, z) ((char *) (global[DOUBLE_QUOTE]((const char *)x, (const char *)y, (char *)z))) -#define ircpanic (global[IRCPANIC]) -#define end_strcmp(x, y, n) ((int) (global[END_STRCMP]((const char *)x, (const char *)y, (int)n))) -#define beep_em(x) ((void) (global[BEEP_EM]((int)x))) -#define uzfopen(x, y, n) ((FILE *) (global[UZFOPEN]((char **)x, (char *)y, (int)n))) -#define get_time(x) ((global[FUNC_GET_TIME]((struct timeval *)x))) -#define time_diff(x, y) ((double) (global[TIME_DIFF]((struct timeval)x, (struct timeval)y))) -#define time_to_next_minute (int (*)(void)global[TIME_TO_NEXT_MINUTE]) -#define plural(x) ((char *) (global[PLURAL]((int)x))) -#define my_ctime(x) ((char *) (global[MY_CTIME]((time_t)x))) -#define ccspan(x, y) ((size_t) (global[CCSPAN]((char *)x, (int)y))) +#define my_strnstr (*(int (*)(const unsigned char *, const unsigned char *, size_t))global[MY_STRNSTR]) +#define chop (*(char * (*)(char *, int))global[CHOP]) +#define strmcpy (*(char * (*)(char *, const char *, int))global[STRMCPY]) +#define strmcat (*(char * (*)(char *, const char *, int))global[STRMCAT]) +#define scanstr (*(int (*)(char *, char *))global[SCANSTR]) +#define m_dupchar (*(char * (*)(int))global[M_DUPCHAR]) +#define streq (*(size_t (*)(const char *, const char *))global[STREQ]) +#define strieq (*(size_t (*)(const char *, const char *))global[STRIEQ]) +#define strmopencat (*(char * (*)(char *, int , ...))global[STRMOPENCAT]) +#define ov_strcpy (*(char * (*)(char *, const char *))global[OV_STRCPY]) +#define upper (*(char * (*)(char *))global[UPPER]) +#define lower (*(char * (*)(char *))global[LOWER]) +#define stristr (*(char * (*)(const char *, const char *))global[STRISTR]) +#define rstristr (*(char * (*)(char *, char *))global[RSTRISTR]) +#define word_count (*(int (*)(char *))global[WORD_COUNT]) +#define remove_trailing_spaces (*(char * (*)(char *))global[REMOVE_TRAILING_SPACES]) +#define expand_twiddle (*(char * (*)(char *))global[EXPAND_TWIDDLE]) +#define check_nickname (*(char * (*)(char *))global[CHECK_NICKNAME]) +#define sindex (*(char * (*)(char *, char *))global[SINDEX]) +#define rsindex (*(char * (*)(char *, char *, char *, int))global[RSINDEX]) +#define is_number (*(int (*)(const char *))global[ISNUMBER]) +#define rfgets (*(char * (*)(char *, int , FILE *))global[RFGETS]) +#define path_search (*(char * (*)(char *, char *))global[PATH_SEARCH]) +#define double_quote (*(char * (*)(const char *, const char *, char *))global[DOUBLE_QUOTE]) +#define ircpanic (*(void (*)(char *, ...))global[IRCPANIC]) +#define end_strcmp (*(int (*)(const char *, const char *, int))global[END_STRCMP]) +#define beep_em (*(void (*)(int))global[BEEP_EM]) +#define uzfopen (*(FILE * (*)(char **, char *, int))global[UZFOPEN]) +#define get_time (*(struct timeval (*)(struct timeval *))global[FUNC_GET_TIME]) +#define time_diff (*(double (*)(struct timeval , struct timeval))global[TIME_DIFF]) +#define time_to_next_minute (*(int (*)(void))global[TIME_TO_NEXT_MINUTE]) +#define plural (*(char * (*)(int))global[PLURAL]) +#define my_ctime (*(char * (*)(time_t))global[MY_CTIME]) +#define ccspan (*(size_t (*)(const char *, int))global[CCSPAN]) /* If we are in a module, undefine the previous define from ltoa to my_ltoa */ #ifdef ltoa #undef ltoa #endif -#define ltoa(x) ((char *) (global[LTOA]((long)x))) -#define strformat(x, y, n, z) ((char *) (global[STRFORMAT]((char *)x, (char *)y, (int)n, (char)z))) -#define MatchingBracket(x, y, z) ((char *) (global[MATCHINGBRACKET]((char *)x, ( char)y, (char)z))) -#define parse_number(x) ((int) (global[PARSE_NUMBER]((char **)x))) -#define splitw(x, y) ((int) (global[SPLITW]((char *)x, (char ***)y))) -#define unsplitw(x, y) ((char *) (global[UNSPLITW]((char ***)x, (char *)y))) -#define check_val(x) ((int) (global[CHECK_VAL]((char *)x))) -#define on_off(x) ((char *) (global[ON_OFF]((int)x))) -#define strextend(x, y, n) ((char *) (global[STREXTEND]((char *)x, (char)y, (int)n))) -#define strfill(x, n) ((const char *) (global[STRFILL]((char)x, (int)n))) -#define empty(x) ((int) (global[EMPTY_FUNC]((const char *)x))) -#define remove_brackets(x, y, n) ((char *) (global[REMOVE_BRACKETS]((char *)x, (char *)y, (int *)n))) -#define my_atol(x) ((long) (global[MY_ATOL]((char *)x))) -#define strip_control(x, y) ((void) (global[STRIP_CONTROL]((const char *)x, (char *)y))) -#define figure_out_address(a, b, c, d, e, f) ((int) (global[FIGURE_OUT_ADDRESS]((char *)a, (char **)b, (char **)c, (char **)d, (char **)e, (int *)f))) -#define strnrchr(x, y, n) ((char *) (global[STRNRCHR]((char *)x, (char)y, (int)n))) -#define mask_digits(x) ((void) (global[MASK_DIGITS]((char **)x))) -#define ccscpan(x, n) ((size_t) (global[CCSPAN]((const char *)x, (int)n))) -#define charcount(x, y) ((int) (global[CHARCOUNT]((const char *)x, (char)y))) -#define strpcat ((char *) (global[STRPCAT])) -#define strcpy_nocolorcodes(x, y) ((u_char *) (global[STRCPY_NOCOLORCODES]((u_char *)x, (const u_char *)y))) -#define cryptit(x) ((char *) (global[CRYPTIT]((const char *)x))) -#define stripdev(x) ((char *) (global[STRIPDEV]((char *)x))) -#define mangle_line(x, y, z) ((size_t) (global[MANGLE_LINE]((char *)x, (int)y, (size_t)z))) -#define m_strdup(x) ((char *)(global[M_STRDUP]((char *)x, MODULENAME, __FILE__, __LINE__))) -#define m_strcat_ues(x, y, z) ((char *)(global[M_STRCAT_UES](x, y, z, MODULENAME, __FILE__, __LINE__))) -#define m_strndup(x, y) ((char *)(global[M_STRNDUP](x, y, MODULENAME, __FILE__, __LINE__))) -#define malloc_sprintf ((char * (*)())global[MALLOC_SPRINTF]) -#define m_sprintf ((char * (*)())global[M_SPRINTF]) -#define next_arg(x, y) ((char *)(global[NEXT_ARG]((char *)x, (char **)y))) -#define new_next_arg(x, y) ((char *)(global[NEW_NEXT_ARG]((char *)x, (char **)y))) -#define new_new_next_arg(x, y, z) ((char *)(global[NEW_NEW_NEXT_ARG]((char *)x, (char **)y, (char *)z))) -#define last_arg(x) ((char *)(global[LAST_ARG]((char **)x))) -#define next_in_comma_list(x, y) ((char *)(global[NEXT_IN_COMMA_LIST]((char *)x, (char **)y))) -#define random_number(x) ((unsigned long)(global[RANDOM_NUMBER]((unsigned long)x))) +#define ltoa (*(char *(*)(long ))global[LTOA]) +#define strformat (*(char *(*)(char *, const char *, int , char ))global[STRFORMAT]) +#define MatchingBracket (*(char *(*)(char *, char , char ))global[MATCHINGBRACKET]) +#define parse_number (*(int (*)(char **))global[PARSE_NUMBER]) +#define splitw (*(int (*)(char *, char ***))global[SPLITW]) +#define unsplitw (*(char *(*)(char ***, int ))global[UNSPLITW]) +#define check_val (*(int (*)(char *))global[CHECK_VAL]) +#define on_off (*(char *(*)(int ))global[ON_OFF]) +#define strextend (*(char *(*)(char *, char , int ))global[STREXTEND]) +#define strfill (*(const char *(*)(char , int ))global[STRFILL]) +#define empty (*(int (*)(const char *))global[EMPTY_FUNC]) +#define remove_brackets (*(char *(*)(const char *, const char *, int *))global[REMOVE_BRACKETS]) +#define my_atol (*(long (*)(const char *))global[MY_ATOL]) +#define strip_control (*(void (*)(const char *, char *))global[STRIP_CONTROL]) +#define figure_out_address (*(int (*)(char *, char **, char **, char **, char **, int *))global[FIGURE_OUT_ADDRESS]) +#define strnrchr (*(char *(*)(char *, char , int ))global[STRNRCHR]) +#define mask_digits (*(void (*)(char **))global[MASK_DIGITS]) +#define ccscpan (*(size_t (*)(const char *, int))global[CCSPAN]) +#define charcount (*(int (*)(const char *, char ))global[CHARCOUNT]) +#define strpcat (*(char *(*)(char *, const char *, ...))global[STRPCAT]) +#define strcpy_nocolorcodes (*(u_char *(*)(u_char *, const u_char *))global[STRCPY_NOCOLORCODES]) +#define cryptit (*(char *(*)(const char *))global[CRYPTIT]) +#define stripdev (*(char *(*)(char *))global[STRIPDEV]) +#define mangle_line (*(size_t (*)(char *, int, size_t))global[MANGLE_LINE]) +#define m_strdup(x) (*(char *(*)(const char *, const char *, const char *, const int ))global[M_STRDUP])((x), MODULENAME, __FILE__, __LINE__) +#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__) +#define m_strndup(x, y) (*(char *(*)(const char *, size_t, const char *, const char *, const int ))global[M_STRNDUP])((x), (y), MODULENAME, __FILE__, __LINE__) +#define malloc_sprintf (*(char *(*)(char **, const char *, ...))global[MALLOC_SPRINTF]) +#define m_sprintf (*(char *(*)(const char *, ...))global[M_SPRINTF]) +#define next_arg (*(char *(*)(char *, char **))global[NEXT_ARG]) +#define new_next_arg (*(char *(*)(char *, char **))global[NEW_NEXT_ARG]) +#define new_new_next_arg (*(char *(*)(char *, char **, char *))global[NEW_NEW_NEXT_ARG]) +#define last_arg (*(char *(*)(char **))global[LAST_ARG]) +#define next_in_comma_list (*(char *(*)(char *, char **))global[NEXT_IN_COMMA_LIST]) +#define random_number (*(u_long (*)(u_long))global[RANDOM_NUMBER]) /* words.c reg.c */ -#define search(x, y, z, n) ((char *) (global[SEARCH]((char *)x, (char **)y, (char *)z, (int)n))) -#define move_to_abs_word(x, y, n) ((char *) (global[MOVE_TO_ABS_WORD]((char *)x, (char **)y, (int)n))) -#define move_word_rel(x, y, n) ((char *) (global[MOVE_WORD_REL]((char *)x, (char **)y, (int)n))) -#define extract(x, y, n) ((char *) (global[EXTRACT]((char *)x, (int)y, (int)n))) -#define extract2(x, y, n) ((char *) (global[EXTRACT2]((char *)x, (int)y, (int)n))) -#define wild_match(x, y) ((int) (global[WILD_MATCH]((const unsigned char *)x, (const unsigned char *)y))) +#define strsearch (*(char *(*)(char *, char *, char *, int ))global[STRSEARCH]) +#define move_to_abs_word (*(char *(*)(const char *, char **, int ))global[MOVE_TO_ABS_WORD]) +#define move_word_rel (*(char *(*)(const char *, char **, int ))global[MOVE_WORD_REL]) +#define extract (*(char *(*)(char *, int , int ))global[EXTRACT]) +#define extract2 (*(char *(*)(const char *, int , int ))global[EXTRACT2]) +#define wild_match (*(int (*)(const unsigned char *, const unsigned char *))global[WILD_MATCH]) /* network.c */ -#define connect_by_number(a, b, c, d, e) ((int) (global[CONNECT_BY_NUMBER]((char *)a, (unsigned short *)b, (int)c, (int)d, (int)e))) -#define lookup_host(x) ((struct sockaddr_foobar *) (global[LOOKUP_HOST]((const char *)x))) -#define resolv(x) ((struct sockaddr_foobar *) (global[LOOKUP_HOST]((const char *)x))) -#define host_to_ip(x) ((char *) (global[HOST_TO_IP]((const char *)x))) -#define ip_to_host(x) ((char *) (global[IP_TO_HOST]((const char *)x))) -#define one_to_another(x) ((char *) (global[ONE_TO_ANOTHER]((const char *)x))) -#define set_blocking(x) ((int) (global[SET_BLOCKING]((int)x))) -#define set_non_blocking(x) ((int) (global[SET_NON_BLOCKING]((int)x))) +#define connect_by_number (*(int (*)(char *, unsigned short *, int , int , int ))global[CONNECT_BY_NUMBER]) +#define lookup_host (*(struct sockaddr_foobar *(*)(const char *))global[LOOKUP_HOST]) +#define resolv (*(struct sockaddr_foobar *(*)(const char *))global[LOOKUP_HOST]) +#define host_to_ip (*(char *(*)(const char *))global[HOST_TO_IP]) +#define ip_to_host (*(char *(*)(const char *))global[IP_TO_HOST]) +#define one_to_another (*(char *(*)(const char *))global[ONE_TO_ANOTHER]) +#define set_blocking (*(int (*)(int ))global[SET_BLOCKING]) +#define set_non_blocking (*(int (*)(int ))global[SET_NON_BLOCKING]) /* list.c */ -#define add_to_list(x, y) ((void)(global[ADD_TO_LIST]((List **)x, (List *)y))) -#define add_to_list_ext(x, y, f) ((void) (global[ADD_TO_LIST_EXT]((List **)x, (List *)y, (int (*)(List *, List *))f ))) -#define find_in_list(x, y, z) ((List *) (global[FIND_IN_LIST]((List **)x, (char *)y, (int)z))) -#define find_in_list_ext(x, y, n, f) ((List *) (global[FIND_IN_LIST_EXT]((List **)x, (char *)y, (int)n, (int (*)(List *, char *))f ))) -#define remove_from_list(x, y) ((List *) (global[REMOVE_FROM_LIST_]((List **)x, (char *)y))) -#define remove_from_list_ext(x, y, f) ((List *) (global[REMOVE_FROM_LIST_EXT]((List **)x, (char *)y, (int (*)(List *, char *))f))) -#define removewild_from_list(x, y) ((List *) (global[REMOVEWILD_FROM_LIST]((List **)x, (char *)y))) -#define list_lookup(x, y, z, n) ((List *) (global[LIST_LOOKUP]((List **)x, (char *)y, (int)z, (int)n))) -#define list_lookup_ext(x, y, z, n, f) ((List *) (global[LIST_LOOKUP_EXT]((List **)x, (char *)y, (int)z, (int)n, (int (*)(List *, char *))f))) +#define add_to_list (*(void (*)(List **, List *))global[ADD_TO_LIST]) +#define add_to_list_ext (*(void (*)(List **, List *, int (*)(List *, List *)))global[ADD_TO_LIST_EXT]) +#define find_in_list (*(List *(*)(List **, char *, int))global[FIND_IN_LIST]) +#define find_in_list_ext (*(List *(*)(List **, char *, int, int (*)(List *, char *)))global[FIND_IN_LIST_EXT]) +#define remove_from_list (*(List *(*)(List **, char *))global[REMOVE_FROM_LIST_]) +#define remove_from_list_ext (*(List *(*)(List **, char *, int (*)(List *, char *)))global[REMOVE_FROM_LIST_EXT]) +#define removewild_from_list (*(List *(*)(List **, char *))global[REMOVEWILD_FROM_LIST]) +#define list_lookup (*(List *(*)(List **, char *, int, int))global[LIST_LOOKUP]) +#define list_lookup_ext (*(List *(*)(List **, char *, int, int, int (*)(List *, char *)))global[LIST_LOOKUP_EXT]) /* alist.c */ -#define add_to_array(x, y) ((Array_item *) (global[ADD_TO_ARRAY]((Array *)x, (Array_item *)y))) -#define remove_from_array(x, y) ((Array_item *) (global[REMOVE_FROM_ARRAY]((Array *)x, (char *)y))) -#define array_pop(x, y) ((Array_item *) (global[ARRAY_POP]((Array *)x, (int)y))) +#define add_to_array (*(Array_item *(*)(Array *, Array_item *))global[ADD_TO_ARRAY]) +#define remove_from_array (*(Array_item *(*)(Array *, char *))global[REMOVE_FROM_ARRAY]) +#define array_pop (*(Array_item *(*)(Array *, int))global[ARRAY_POP]) -#define remove_all_from_array(x, y) ((Array_item *) (global[REMOVE_ALL_FROM_ARRAY]((Array *)x, (char *)y))) -#define array_lookup(x, y, z, a) ((Array_item *) (global[ARRAY_LOOKUP]((Array *)x, (char *)y, (int)z, (int)a))) -#define find_array_item(x, y, z, a) ((Array_item *) (global[FIND_ARRAY_ITEM]((Array *)x, (char *)y, (int *)z, (int *)a))) +#define remove_all_from_array (*(Array_item *(*)(Array *, char *))global[REMOVE_ALL_FROM_ARRAY]) +#define array_lookup (*(Array_item *(*)(Array *, char *, int, int ))global[ARRAY_LOOKUP]) +#define find_array_item (*(Array_item *(*)(Array *, char *, int *, int *))global[FIND_ARRAY_ITEM]) -#define find_fixed_array_item(a, b, c, d, e, f) ((Array_item *) (global[FIND_FIXED_ARRAY_ITEM]((void *)a, (size_t)b, (int)c, (char *)d, (int *)e, (int *)f))) +#define find_fixed_array_item (*(void *(*)(void *, size_t, int, char *, int *, int *))global[FIND_FIXED_ARRAY_ITEM]) /* output.c */ -#define put_it ((void (*)())global[PUT_IT]) -#define bitchsay ((void (*)())global[BITCHSAY]) -#define yell ((void (*)())global[YELL]) -#define add_to_screen(x) ((void) (global[ADD_TO_SCREEN]((unsigned char *)x))) -#define add_to_log(x, y, z, a) ((void) (global[ADD_TO_LOG]((FILE *)x, (time_t)y, (const char *)z, (int)a))) +#define put_it (*(void (*)(const char *, ...))global[PUT_IT]) +#define bitchsay (*(void (*)(const char *, ...))global[BITCHSAY]) +#define yell (*(void (*)(const char *, ...))global[YELL]) +#define add_to_screen (*(void (*)(unsigned char *))global[ADD_TO_SCREEN]) +#define add_to_log (*(void (*)(FILE *, time_t, const char *, int ))global[ADD_TO_LOG]) -#define bsd_glob(x, y, z, a) ((int) (global[BSD_GLOB]((char *)x, (int)y, (void *)z, (glob_t *)a))) -#define bsd_globfree(x) ((void) (global[BSD_GLOBFREE]((glob_t *)x))) +#define bsd_glob (*(int (*)(const char *, int, int (*)(const char *, int), glob_t *))global[BSD_GLOB]) +#define bsd_globfree (*(void (*)(glob_t *))global[BSD_GLOBFREE]) /* misc commands */ -#define my_encrypt(x, y, z) ((void) (global[MY_ENCRYPT]((char *)x, (int)y, (char *)z))) -#define my_decrypt(x, y, z) ((void) (global[MY_DECRYPT]((char *)x, (int)y, (char *)z))) -#define prepare_command(x, y, z) ((ChannelList *)(global[PREPARE_COMMAND](x, y, z))) -#define convert_output_format ((char * (*)())global[CONVERT_OUTPUT_FORMAT]) -#define userage(x, y) ((void) (global[USERAGE]((char *)x, (char *)y))) -#define send_text(x, y, z, a, b) ((void) (global[SEND_TEXT]((char *)x, (const char *)y, (char *)z, (int)a, (int)b))) +#define my_encrypt (*(void (*)(char *, int , char *))global[MY_ENCRYPT]) +#define my_decrypt (*(void (*)(char *, int , char *))global[MY_DECRYPT]) +#define prepare_command (*(ChannelList *(*)(int *, char *, int))global[PREPARE_COMMAND]) +#define convert_output_format (*(char *(*)(const char *, const char *, ...))global[CONVERT_OUTPUT_FORMAT]) +#define userage (*(void (*)(char *, char *))global[USERAGE]) +#define send_text (*(void (*)(const char *, const char *, char *, int , int ))global[SEND_TEXT]) /* this needs to be worked out. it's passed in the IrcVariable * to _Init */ -#define load(a, b, c, d) ((void) (global[FUNC_LOAD]((char *)a, (char *)b, (char *)c, (char *)d))) -#define update_clock(x) ((char *)(global[UPDATE_CLOCK](x))) -#define PasteArgs(x, n) ((char *) (global[PASTEARGS]((char **)x, (int)n))) -#define BreakArgs(x, y, z, n) ((int) (global[BREAKARGS]((char *)x, (char **)y, (char **)z, (int)n))) +#define load (*(void (*)(char *, char *, char *, char *))global[FUNC_LOAD]) +#define update_clock (*(char *(*)(int ))global[UPDATE_CLOCK]) +#define PasteArgs (*(char *(*)(char **, int ))global[PASTEARGS]) +#define BreakArgs (*(int (*)(char *, char **, char **, int ))global[BREAKARGS]) -#define set_lastlog_msg_level(x) ((unsigned long) (global[SET_LASTLOG_MSG_LEVEL]((unsigned long)x))) -#define split_CTCP(x, y, z) ((void) (global[SPLIT_CTCP]((char *)x, (char *)y, (char *)z))) -#define random_str(x, y) ((char *) (global[RANDOM_STR]((int)x, (int)y))) -#define dcc_printf ((int (*)())global[DCC_PRINTF]) +#define set_lastlog_msg_level (*(unsigned long (*)(unsigned long ))global[SET_LASTLOG_MSG_LEVEL]) +#define split_CTCP (*(void (*)(char *, char *, char *))global[SPLIT_CTCP]) +#define random_str (*(char *(*)(int , int ))global[RANDOM_STR]) +#define dcc_printf (*(int (*)(int, char *, ...))global[DCC_PRINTF]) /* screen.c */ -#define prepare_display(x, y, z, a) ((unsigned char **) (global[PREPARE_DISPLAY]((const unsigned char *)x, (int)y, (int *)z, (int)a))) -#define add_to_window(x, y) ((void) (global[ADD_TO_WINDOW]((Window *)x, (const unsigned char *)y))) -#define skip_incoming_mirc(x) ((unsigned char *) (global[SKIP_INCOMING_MIRC]((unsigned char *)x))) -#define add_to_screen(x) ((void) (global[ADD_TO_SCREEN]((unsigned char *)x))) -#define split_up_line(x, y) ((unsigned char **) (global[SPLIT_UP_LINE]((const unsigned char *)x, (int)y))) -#define output_line(x) ((int) (global[OUTPUT_LINE]((const unsigned char *)x))) -#define output_with_count(x, y, z) ((int) (global[OUTPUT_WITH_COUNT]((const unsigned char *)x, (int)y, (int)z))) -#define scroll_window(x) ((void) (global[SCROLL_WINDOW]((Window *)x))) +#define prepare_display (*(unsigned char **(*)(const unsigned char *, int , int *, int ))global[PREPARE_DISPLAY]) +#define add_to_window (*(void (*)(Window *, const unsigned char *))global[ADD_TO_WINDOW]) +#define skip_incoming_mirc (*(unsigned char *(*)(unsigned char *))global[SKIP_INCOMING_MIRC]) +#define add_to_screen (*(void (*)(unsigned char *))global[ADD_TO_SCREEN]) +#define split_up_line (*(unsigned char **(*)(const unsigned char *, int ))global[SPLIT_UP_LINE]) +#define output_line (*(int (*)(const unsigned char *))global[OUTPUT_LINE]) +#define output_with_count (*(int (*)(const unsigned char *, int , int ))global[OUTPUT_WITH_COUNT]) +#define scroll_window (*(void (*)(Window *))global[SCROLL_WINDOW]) +/* Previous broken definitions - yet it still seemed to work? #define cursor_not_in_display(x) ((void) (global[CURSOR_IN_DISPLAY]((Screen *)x))) #define cursor_in_display(x) ((void) (global[CURSOR_IN_DISPLAY]((Screen *)x))) -#define is_cursor_in_display(x) ((int) (global[IS_CURSOR_IN_DISPLAY]((Screen *)x))) -#define repaint_window(x, y, z) ((void) (global[REPAINT_WINDOW]((Window *)x, (int)y, (int)z))) +*/ +#define cursor_not_in_display (*(void (*)(Screen *))global[CURSOR_NOT_IN_DISPLAY]) +#define cursor_in_display (*(void (*)(Window *))global[CURSOR_IN_DISPLAY]) +#define is_cursor_in_display (*(int (*)(Screen *))global[IS_CURSOR_IN_DISPLAY]) +#define repaint_window (*(void (*)(Window *, int, int))global[REPAINT_WINDOW]) -#define kill_screen(x) ((void) (global[KILL_SCREEN]((Screen *)x))) -#define xterm_settitle ((void (*)(void)) global[XTERM_SETTITLE]) -#define add_wait_prompt(a, b, c, d, e) ((void) (global[ADD_WAIT_PROMPT]((char *)a,(void (*) (char *, char *))b, (char *)c, (int)d, (int)e ))) -#define skip_ctl_c_seq(a, b, c, d) ((const unsigned char *) (global[SKIP_CTL_C_SEQ]((const unsigned char *)a, (int *)b, (int *)c, (int)d))) -#define strip_ansi(x) ((unsigned char *) (global[STRIP_ANSI]((const unsigned char *)x))) +#define kill_screen (*(void (*)(Screen *))global[KILL_SCREEN]) +#define xterm_settitle (*(void (*)(void))global[XTERM_SETTITLE]) +#define add_wait_prompt (*(void (*)(char *, void (*)(char *, char *), char *, int , int ))global[ADD_WAIT_PROMPT]) +#define skip_ctl_c_seq (*(const unsigned char *(*)(const unsigned char *, int *, int *, int ))global[SKIP_CTL_C_SEQ]) +#define strip_ansi (*(unsigned char *(*)(const unsigned char *))global[STRIP_ANSI]) #define create_new_screen ((Screen * (*)(void))global[CREATE_NEW_SCREEN]) #define create_additional_screen ((Window * (*)(void))global[CREATE_ADDITIONAL_SCREEN]) /* window.c */ -#define free_formats(x) ((void) (global[FREE_FORMATS]((Window *)x))) -#define set_screens_current_window(x, y) ((void) (global[SET_SCREENS_CURRENT_WINDOW]((Screen *)x, (Window *)y))) -#define new_window(x) ((Window *) (global[NEW_WINDOW]((Screen *)x))) -#define delete_window(x) ((void) (global[DELETE_WINDOW]((Window *)x))) -#define traverse_all_windows(x) ((int) (global[TRAVERSE_ALL_WINDOWS]((Window **)x))) -#define add_to_invisible_list(x) ((void) (global[ADD_TO_INVISIBLE_LIST]((Window *)x))) -#define remove_window_from_screen(x) ((void) (global[REMOVE_WINDOW_FROM_SCREEN]((Window *)x))) -#define recalculate_window_positions(x) ((void) (global[RECALCULATE_WINDOW_POSITIONS]((Screen *)x))) -#define move_window(x, y) ((void) (global[MOVE_WINDOW]((Window *)x, (int)y))) -#define resize_window(x, y, z) ((void) (global[RESIZE_WINDOW]((int)x, (Window *)y, (int)z))) -#define redraw_all_windows ((void (*)(void)) global[REDRAW_ALL_WINDOWS]) -#define rebalance_windows(x) ((void) (global[REBALANCE_WINDOWS]((Screen *)x))) -#define recalculate_windows(x) ((void) (global[RECALCULATE_WINDOWS]((Screen *)x))) +#define free_formats (*(void (*)(Window *))global[FREE_FORMATS]) +#define set_screens_current_window (*(void (*)(Screen *, Window *))global[SET_SCREENS_CURRENT_WINDOW]) +#define new_window (*(Window *(*)(struct ScreenStru *))global[NEW_WINDOW]) +#define delete_window (*(void (*)(Window *))global[DELETE_WINDOW]) +#define traverse_all_windows (*(int (*)(Window **))global[TRAVERSE_ALL_WINDOWS]) +#define add_to_invisible_list (*(void (*)(Window *))global[ADD_TO_INVISIBLE_LIST]) +#define remove_window_from_screen (*(void (*)(Window *))global[REMOVE_WINDOW_FROM_SCREEN]) +#define recalculate_window_positions (*(void (*)(struct ScreenStru *))global[RECALCULATE_WINDOW_POSITIONS]) +#define move_window (*(void (*)(Window *, int))global[MOVE_WINDOW]) +#define resize_window (*(void (*)(int, Window *, int))global[RESIZE_WINDOW]) +#define redraw_all_windows (*(void (*)(void))global[REDRAW_ALL_WINDOWS]) +#define rebalance_windows (*(void (*)(struct ScreenStru *))global[REBALANCE_WINDOWS]) +#define recalculate_windows (*(void (*)(struct ScreenStru *))global[RECALCULATE_WINDOWS]) -#define update_all_windows ((void (*)(void))global[UPDATE_ALL_WINDOWS]) +#define update_all_windows (*(void (*)(void))global[UPDATE_ALL_WINDOWS]) -#define goto_window(x, y) ((void) (global[GOTO_WINDOW]((Screen *)x, (int)y))) -#define hide_window(x) ((void) (global[HIDE_BX_WINDOW]((Window *)x))) -#define swap_last_window(x, y) ((void) (global[FUNC_SWAP_LAST_WINDOW]((char)x, (char *)y))) -#define swap_next_window(x, y) ((void) (global[FUNC_SWAP_NEXT_WINDOW]((char)x, (char *)y))) -#define swap_previous_window(x, y) ((void) (global[FUNC_SWAP_PREVIOUS_WINDOW]((char)x, (char -#define show_window(x) ((void) (global[SHOW_WINDOW]((Window *)x))) -#define get_status_by_refnum(x, y) ((char *) (global[GET_STATUS_BY_REFNUM]((unsigned int)x, (unsigned int)y))) -#define get_visible_by_refnum(x) ((int) (global[GET_VISIBLE_BY_REFNUM]((char *)x))) -#define get_window_by_desc(x) ((Window *) (global[GET_WINDOW_BY_DESC]((unsigned int)x))) -#define get_window_by_refnum(x) ((Window *) (global[GET_WINDOW_BY_REFNUM]((unsigned int)x))) -#define get_window_by_name(x) ((Window *) (global[GET_WINDOW_BY_NAME]((char *)x))) -#define next_window(x, y) ((void) (global[FUNC_NEXT_WINDOW]((char)x, (char *)y))) -#define previous_window(x, y) ((void) (global[FUNC_PREVIOUS_WINDOW]((char)x, (char *)y))) -#define update_window_status(x, y) ((void) (global[UPDATE_WINDOW_STATUS]((Window *)x, (int)y))) -#define update_all_status(x, y, z) ((void) (global[UPDATE_ALL_STATUS]((Window *)x, (char *)y, (int) z))) -#define update_window_status_all ((void (*)())global[UPDATE_WINDOW_STATUS_ALL]) -#define status_update(x) ((int) (global[STATUS_UPDATE]((int)x))) +/* Several of these are never used! */ +#define goto_window (*(void (*)(Screen *, int))global[GOTO_WINDOW]) +#define hide_window (*(void (*)(Window *))global[HIDE_BX_WINDOW]) +#define swap_last_window (*(void (*)(char , char *))global[FUNC_SWAP_LAST_WINDOW]) +#define swap_next_window (*(void (*)(char , char *))global[FUNC_SWAP_NEXT_WINDOW]) +#define swap_previous_window (*(void (*)(char , char *))global[FUNC_SWAP_PREVIOUS_WINDOW]) +#define show_window (*(void (*)(Window *))global[SHOW_WINDOW]) +#define get_status_by_refnum (*(char *(*)(unsigned , unsigned ))global[GET_STATUS_BY_REFNUM]) +#define get_visible_by_refnum (*(int (*)(char *))global[GET_VISIBLE_BY_REFNUM]) +#define get_window_by_desc (*(Window *(*)(const char *))global[GET_WINDOW_BY_DESC]) +#define get_window_by_refnum (*(Window *(*)(unsigned ))global[GET_WINDOW_BY_REFNUM]) +#define get_window_by_name (*(Window *(*)(const char *))global[GET_WINDOW_BY_NAME]) +#define next_window (*(void (*)(char , char *))global[FUNC_NEXT_WINDOW]) +#define previous_window (*(void (*)(char , char *))global[FUNC_PREVIOUS_WINDOW]) +#define update_window_status (*(void (*)(Window *, int ))global[UPDATE_WINDOW_STATUS]) +#define update_all_status (*(void (*)(Window *, char *, int))global[UPDATE_ALL_STATUS]) +#define update_window_status_all (*(void (*)(void ))global[UPDATE_WINDOW_STATUS_ALL]) +#define status_update (*(int (*)(int ))global[STATUS_UPDATE]) -#define set_prompt_by_refnum(x, y) ((void) (global[SET_PROMPT_BY_REFNUM]((unsigned int)x, (char *)y))) -#define get_prompt_by_refnum(x) ((char *) (global[GET_PROMPT_BY_REFNUM]((unsigned int)x))) -#define query_nick() ((char *)(global[QUERY_NICK])()) -#define query_host() ((char *)(global[QUERY_HOST])()) -#define query_cmd() ((char *)(global[QUERY_CMD])()) -#define get_target_by_refnum(x) ((char *) (global[GET_TARGET_BY_REFNUM]((unsigned int)x))) -#define get_target_cmd_by_refnum(x) ((char *) (global[GET_TARGET_CMD_BY_REFNUM]((unsigned int)x))) -#define get_window_target_by_desc(x) ((Window *) (global[GET_WINDOW_TARGET_BY_DESC]((char *)x))) -#define is_current_channel(x, y, z) ((int) (global[IS_CURRENT_CHANNEL]((char *)x, (int)y, (int)z))) -#define set_current_channel_by_refnum(x, y) ((char *) (global[SET_CURRENT_CHANNEL_BY_REFNUM]((int)x, (char *)y))) -#define get_current_channel_by_refnum(x) ((char *) (global[GET_CURRENT_CHANNEL_BY_REFNUM]((int)x))) -#define get_refnum_by_window(x) ((char *) (global[GET_REFNUM_BY_WINDOW]((Window *)x))) -#define is_bound_to_window(x, y) ((int) (global[IS_BOUND_TO_WINDOW]((Window *)x, (char *)y))) -#define get_window_bound_channel(x) ((Window *) (global[GET_WINDOW_BOUND_CHANNEL]((char *)x))) -#define is_bound_anywhere(x) ((int) (global[IS_BOUND_ANYWHERE]((char *)x))) -#define is_bound(x, y) ((int) (global[IS_BOUND]((char *)x, (int)y))) -#define unbind_channel(x, y) ((void) (global[UNBIND_CHANNEL]((char *)x, (int)y))) -#define get_bound_channel(x) ((char *) (global[GET_BOUND_CHANNEL]((Window *)x))) -#define get_window_server(x) ((int) (global[GET_WINDOW_SERVER]((unsigned int)x))) -#define set_window_server(x, y, z) ((void) (global[SET_WINDOW_SERVER]((int)x, (int)y, (int)z))) -#define window_check_servers ((void (*)(int))global[WINDOW_CHECK_SERVERS]) -#define window_close_server ((void (*)(int))global[WINDOW_CHECK_SERVERS]) -#define change_window_server(x, y) ((void) (global[CHANGE_WINDOW_SERVER]((int)x, (int)y))) -#define set_level_by_refnum(x, y) ((void) (global[SET_LEVEL_BY_REFNUM]((unsigned int)x, (int)y))) -#define message_to(x) ((void) (global[MESSAGE_TO]((unsigned int)x))) -#define clear_window(x) ((void) (global[CLEAR_WINDOW]((Window *)x))) -#define clear_all_windows(x, y) ((void) (global[CLEAR_ALL_WINDOWS]((int)x, (int)y))) -#define clear_window_by_refnum(x) ((void) (global[CLEAR_WINDOW_BY_REFNUM]((unsigned int)x))) -#define unclear_window_by_refnum(x) ((void) (global[UNCLEAR_WINDOW_BY_REFNUM]((unsigned int)x))) -#define set_scroll_lines(x, y, z) ((void) (global[SET_SCROLL_LINES]((Window *)x, (char *)y, (int)y))) -#define set_continued_lines(x, y, z) ((void) (global[SET_CONTINUED_LINES]((Window *)x, (char *)y, (int)y))) -#define current_refnum ((int (*)())global[CURRENT_REFNUM]) -#define number_of_windows_on_screen(x) ((int) (global[NUMBER_OF_WINDOWS_ON_SCREEN]((Window *)x))) -#define set_scrollback_size(x, y, z) ((void) (global[SET_SCROLLBACK_SIZE]((Window *)x, (char *)y, (int)y))) -#define is_window_name_unique(x) ((int) (global[IS_WINDOW_NAME_UNIQUE]((char *)x))) -#define get_nicklist_by_window(x) ((char *) (global[GET_NICKLIST_BY_WINDOW]((Window *)x))) -#define scrollback_backwards_lines(x) ((void) (global[SCROLLBACK_BACKWARDS_LINES]((int)x))) -#define scrollback_forwards_lines(x) ((void) (global[SCROLLBACK_FORWARDS_LINES]((int)x))) -#define scrollback_forwards(x, y) ((void) (global[SCROLLBACK_FORWARDS]((char)x, (char *)y))) -#define scrollback_backwards(x, y) ((void) (global[SCROLLBACK_BACKWARDS]((char)x, (char *)y))) -#define scrollback_end(x, y) ((void) (global[SCROLLBACK_END]((char)x, (char *)y))) -#define scrollback_start(x, y) ((void) (global[SCROLLBACK_START]((char)x, (char *)y))) -#define hold_mode(x, y, z) ((void) (global[HOLD_MODE]((Window *)x, (int)y, (int)z))) -#define unhold_windows ((int (*)())global[UNHOLD_WINDOWS]) -#define unstop_all_windows(x, y) ((void) (global[FUNC_UNSTOP_ALL_WINDOWS]((char)x, (char *)y))) -#define reset_line_cnt(x, y, z) ((void) (global[RESET_LINE_CNT]((Window *)x, (char *)y, (int)z))) -#define toggle_stop_screen(x, y) ((void) (global[TOGGLE_STOP_SCREEN]((char)x, (char *)y))) -#define flush_everything_being_held(x) ((void) (global[FLUSH_EVERYTHING_BEING_HELD]((Window *)x))) -#define unhold_a_window(x) ((int) (global[UNHOLD_A_WINDOW]((Window *)x))) -#define recalculate_window_cursor(x) ((void) (global[RECALCULATE_WINDOW_CURSOR]((Screen *)x))) -#define make_window_current(x) ((void) (global[MAKE_WINDOW_CURRENT]((Window *)x))) -#define clear_scrollback(x) ((void) (global[CLEAR_SCROLLBACK]((Window *)x))) +#define set_prompt_by_refnum (*(void (*)(unsigned , char *))global[SET_PROMPT_BY_REFNUM]) +#define get_prompt_by_refnum (*(char *(*)(unsigned ))global[GET_PROMPT_BY_REFNUM]) +#define get_target_by_refnum (*(char *(*)(unsigned ))global[GET_TARGET_BY_REFNUM]) +#define get_target_cmd_by_refnum (*(char *(*)(u_int))global[GET_TARGET_CMD_BY_REFNUM]) +#define get_window_target_by_desc (*(Window *(*)(char *))global[GET_WINDOW_TARGET_BY_DESC]) +#define is_current_channel (*(int (*)(char *, int , int ))global[IS_CURRENT_CHANNEL]) +#define set_current_channel_by_refnum (*(const char *(*)(unsigned , char *))global[SET_CURRENT_CHANNEL_BY_REFNUM]) +#define get_current_channel_by_refnum (*(char *(*)(unsigned ))global[GET_CURRENT_CHANNEL_BY_REFNUM]) +#define get_refnum_by_window (*(char *(*)(const Window *))global[GET_REFNUM_BY_WINDOW]) +#define is_bound_to_window (*(int (*)(const Window *, const char *))global[IS_BOUND_TO_WINDOW]) +#define get_window_bound_channel (*(Window *(*)(const char *))global[GET_WINDOW_BOUND_CHANNEL]) +#define is_bound_anywhere (*(int (*)(const char *))global[IS_BOUND_ANYWHERE]) +#define is_bound (*(int (*)(const char *, int ))global[IS_BOUND]) +#define unbind_channel (*(void (*)(const char *, int ))global[UNBIND_CHANNEL]) +#define get_bound_channel (*(char *(*)(Window *))global[GET_BOUND_CHANNEL]) +#define get_window_server (*(int (*)(unsigned ))global[GET_WINDOW_SERVER]) +#define set_window_server (*(void (*)(int , int , int ))global[SET_WINDOW_SERVER]) +#define window_check_servers (*(void (*)(int ))global[WINDOW_CHECK_SERVERS]) +#define change_window_server (*(void (*)(int , int ))global[CHANGE_WINDOW_SERVER]) +#define set_level_by_refnum (*(void (*)(unsigned , unsigned long ))global[SET_LEVEL_BY_REFNUM]) +#define message_to (*(void (*)(unsigned long ))global[MESSAGE_TO]) +#define clear_window (*(void (*)(Window *))global[CLEAR_WINDOW]) +#define clear_all_windows (*(void (*)(int , int ))global[CLEAR_ALL_WINDOWS]) +#define clear_window_by_refnum (*(void (*)(unsigned ))global[CLEAR_WINDOW_BY_REFNUM]) +#define unclear_window_by_refnum (*(void (*)(unsigned ))global[UNCLEAR_WINDOW_BY_REFNUM]) +#define set_scroll_lines (*(void (*)(Window *, char *, int))global[SET_SCROLL_LINES]) +#define set_continued_lines (*(void (*)(Window *, char *, int))global[SET_CONTINUED_LINES]) +#define current_refnum (*(unsigned (*)(void ))global[CURRENT_REFNUM]) +#define number_of_windows_on_screen (*(int (*)(Window *))global[NUMBER_OF_WINDOWS_ON_SCREEN]) +#define set_scrollback_size (*(void (*)(Window *, char *, int))global[SET_SCROLLBACK_SIZE]) +#define is_window_name_unique (*(int (*)(char *))global[IS_WINDOW_NAME_UNIQUE]) +#define get_nicklist_by_window (*(char *(*)(Window *))global[GET_NICKLIST_BY_WINDOW]) +#define scrollback_backwards_lines (*(void (*)(int ))global[SCROLLBACK_BACKWARDS_LINES]) +#define scrollback_forwards_lines (*(void (*)(int ))global[SCROLLBACK_FORWARDS_LINES]) +#define scrollback_forwards (*(void (*)(char , char *))global[SCROLLBACK_FORWARDS]) +#define scrollback_backwards (*(void (*)(char , char *))global[SCROLLBACK_BACKWARDS]) +#define scrollback_end (*(void (*)(char , char *))global[SCROLLBACK_END]) +#define scrollback_start (*(void (*)(char , char *))global[SCROLLBACK_START]) +#define set_hold_mode (*(void (*)(Window *, int, int))global[SET_HOLD_MODE]) +#define unhold_windows (*(int (*)(void ))global[UNHOLD_WINDOWS]) +#define unstop_all_windows (*(void (*)(char , char *))global[FUNC_UNSTOP_ALL_WINDOWS]) +#define reset_line_cnt (*(void (*)(Window *, char *, int))global[RESET_LINE_CNT]) +#define toggle_stop_screen (*(void (*)(char , char *))global[FUNC_TOGGLE_STOP_SCREEN]) +#define flush_everything_being_held (*(void (*)(Window *))global[FLUSH_EVERYTHING_BEING_HELD]) +#define unhold_a_window (*(int (*)(Window *))global[UNHOLD_A_WINDOW]) +#define recalculate_window_cursor (*(void (*)(Window *))global[RECALCULATE_WINDOW_CURSOR]) +#define make_window_current (*(void (*)(Window *))global[MAKE_WINDOW_CURRENT]) +#define clear_scrollback (*(void (*)(Window *))global[CLEAR_SCROLLBACK]) -#define set_display_target(x, y) ((void) (global[SET_DISPLAY_TARGET]((const char *)x,(unsigned long)y))) -#define save_display_target(x, y) ((void) (global[SAVE_DISPLAY_TARGET]((const char **)x, (unsigned long *)y))) -#define restore_display_target(x, y) ((void) (global[RESTORE_DISPLAY_TARGET]((const char *)x, (unsigned long)y))) -#define reset_display_target ((void (*)())global[RESET_DISPLAY_TARGET]) +#define set_display_target (*(void (*)(const char *, unsigned long ))global[SET_DISPLAY_TARGET]) +#define save_display_target (*(void (*)(const char **, unsigned long *))global[SAVE_DISPLAY_TARGET]) +#define restore_display_target (*(void (*)(const char *, unsigned long ))global[RESTORE_DISPLAY_TARGET]) +#define reset_display_target (*(void (*)(void ))global[RESET_DISPLAY_TARGET]) -#define build_status(x, y, z) ((void) (global[BUILD_STATUS]((Window *)x, (char *)y, (int)z))) +#define build_status (*(void (*)(Window *, char *, int))global[BUILD_STATUS]) -#define do_hook ((int (*)())global[HOOK]) +#define do_hook (*(int (*)(int, char *, ...))global[HOOK]) /* input.c */ -#define update_input(x) ((void) (global[FUNC_UPDATE_INPUT]((int)x))) -#define cursor_to_input ((void (*)(void)) global[CURSOR_TO_INPUT]) -#define set_input(x) ((void) (global[SET_INPUT]((char *)x))) -#define get_input ((char * (*)(void)) (global[GET_INPUT])) -#define get_input_prompt ((char * (*)(void)) (global[GET_INPUT_PROMPT])) -#define set_input_prompt(x, y, z) ((void) (global[SET_INPUT_PROMPT]((Window *)x, (char *)y, (int)z))) -#define addtabkey(x, y, z) ((void) (global[ADDTABKEY]((char *)x, (char *)y, (int)z))) -#define gettabkey(x, y, z) ((NickTab *) (global[GETTABKEY]((int)x, (int)y, (char *)z))) -#define getnextnick(x, y, z, a) ((NickTab *) (global[GETNEXTNICK]((int)x, (char *)y, (char *)z, (char *)a))) -#define getchannick(x, y) ((char *) (global[GETCHANNICK]((char *)x, (char *)y))) -#define lookup_nickcompletion(x, y) ((NickList *) (global[LOOKUP_NICKCOMPLETION]((ChannelList *)x, (char *)y))) -#define add_completion_type(x, y, z) ((int) (global[ADD_COMPLETION_TYPE]((char *)x, (int)y, (enum completion)z))) +#define update_input (*(void (*)(int ))global[FUNC_UPDATE_INPUT]) +#define cursor_to_input (*(void (*)(void ))global[CURSOR_TO_INPUT]) +#define set_input (*(void (*)(char *))global[SET_INPUT]) +#define get_input (*(char *(*)(void ))global[GET_INPUT]) +#define get_input_prompt (*(char *(*)(void ))global[GET_INPUT_PROMPT]) +#define set_input_prompt (*(void (*)(Window *, char *, int))global[SET_INPUT_PROMPT]) +#define addtabkey (*(void (*)(char *, char *, int ))global[ADDTABKEY]) +#define gettabkey (*(NickTab *(*)(int, int, char *))global[GETTABKEY]) +#define getnextnick (*(NickTab *(*)(int, char *, char *, char *))global[GETNEXTNICK]) +#define getchannick (*(char *(*)(char *, char *))global[GETCHANNICK]) +#define lookup_nickcompletion (*(NickList *(*)(ChannelList *, char *))global[LOOKUP_NICKCOMPLETION]) +#define add_completion_type (*(int (*)(char *, int , enum completion ))global[ADD_COMPLETION_TYPE]) /* names.c */ -#define is_channel(x) ((int) (global[IS_CHANNEL]((char *)x))) -#define make_channel(x) ((char *) (global[MAKE_CHANNEL]((char *)x))) -#define is_chanop(x, y) ((int) (global[IS_CHANOP]((char *)x, (char *)y))) -#define im_on_channel(x, y) ((int) (global[IM_ON_CHANNEL]((char *)x, (int)y))) -#define is_on_channel(x, y, z) ((int) (global[IS_ON_CHANNEL]((char *)x, (int)y, (char *)z))) -#define add_channel(x, y, z) ((ChannelList *) (global[ADD_CHANNEL]((char *)x, (int)y, (int)z))) -#define add_to_channel(a, b, c, d, e, f, g, h, i, j) ((ChannelList *) (global[ADD_TO_CHANNEL]((char *)a, (char *)b, (int)c, (int)d, (int)e, (char *)f, (char *)g, (char *)h, (int)i, (int)j))) -#define get_channel_key(x, y) ((char *) (global[GET_CHANNEL_KEY]((char *)x, (int)y))) -#define recreate_mode(x) ((char *) (global[FUNC_RECREATE_MODE]((ChannelList *)x))) -#define compress_modes(x, y, z, a) ((char *) (global[FUNC_COMPRESS_MODES]((ChannelList *)x, (int)y, (char *)z, (char *)a))) -#define got_ops(x, y) ((int) (global[FUNC_GOT_OPS]((int)x, (ChannelList *)y))) -#define get_channel_bans(x, y, z) ((char *) (global[GET_CHANNEL_BANS]((char *)x, (int)y, (int)z))) -#define get_channel_mode(x, y) ((char *) (global[GET_CHANNEL_MODE]((char *)x, (int)y))) -#define clear_bans(x) ((void) (global[CLEAR_BANS]((ChannelList *)x))) -#define remove_channel(x, y) ((void) (global[REMOVE_CHANNEL]((char *)x, (int)y))) -#define remove_from_channel(a, b, c, d, e) ((void) (global[REMOVE_FROM_CHANNEL]((char *)a, (char *)b, (int)c, (int)d, (char *)e))) -#define rename_nick(x, y, z) ((void) (global[RENAME_NICK]((char *)x, (char *)y, (int)z))) -#define get_channel_oper(x, y) ((int) (global[GET_CHANNEL_OPER]((char *)x, (int)y))) -#define get_channel_halfop(x, y) ((int) (global[GET_CHANNEL_HALFOP]((char *)x, (int)y))) -#define get_channel_voice(x, y) ((int) (global[GET_CHANNEL_VOICE]((char *)x, (int)y))) -#define fetch_userhost(x, y) ((char *) (global[FETCH_USERHOST]((int)x, (char *)y))) -#define create_channel_list(x) ((char *) (global[CREATE_CHANNEL_LIST]((Window *)x))) -#define flush_channel_stats ((void (*)(void)) (global[FLUSH_CHANNEL_STATS])) -#define lookup_channel(x, y, z) ((ChannelList *) (global[LOOKUP_CHANNEL]((char *)x, (int)y, (int)z))) +#define is_channel (*(int (*)(char *))global[IS_CHANNEL]) +#define make_channel (*(char *(*)(char *))global[MAKE_CHANNEL]) +#define is_chanop (*(int (*)(char *, char *))global[IS_CHANOP]) +#define im_on_channel (*(int (*)(char *, int ))global[IM_ON_CHANNEL]) +#define is_on_channel (*(int (*)(char *, int , char *))global[IS_ON_CHANNEL]) +#define add_channel (*(ChannelList *(*)(char *, int, int))global[ADD_CHANNEL]) +#define add_to_channel (*(ChannelList *(*)(char *, char *, int, int, int, char *, char *, char *, int, int))global[ADD_TO_CHANNEL]) +#define get_channel_key (*(char *(*)(char *, int ))global[GET_CHANNEL_KEY]) +#define recreate_mode (*(char *(*)(ChannelList *))global[FUNC_RECREATE_MODE]) +#define do_compress_modes (*(char *(*)(ChannelList *, int, char *, char *))global[FUNC_COMPRESS_MODES]) +#define got_ops (*(int (*)(int, ChannelList *))global[FUNC_GOT_OPS]) +#define get_channel_bans (*(char *(*)(char *, int , int ))global[GET_CHANNEL_BANS]) +#define get_channel_mode (*(char *(*)(char *, int ))global[GET_CHANNEL_MODE]) +#define clear_bans (*(void (*)(ChannelList *))global[CLEAR_BANS]) +#define remove_channel (*(void (*)(char *, int ))global[REMOVE_CHANNEL]) +#define remove_from_channel (*(void (*)(char *, char *, int , int , char *))global[REMOVE_FROM_CHANNEL]) +#define rename_nick (*(void (*)(char *, char *, int ))global[RENAME_NICK]) +#define get_channel_oper (*(int (*)(char *, int ))global[GET_CHANNEL_OPER]) +#define get_channel_halfop (*(int (*)(char *, int ))global[GET_CHANNEL_HALFOP]) +#define get_channel_voice (*(int (*)(char *, int ))global[GET_CHANNEL_VOICE]) +#define fetch_userhost (*(char *(*)(int , char *))global[FETCH_USERHOST]) +#define create_channel_list (*(char *(*)(Window *))global[CREATE_CHANNEL_LIST]) +#define flush_channel_stats (*(void (*)(void ))global[FLUSH_CHANNEL_STATS]) +#define lookup_channel (*(ChannelList *(*)(char *, int, int))global[LOOKUP_CHANNEL]) /* hash.c */ -#define find_nicklist_in_channellist(x, y, z) ((NickList *) (global[FIND_NICKLIST_IN_CHANNELLIST]((char *)x, (ChannelList *)y, (int)z))) -#define add_nicklist_to_channellist(x, y) ((void) (global[ADD_NICKLIST_TO_CHANNELLIST]((NickList *)x, (ChannelList *)y))) -#define next_nicklist(x, y) ((NickList *) (global[NEXT_NICKLIST] ((ChannelList *)x, (NickList *)y))) -#define next_namelist(x, y, z) ((List *) (global[NEXT_NAMELIST]((HashEntry *)x, (List *)y, (unsigned int)z))) -#define add_name_to_genericlist(x, y, z) ((void) (global[ADD_NAME_TO_GENERICLIST]((char *)x, (HashEntry *)y, (unsigned int)z))) -#define find_name_in_genericlist(x, y, z, a) ((List *) (global[FIND_NAME_IN_GENERICLIST]((char *)x, (HashEntry *)y, (unsigned int)z, (int)a))) -#define add_whowas_userhost_channel(x, y) ((void) (global[ADD_WHOWAS_USERHOST_CHANNEL]((WhowasList *)x, (WhowasWrapList *)y))) -#define find_userhost_channel(x, y, z, a) ((WhowasList *) (global[FIND_USERHOST_CHANNEL]((char *)x, (char *)y, (int)z, (WhowasWrapList *)a))) -#define next_userhost(x, y) ((WhowasList *) (global[NEXT_USERHOST]((WhowasWrapList *)x, (WhowasList *)y))) -#define sorted_nicklist(x, y) ((NickList *) (global[SORTED_NICKLIST]((ChannelList *)x, (int)y))) -#define clear_sorted_nicklist(x) ((void)(global[CLEAR_SORTED_NICKLIST](x))) -#define add_name_to_floodlist(a, b, c, d, e) ((Flooding *) (global[ADD_NAME_TO_FLOODLIST]((char *)a, (char *)b, (char *)c, (HashEntry *)d, (unsigned int)e))) -#define find_name_in_floodlist(a, b, c, d, e) ((Flooding *) (global[FIND_NAME_IN_FLOODLIST]((char *)a, (char *)b, (HashEntry *)c, (unsigned int)d, (int)e))) +#define find_nicklist_in_channellist (*(NickList *(*)(char *, ChannelList *, int))global[FIND_NICKLIST_IN_CHANNELLIST]) +#define add_nicklist_to_channellist (*(void (*)(NickList *, ChannelList *))global[ADD_NICKLIST_TO_CHANNELLIST]) +#define next_nicklist (*(NickList *(*)(ChannelList *, NickList *))global[NEXT_NICKLIST]) +#define next_namelist (*(List *(*)(HashEntry *, List *, unsigned int))global[NEXT_NAMELIST]) +#define add_name_to_genericlist (*(void (*)(char *, HashEntry *, unsigned int))global[ADD_NAME_TO_GENERICLIST]) +#define find_name_in_genericlist (*(List *(*)(char *, HashEntry *, unsigned int, int))global[FIND_NAME_IN_GENERICLIST]) +#define add_whowas_userhost_channel (*(void (*)(WhowasList *, WhowasWrapList *))global[ADD_WHOWAS_USERHOST_CHANNEL]) +#define find_userhost_channel (*(WhowasList *(*)(char *, char *, int, WhowasWrapList *))global[FIND_USERHOST_CHANNEL]) +#define next_userhost (*(WhowasList *(*)(WhowasWrapList *, WhowasList *))global[NEXT_USERHOST]) +#define sorted_nicklist (*(NickList *(*)(ChannelList *, int))global[SORTED_NICKLIST]) +#define clear_sorted_nicklist (*(void (*)(NickList **))global[CLEAR_SORTED_NICKLIST]) +#define add_name_to_floodlist (*(Flooding *(*)(char *, char *, char *, HashEntry *, unsigned int))global[ADD_NAME_TO_FLOODLIST]) +#define find_name_in_floodlist (*(Flooding *(*)(char *, char *, HashEntry *, unsigned int, int))global[FIND_NAME_IN_FLOODLIST]) -#define remove_oldest_whowas_hashlist(x, y, z) ((int) (global[REMOVE_OLDEST_WHOWAS_HASHLIST]((WhowasWrapList *)x, (time_t)y, (int)z))) +#define remove_oldest_whowas_hashlist (*(int (*)(WhowasWrapList *, time_t, int))global[REMOVE_OLDEST_WHOWAS_HASHLIST]) /* cset.c fset.c vars.c set string and set int ops */ -#define fget_string_var(x) ((char *)(global[FGET_STRING_VAR]((int)x))) -#define fset_string_var(x, y) ((void) (global[FSET_STRING_VAR]((int)x, (char *)y))) -#define get_wset_string_var(x, y) ((char *) (global[GET_WSET_STRING_VAR]((WSet *)x, (char *)y))) -#define set_wset_string_var(x, y, z) ((void) (global[SET_WSET_STRING_VAR]((WSet *)x, (int)y, (char *)z))) -#define get_cset_int_var(x, y) ((int) (global[GET_CSET_INT_VAR]((CSetList *)x, (int)y))) -#define set_cset_int_var(x, y, z) ((void) (global[SET_CSET_INT_VAR]((CSetList *)x, (int)y, (int)z))) -#define get_cset_str_var(x, y) ((char *) (global[GET_CSET_STR_VAR]((CSetList *)x, (int)y))) -#define set_cset_str_var(x, y, z) ((void) (global[SET_CSET_STR_VAR]((CSetList *)x, (int)y, (char *)z))) +#define fget_string_var (*(char *(*)(enum FSET_TYPES ))global[FGET_STRING_VAR]) +#define fset_string_var (*(void (*)(enum FSET_TYPES , char *))global[FSET_STRING_VAR]) +#define get_wset_string_var (*(char *(*)(WSet *, int))global[GET_WSET_STRING_VAR]) +#define set_wset_string_var (*(void (*)(WSet *, int, char *))global[SET_WSET_STRING_VAR]) +#define get_cset_int_var (*(int (*)(CSetList *, int))global[GET_CSET_INT_VAR]) +#define set_cset_int_var (*(void (*)(CSetList *, int, int))global[SET_CSET_INT_VAR]) +#define get_cset_str_var (*(char *(*)(CSetList *, int))global[GET_CSET_STR_VAR]) +#define set_cset_str_var (*(void (*)(CSetList *, int, char *))global[SET_CSET_STR_VAR]) -#define get_dllint_var(x) ((int) (global[GET_DLLINT_VAR]((char *)x))) -#define set_dllint_var(x, y) ((void) (global[SET_DLLINT_VAR]((char *)x, (unsigned int)y))) -#define get_dllstring_var(x) ((char *) (global[GET_DLLSTRING_VAR]((char *)x))) -#define set_dllstring_var(x, y) ((void) (global[SET_DLLSTRING_VAR]((char *)x, (char *)y))) +#define get_dllint_var (*(int (*)(char *))global[GET_DLLINT_VAR]) +#define set_dllint_var (*(void (*)(char *, unsigned int ))global[SET_DLLINT_VAR]) +#define get_dllstring_var (*(char *(*)(char *))global[GET_DLLSTRING_VAR]) +#define set_dllstring_var (*(void (*)(char *, char *))global[SET_DLLSTRING_VAR]) -#define get_int_var(x) ((int) (global[GET_INT_VAR]((int)x))) -#define set_int_var(x, y) ((void) (global[SET_INT_VAR]((int)x, (int)y))) -#define get_string_var(x) ((char *) (global[GET_STRING_VAR]((int)x))) -#define set_string_var(x, y) ((void) (global[SET_STRING_VAR]((int)x, (char *)y))) +#define get_int_var (*(int (*)(enum VAR_TYPES ))global[GET_INT_VAR]) +#define set_int_var (*(void (*)(enum VAR_TYPES , unsigned int ))global[SET_INT_VAR]) +#define get_string_var (*(char *(*)(enum VAR_TYPES ))global[GET_STRING_VAR]) +#define set_string_var (*(void (*)(enum VAR_TYPES , char *))global[SET_STRING_VAR]) /* module.c */ -#define add_module_proc(x, y, z, a, b, c, d, e) ((int)(global[ADD_MODULE_PROC](x, y, z, a, b, c, d, e))) -#define remove_module_proc(a, b, c, d) ((int) (global[REMOVE_MODULE_PROC]((int)a, (char *)b, (char *)c, (char *)d))) +#define add_module_proc (*(int (*)(unsigned int , char *, char *, char *, int , int , void *, void *))global[ADD_MODULE_PROC]) +#define remove_module_proc (*(int (*)(unsigned int , char *, char *, char *))global[REMOVE_MODULE_PROC]) /* timer.c */ -#define add_timer(x, y, z, n, f, a, b, w, c) ((char *) (global[ADD_TIMER]((int)x, (char *)y, (double)z, (long)n, (int (*) (void *))f, (char *)a, (char *)b, (Window *)w, (char *)c))) -#define delete_timer(x) ((int) (global[DELETE_TIMER]((char *)x))) -#define delete_all_timers ((int (*)(void)) (global[DELETE_ALL_TIMERS])) +#define add_timer (*(char *(*)(int , char *, double , long , int (*)(void *, char *), char *, char *, int , char *))global[ADD_TIMER]) +#define delete_timer (*(int (*)(char *))global[DELETE_TIMER]) +#define delete_all_timers (*(void (*)(void ))global[DELETE_ALL_TIMERS]) /* server.c */ -#define send_to_server ((void (*)()) global[SEND_TO_SERVER]) -#define queue_send_to_server ((void (*)()) global[QUEUE_SEND_TO_SERVER]) -#define my_send_to_server ((void (*)()) global[MY_SEND_TO_SERVER]) -#define get_connected(x, y) ((void) (global[GET_CONNECTED]((int)x, (int)y))) -#define connect_to_server_by_refnum(x, y) ((int) (global[CONNECT_TO_SERVER_BY_REFNUM]((int)x, (int)y))) -#define close_server(x, y) ((void) (global[CLOSE_SERVER]((int)x, (char *)y))) -#define is_server_connected(x) ((int) (global[IS_SERVER_CONNECTED]((int)x))) -#define flush_server ((void (*)(void)) global[FLUSH_SERVER]) -#define server_is_connected(x, y) ((int) (global[SERVER_IS_CONNECTED]((int)x, (int)y))) -#define is_server_open(x) ((int) (global[IS_SERVER_OPEN]((int)x))) -#define close_all_server ((void (*)(void)) global[CLOSE_ALL_SERVER]) +#define send_to_server (*(void (*)(const char *, ...))global[SEND_TO_SERVER]) +#define queue_send_to_server (*(void (*)(int, const char *, ...))global[QUEUE_SEND_TO_SERVER]) +#define my_send_to_server (*(void (*)(int, const char *, ...))global[MY_SEND_TO_SERVER]) +#define get_connected (*(void (*)(int , int ))global[GET_CONNECTED]) +#define connect_to_server_by_refnum (*(int (*)(int , int ))global[CONNECT_TO_SERVER_BY_REFNUM]) +#define close_server (*(void (*)(int , char *))global[CLOSE_SERVER]) +#define is_server_connected (*(int (*)(int ))global[IS_SERVER_CONNECTED]) +#define flush_server (*(void (*)(void ))global[FLUSH_SERVER]) +#define server_is_connected (*(void (*)(int , int ))global[SERVER_IS_CONNECTED]) +#define is_server_open (*(int (*)(int ))global[IS_SERVER_OPEN]) +#define close_all_server (*(void (*)(void ))global[CLOSE_ALL_SERVER]) -#define read_server_file(x) ((int) (global[READ_SERVER_FILE]((char *)x))) -#define add_to_server_list(a, b, c, d, e, f, g) ((void) (global[ADD_TO_SERVER_LIST]((char *)a, (int)b, (char *)c, (char *)d, (char *)e, (int)f, (int)g))) -#define build_server_list(x) ((int) (global[BUILD_SERVER_LIST]((char *)x))) -#define display_server_list() ((void) (global[DISPLAY_SERVER_LIST]())) -#define create_server_list(x) ((char *) (global[CREATE_SERVER_LIST]((char *)x))) -#define parse_server_info(a, b, c, d, e) ((void) (global[PARSE_SERVER_INFO]((char *)a, (char **)b, (char **)c, (char **)d, (char **)e))) -#define server_list_size ((int (*)(void)) global[SERVER_LIST_SIZE]) +#define read_server_file (*(int (*)(char *))global[READ_SERVER_FILE]) +#define add_to_server_list (*(void (*)(char *, int , char *, char *, char *, int , int ))global[ADD_TO_SERVER_LIST]) +#define build_server_list (*(int (*)(char *))global[BUILD_SERVER_LIST]) +#define display_server_list (*(void (*)(void ))global[DISPLAY_SERVER_LIST]) +#define create_server_list (*(char *(*)(char *))global[CREATE_SERVER_LIST]) +#define parse_server_info (*(void (*)(char *, char **, char **, char **, char **))global[PARSE_SERVER_INFO]) +#define server_list_size (*(int (*)(void ))global[SERVER_LIST_SIZE]) -#define find_server_refnum(x, y) ((int) (global[FIND_SERVER_REFNUM]((char *)x, (char **)y))) -#define find_in_server_list(x, y) ((int) (global[FIND_IN_SERVER_LIST]((char *)x, (int)y))) -#define parse_server_index(x) ((int) (global[PARSE_SERVER_INDEX]((char *)x))) +#define find_server_refnum (*(int (*)(char *, char **))global[FIND_SERVER_REFNUM]) +#define find_in_server_list (*(int (*)(char *, int ))global[FIND_IN_SERVER_LIST]) +#define parse_server_index (*(int (*)(char *))global[PARSE_SERVER_INDEX]) -#define set_server_redirect(x, y) ((void) (global[SET_SERVER_REDIRECT]((int)x, (char *)y))) -#define get_server_redirect(x) ((char *) (global[GET_SERVER_REDIRECT]((int)x))) -#define check_server_redirect(x) ((int) (global[CHECK_SERVER_REDIRECT]((char *)x))) -#define fudge_nickname(x, y) ((void) (global[FUDGE_NICKNAME]((int)x, (int)y))) -#define reset_nickname(x) ((void) (global[RESET_NICKNAME]((int)x))) +#define set_server_redirect (*(void (*)(int , const char *))global[SET_SERVER_REDIRECT]) +#define get_server_redirect (*(char *(*)(int ))global[GET_SERVER_REDIRECT]) +#define check_server_redirect (*(int (*)(char *))global[CHECK_SERVER_REDIRECT]) +#define fudge_nickname (*(void (*)(int , int ))global[FUDGE_NICKNAME]) +#define reset_nickname (*(void (*)(int ))global[RESET_NICKNAME]) -#define set_server_cookie(x, y) ((void) (global[SET_SERVER_COOKIE]((int)x, (char *)y))) -#define set_server_flag(x, y, z) ((void) (global[SET_SERVER_FLAG]((int)x, (int)y, (int)z))) -#define set_server_motd(x, y) ((void) (global[SET_SERVER_MOTD]((int)x, (int)y))) -#define set_server_operator(x, y) ((void) (global[SET_SERVER_OPERATOR]((int)x, (int)y))) -#define set_server_itsname(x, y) ((void) (global[SET_SERVER_ITSNAME]((int)x, (char *)y))) -#define set_server_version(x, y) ((void) (global[SET_SERVER_VERSION]((int)x, (int)y))) -#define set_server_lag(x, y) ((void) (global[SET_SERVER_LAG]((int)x, (int)y))) -#define set_server_password(x, y) ((char *) (global[SET_SERVER_PASSWORD]((int)x, (char *)y))) -#define set_server_nickname(x, y) ((void) (global[SET_SERVER_NICKNAME]((int)x, (char *)y))) -#define set_server2_8(x, y) ((void) (global[SET_SERVER2_8]((int)x, (int)y))) -#define set_server_away(x, y, z) ((void) (global[SET_SERVER_AWAY]((int)x, (char *)y, (int)z))) +#define set_server_cookie (*(void (*)(int , char *))global[SET_SERVER_COOKIE]) +#define set_server_flag (*(void (*)(int , int , int ))global[SET_SERVER_FLAG]) +#define set_server_motd (*(void (*)(int , int ))global[SET_SERVER_MOTD]) +#define set_server_operator (*(void (*)(int , int ))global[SET_SERVER_OPERATOR]) +#define set_server_itsname (*(void (*)(int , char *))global[SET_SERVER_ITSNAME]) +#define set_server_version (*(void (*)(int , int ))global[SET_SERVER_VERSION]) +#define set_server_lag (*(void (*)(int , int ))global[SET_SERVER_LAG]) +#define set_server_password (*(char *(*)(int , char *))global[SET_SERVER_PASSWORD]) +#define set_server_nickname (*(void (*)(int , char *))global[SET_SERVER_NICKNAME]) +#define set_server2_8 (*(void (*)(int , int ))global[SET_SERVER2_8]) +#define set_server_away (*(void (*)(int , char *, int ))global[SET_SERVER_AWAY]) -#define get_server_cookie(x) ((char *) (global[GET_SERVER_COOKIE]((int)x))) -#define get_server_nickname(x) ((char *) (global[GET_SERVER_NICKNAME]((int)x))) -#define get_server_name(x) ((char *) (global[GET_SERVER_NAME]((int)x))) -#define get_server_itsname(x) ((char *) (global[GET_SERVER_ITSNAME]((int)x))) -#define get_server_motd(x) ((int) (global[GET_SERVER_MOTD]((int)x))) -#define get_server_operator(x) ((int) (global[GET_SERVER_OPERATOR]((int)x))) -#define get_server_version(x) ((int) (global[GET_SERVER_VERSION]((int)x))) -#define get_server_flag(x, y) ((int) (global[GET_SERVER_FLAG]((int)x, (int)y))) -#define get_possible_umodes(x) ((char *) (global[GET_POSSIBLE_UMODES]((int)x))) -#define get_server_port(x) ((int) (global[GET_SERVER_PORT]((int)x))) -#define get_server_lag(x) ((int) (global[GET_SERVER_LAG]((int)x))) -#define get_server2_8(x) ((int) (global[GET_SERVER2_8]((int)x))) -#define get_umode(x) ((char *) (global[GET_UMODE]((int)x))) -#define get_server_away(x) ((char *) (global[GET_SERVER_AWAY]((int)x))) -#define get_server_network(x) ((char *) (global[GET_SERVER_NETWORK]((int)x))) -#define get_pending_nickname(x) ((char *) (global[GET_PENDING_NICKNAME]((int)x))) -#define server_disconnect(x, y) ((void) (global[SERVER_DISCONNECT]((int)x, (char *)y))) +#define get_server_cookie (*(char *(*)(int ))global[GET_SERVER_COOKIE]) +#define get_server_nickname (*(char *(*)(int ))global[GET_SERVER_NICKNAME]) +#define get_server_name (*(char *(*)(int ))global[GET_SERVER_NAME]) +#define get_server_itsname (*(char *(*)(int ))global[GET_SERVER_ITSNAME]) +#define get_server_motd (*(int (*)(int ))global[GET_SERVER_MOTD]) +#define get_server_operator (*(int (*)(int ))global[GET_SERVER_OPERATOR]) +#define get_server_version (*(int (*)(int ))global[GET_SERVER_VERSION]) +#define get_server_flag (*(int (*)(int , int ))global[GET_SERVER_FLAG]) +#define get_possible_umodes (*(char *(*)(int ))global[GET_POSSIBLE_UMODES]) +#define get_server_port (*(int (*)(int ))global[GET_SERVER_PORT]) +#define get_server_lag (*(int (*)(int ))global[GET_SERVER_LAG]) +#define get_server2_8 (*(int (*)(int ))global[GET_SERVER2_8]) +#define get_umode (*(char *(*)(int ))global[GET_UMODE]) +#define get_server_away (*(char *(*)(int ))global[GET_SERVER_AWAY]) +#define get_server_network (*(char *(*)(int ))global[GET_SERVER_NETWORK]) +#define get_pending_nickname (*(char *(*)(int ))global[GET_PENDING_NICKNAME]) +#define server_disconnect (*(void (*)(int , char *))global[SERVER_DISCONNECT]) -#define get_server_list ((Server * (*)(void)) global[GET_SERVER_LIST]) -#define get_server_channels(x) ((ChannelList *) (global[GET_SERVER_CHANNELS]((int) x))) +#define get_server_list (*(Server *(*)(void))global[GET_SERVER_LIST]) +#define get_server_channels (*(ChannelList *(*)(int))global[GET_SERVER_CHANNELS]) -#define set_server_last_ctcp_time(x, y) ((void) (global[SET_SERVER_LAST_CTCP_TIME]((int)x, (time_t)y))) -#define get_server_last_ctcp_time(x) ((time_t) (global[GET_SERVER_LAST_CTCP_TIME]((int)x))) -#define set_server_trace_flag(x, y) ((void) (global[SET_SERVER_TRACE_FLAG]((int)x, (int)y))) -#define get_server_trace_flag(x) ((int) (global[GET_SERVER_TRACE_FLAG]((int)x))) -#define get_server_read(x) ((int) (global[GET_SERVER_READ]((int)x))) -#define get_server_linklook(x) ((int) (global[GET_SERVER_LINKLOOK]((int)x))) -#define set_server_linklook(x, y) ((void) (global[SET_SERVER_LINKLOOK]((int)x, (int)y))) -#define get_server_stat_flag(x) ((int) (global[GET_SERVER_STAT_FLAG]((int)x))) -#define set_server_stat_flag(x, y) ((void) (global[SET_SERVER_STAT_FLAG]((int)x, (int)y))) -#define get_server_linklook_time(x) ((time_t) (global[GET_SERVER_LINKLOOK_TIME]((int)x))) -#define set_server_linklook_time(x, y) ((void) (global[SET_SERVER_LINKLOOK_TIME]((int)x, (time_t)y))) -#define get_server_trace_kill(x) ((int) (global[GET_SERVER_TRACE_KILL]((int)x))) -#define set_server_trace_kill(x, y) ((void) (global[SET_SERVER_TRACE_KILL]((int)x, (int)y))) -#define add_server_channels(x, y) ((void) (global[ADD_SERVER_CHANNELS]((int)x, (ChannelList *)y))) -#define set_server_channels(x, y) ((void) (global[SET_SERVER_CHANNELS]((int)x, (ChannelList *)y))) -#define send_msg_to_channels(x, y, z) ((void) (global[SEND_MSG_TO_CHANNELS]((ChannelList *)x, (int)y, (char *)z))) -#define send_msg_to_nicks(x, y, z) ((void) (global[SEND_MSG_TO_CHANNELS]((NickList *)x, (int)y, (char *)z))) -#define is_server_queue() ((int) (global[IS_SERVER_QUEUE]())) +#define set_server_last_ctcp_time (*(void (*)(int , time_t))global[SET_SERVER_LAST_CTCP_TIME]) +#define get_server_last_ctcp_time (*(time_t (*)(int))global[GET_SERVER_LAST_CTCP_TIME]) +#define set_server_trace_flag (*(void (*)(int , int ))global[SET_SERVER_TRACE_FLAG]) +#define get_server_trace_flag (*(int (*)(int ))global[GET_SERVER_TRACE_FLAG]) +#define get_server_read (*(int (*)(int ))global[GET_SERVER_READ]) +#define get_server_linklook (*(int (*)(int ))global[GET_SERVER_LINKLOOK]) +#define set_server_linklook (*(void (*)(int , int ))global[SET_SERVER_LINKLOOK]) +#define get_server_stat_flag (*(int (*)(int ))global[GET_SERVER_STAT_FLAG]) +#define set_server_stat_flag (*(void (*)(int , int ))global[SET_SERVER_STAT_FLAG]) +#define get_server_linklook_time (*(time_t (*)(int ))global[GET_SERVER_LINKLOOK_TIME]) +#define set_server_linklook_time (*(void (*)(int , time_t))global[SET_SERVER_LINKLOOK_TIME]) +#define get_server_trace_kill (*(int (*)(int ))global[GET_SERVER_TRACE_KILL]) +#define set_server_trace_kill (*(void (*)(int , int ))global[SET_SERVER_TRACE_KILL]) +#define add_server_channels (*(void (*)(int, ChannelList *))global[ADD_SERVER_CHANNELS]) +#define set_server_channels (*(void (*)(int, ChannelList *))global[SET_SERVER_CHANNELS]) +#define send_msg_to_channels (*(void (*)(ChannelList *, int, char *))global[SEND_MSG_TO_CHANNELS]) +#define send_msg_to_nicks (*(void (*)(ChannelList *, int, char *))global[SEND_MSG_TO_NICKS]) +#define is_server_queue (*(int (*)(void ))global[IS_SERVER_QUEUE]) /* sockets */ -#define add_socketread(a, b, c, d, x, y) ((int) (global[ADD_SOCKETREAD]((int)a, (int)b, (unsigned long)c, (char *)d, (void *)x, (void *)y))) -#define add_sockettimeout(x, y, z) ((int) (global[ADD_SOCKETTIMEOUT]((int)x, (time_t)y, (void *)z))) -#define close_socketread(x) ((void) (global[CLOSE_SOCKETREAD]((int)x))) -#define get_socket(x) ((SocketList *) (global[GET_SOCKET]((int)x))) -#define set_socketflags(x, y) ((void) (global[SET_SOCKETFLAGS]((int)x, (unsigned long)y))) -#define get_socketflags(x) ((unsigned long) (global[GET_SOCKETFLAGS]((int)x))) -#define check_socket(x) ((int) (global[CHECK_SOCKET]((int)x))) -#define read_sockets(x, y, z) ((int) (global[READ_SOCKETS]((int)x, (char *)y, (int)z))) -#define write_sockets(x, y, z, a) ((int) (global[WRITE_SOCKETS]((int)x, (char *)y, (int)z, (int)a))) -#define get_max_fd() ((int) (global[GET_MAX_FD]())) -#define new_close(x) ((int) (global[NEW_CLOSE]((int)x))) -#define new_open(x) ((int) (global[NEW_OPEN]((int)x))) -#define dgets(x, y, z, l, m) ((int) (global[DGETS]((char *)x, (int)y, (int)z, (int)l, (void *)m))) -#define get_socketinfo(a) ((void *) (global[GET_SOCKETINFO]((int)a))) -#define set_socketinfo(a, b) ((void) (global[SET_SOCKETINFO]((int)a, (void *)b))) -#define set_socket_write(a) ((int) (global[SET_SOCKETWRITE]((int)a))) +#define add_socketread (*(int (*)(int, int, unsigned long, char *, void (*)(int), void (*)(int)))global[ADD_SOCKETREAD]) +#define add_sockettimeout (*(void (*)(int , time_t, void *))global[ADD_SOCKETTIMEOUT]) +#define close_socketread (*(void (*)(int ))global[CLOSE_SOCKETREAD]) +#define get_socket (*(SocketList *(*)(int ))global[GET_SOCKET]) +#define set_socketflags (*(unsigned long (*)(int , unsigned long ))global[SET_SOCKETFLAGS]) +#define get_socketflags (*(unsigned long (*)(int ))global[GET_SOCKETFLAGS]) +#define check_socket (*(int (*)(int ))global[CHECK_SOCKET]) +#define read_sockets (*(int (*)(int , unsigned char *, int ))global[READ_SOCKETS]) +#define write_sockets (*(int (*)(int , unsigned char *, int , int ))global[WRITE_SOCKETS]) +#define get_max_fd (*(int (*)(void ))global[GET_MAX_FD]) +#define new_close (*(int (*)(int ))global[NEW_CLOSE]) +#define new_open (*(int (*)(int ))global[NEW_OPEN]) +#define dgets (*(int (*)(char *, int , int , int , void *))global[DGETS]) +#define get_socketinfo (*(void *(*)(int ))global[GET_SOCKETINFO]) +#define set_socketinfo (*(void (*)(int , void *))global[SET_SOCKETINFO]) +#define set_socket_write (*(int (*)(int ))global[SET_SOCKETWRITE]) /* flood.c */ -#define is_other_flood(x, y, z, a) ((int) (global[IS_OTHER_FLOOD]((ChannelList *)x, (NickList *)y, (int)z, (int *)a))) -#define check_flooding(x, y, z, a) ((int) (global[CHECK_FLOODING]((char *)x, (int)y, (char *)z, (char *)a))) -#define flood_prot(x, y, z, a, b, c) ((int) (global[FLOOD_PROT]((char *)x, (char *)y, (char *)z, (int)a, (int)b, (char *)c))) +#define is_other_flood (*(int (*)(ChannelList *, NickList *, int, int *))global[IS_OTHER_FLOOD]) +#define check_flooding (*(int (*)(char *, int , char *, char *))global[CHECK_FLOODING]) +#define flood_prot (*(int (*)(char *, char *, char *, int , int , char *))global[FLOOD_PROT]) /* expr.c */ -#define next_unit(a, b, c, d) ((char *) (global[NEXT_UNIT]((char *)a, (char *)b, (int *)c, (int)d))) -#define parse_inline(x, y, z) ((char *) (global[PARSE_INLINE]((char *)x, (char *)y, (int *)z))) -#define expand_alias(a, b, c, d) ((char *) (global[EXPAND_ALIAS]((char *)a, (char *)b, (int *)c, (char **)d))) -#define alias_special_char(a, b, c, d, e) ((char *) (global[ALIAS_SPECIAL_CHAR]((char **)a, (char *)b, (char *)c, (char *)d, (int *)e))) -#define parse_line(a, b, c, e, f, g) ((void) (global[PARSE_LINE]((char *)a, (char *)b, (char *)c, (int)e, (int)f, (int)g))) -#define parse_command(a, b, c) ((void) (global[PARSE_COMMAND_FUNC]((char *)a, (int)b, (char *)c))) -#define make_local_stack(a) ((void) (global[MAKE_LOCAL_STACK]((char *)a))) -#define destroy_local_stack() ((void (*)(void)) (global[DESTROY_LOCAL_STACK]))() +#define next_unit (*(char *(*)(char *, const char *, int *, int ))global[NEXT_UNIT]) +#define parse_inline (*(char *(*)(char *, const char *, int *))global[PARSE_INLINE]) +#define expand_alias (*(char *(*)(const char *, const char *, int *, char **))global[EXPAND_ALIAS]) +#define alias_special_char (*(char *(*)(char **, char *, const char *, char *, int *))global[ALIAS_SPECIAL_CHAR]) +#define parse_line (*(void (*)(const char *, char *, const char *, int , int , int ))global[PARSE_LINE]) +#define parse_command (*(int (*)(char *, int , char *))global[PARSE_COMMAND_FUNC]) +#define make_local_stack (*(void (*)(char *))global[MAKE_LOCAL_STACK]) +#define destroy_local_stack (*(void (*)(void ))global[DESTROY_LOCAL_STACK]) /* dcc.c */ -#define dcc_create(a, b, c, d, e, f, g, h) ((DCC_int *) (global[DCC_CREATE_FUNC]((char *)a, (char *)b, (char *)c, (unsigned long)d, (int)e, (int)f, (unsigned long)g, (void (*) (int))h))) -#define find_dcc(a, b, c, d, e, f, g) ((SocketList *) (global[FIND_DCC_FUNC]((char *)a, (char *)b, (char *)c, (int)d, (int)e, (int)f, (int)g))) -#define erase_dcc_info ((void (*)()) global[ERASE_DCC_INFO]) -#define add_dcc_bind(a, x, b, c, d, e, f) ((int) (global[ADD_DCC_BIND]((char *)a, (char *)x, (void *)b,(void *)c,(void *)d,(void *)e,(void *)f))) -#define remove_dcc_bind(x, y) ((int) (global[REMOVE_DCC_BIND]((char *)x, (int)y))) -#define remove_all_dcc_binds(x) ((int) (global[REMOVE_ALL_DCC_BINDS])((char *)x)) -#define get_active_count ((int (*)(void)) (global[GET_ACTIVE_COUNT])) -#define get_num_queue ((int (*)(void)) (global[GET_NUM_QUEUE])) -#define add_to_queue(x, y, z) ((int) (global[ADD_TO_QUEUE]((char *)x, (char *)y, (pack *)z))) -#define dcc_filesend(x, y) ((void) (global[DCC_FILESEND]((char *)x, (char *)y))) -#define dcc_resend(x, y) ((void) (global[DCC_RESEND]((char *)x, (char *)y))) +#define dcc_create (*(DCC_int *(*)(char *, char *, char *, unsigned long, int, int, unsigned long, void (*)(int)))global[DCC_CREATE_FUNC]) +#define find_dcc (*(SocketList *(*)(char *, char *, char *, int, int, int, int))global[FIND_DCC_FUNC]) +#define erase_dcc_info (*(void (*)(int, int, char *, ...))global[ERASE_DCC_INFO]) +#define add_dcc_bind (*(int (*)(char *, char *, void *, void *, void *, void *, void *))global[ADD_DCC_BIND]) +#define remove_dcc_bind (*(int (*)(char *, int ))global[REMOVE_DCC_BIND]) +#define remove_all_dcc_binds (*(int (*)(char *))global[REMOVE_ALL_DCC_BINDS]) +#define get_active_count (*(int (*)(void ))global[GET_ACTIVE_COUNT]) +#define get_num_queue (*(int (*)(void ))global[GET_NUM_QUEUE]) +#define add_to_queue (*(int (*)(char *, char *, pack *))global[ADD_TO_QUEUE]) +#define dcc_filesend (*(void (*)(char *, char *))global[DCC_FILESEND]) +#define dcc_resend (*(void (*)(char *, char *))global[DCC_RESEND]) /* irc.c */ -#define irc_exit ((void (*)()) (global[IRC_EXIT_FUNC])) -#define io(x) ((void) (global[IRC_IO_FUNC]((char *)x))) +#define irc_exit (*(void (*)(int, char *, char *, ...))global[IRC_EXIT_FUNC]) +#define io (*(void (*)(const char *))global[IRC_IO_FUNC]) /* commands.c */ -#define find_command(x, y) ( (IrcCommand *)(global[FIND_COMMAND_FUNC]((char *)x, (int *)y))) +#define find_command (*(IrcCommand *(*)(char *, int *))global[FIND_COMMAND_FUNC]) -#define lock_stack_frame() ((void (*)(void)) (global[LOCK_STACK_FRAME]))() -#define unlock_stack_frame() ((void (*) (void)) (global[UNLOCK_STACK_FRAME]))() +#define lock_stack_frame (*(void (*)(void ))global[LOCK_STACK_FRAME]) +#define unlock_stack_frame (*(void (*)(void ))global[UNLOCK_STACK_FRAME]) /* who.c */ -#define userhostbase ((void (*)())global[USERHOSTBASE]) -#define isonbase ((void (*)())global[ISONBASE]) -#define whobase ((void (*)())global[WHOBASE]) +#define userhostbase (*(void (*)(char *, void (*)(UserhostItem *, char *, char *), int, char *, ...))global[USERHOSTBASE]) +#define isonbase (*(void (*)(char *, void (*)(char *, char *)))global[ISONBASE]) +#define whobase (*(void (*)(char *, void (*)(WhoEntry *, char *, char **), void (*)(WhoEntry *, char *, char **), char *, ...))global[WHOBASE]) -#define add_to_window_list(x, y) ((int) (global[ADD_TO_WINDOW_LIST]((struct ScreenStru *)x, (Window *)y))) +#define add_to_window_list (*(Window *(*)(struct ScreenStru *, Window *))global[ADD_TO_WINDOW_LIST]) /* * Rest of these are all variables of various sorts. diff --git a/include/names.h b/include/names.h index 487d379..ad4fff7 100644 --- a/include/names.h +++ b/include/names.h @@ -74,7 +74,7 @@ void move_window_channels (Window *); void reassign_window_channels (Window *); void check_channel_limits(); void BX_clear_bans(ChannelList *); -char *BX_compress_modes(ChannelList *, int, char *, char*); +char *BX_do_compress_modes(ChannelList *, int, char *, char*); int BX_got_ops(int, ChannelList *); void BX_flush_channel_stats (void); char *BX_get_channel_bans(char *, int, int); diff --git a/include/struct.h b/include/struct.h index 8cc45a0..4c3c5b2 100644 --- a/include/struct.h +++ b/include/struct.h @@ -709,7 +709,7 @@ typedef struct WindowStru int in_more; int save_hold_mode; int mangler; - void (*update_window_status) (struct WindowStru *); + void (*update_status) (struct WindowStru *); void (*update_input) (struct WindowStru *); } Window; @@ -939,7 +939,7 @@ typedef struct channel_stru int limit; /* max users for the channel */ time_t limit_time; /* time of last limit set */ char *key; /* key for this channel */ - char chop; /* true if you are chop */ + char have_op; /* true if you are a channel op */ char hop; /* true if you are a half op */ char voice; /* true if you are voice */ char bound; /* true if channel is bound */ diff --git a/include/window.h b/include/window.h index 8eee2b8..e230c43 100644 --- a/include/window.h +++ b/include/window.h @@ -62,7 +62,6 @@ void BX_set_prompt_by_refnum (unsigned, char *); char *BX_get_prompt_by_refnum (unsigned); char *BX_get_target_by_refnum (unsigned); -const char *BX_query_nick (void); void BX_set_query_nick (char *, char *, char *); int BX_is_current_channel (char *, int, int); const char *BX_set_current_channel_by_refnum (unsigned, char *); @@ -76,7 +75,6 @@ const char *BX_set_current_channel_by_refnum (unsigned, char *); int BX_get_window_server (unsigned); void BX_set_window_server (int, int, int); int windows_connected_to_server (int); - void window_close_server (int); void BX_set_level_by_refnum (unsigned, unsigned long); void BX_message_to (unsigned long); @@ -108,7 +106,7 @@ const char *BX_set_current_channel_by_refnum (unsigned, char *); void BX_scrollback_forwards (char, char *); void BX_scrollback_end (char, char *); void BX_scrollback_start (char, char *); - void BX_hold_mode (Window *, int, int); + void BX_set_hold_mode (Window *, int, int); void BX_unstop_all_windows (char, char *); void BX_reset_line_cnt (Window *, char *, int); void BX_toggle_stop_screen (char, char *); @@ -126,7 +124,6 @@ const char *BX_set_current_channel_by_refnum (unsigned, char *); Window *BX_get_window_by_desc (const char *); char *BX_get_nicklist_by_window (Window *); /* XXX */ void BX_set_scrollback_size (Window *, char *, int); - void BX_make_window_current (Window *); Window *window_query (Window *, char **, char *); int BX_unhold_windows (void); void free_window (Window *); @@ -135,7 +132,6 @@ const char *BX_set_current_channel_by_refnum (unsigned, char *); char *BX_get_status_by_refnum (unsigned , unsigned); void BX_unclear_window_by_refnum (unsigned); - void BX_set_screens_current_window (Screen *, Window *); void BX_clear_scrollback (Window *); void BX_clear_window (Window *window); void BX_repaint_window (Window *, int, int); @@ -146,8 +142,6 @@ const char *BX_set_current_channel_by_refnum (unsigned, char *); void BX_free_formats (Window *); void BX_goto_window (Screen *, int); void BX_update_window_status_all (void); -const char *BX_query_host (void); -const char *BX_query_cmd (void); void BX_window_check_servers (int); int windows_connected_to_server (int); void window_change_server (int, int); diff --git a/source/alias.c b/source/alias.c index aee849d..1e1b032 100644 --- a/source/alias.c +++ b/source/alias.c @@ -743,7 +743,7 @@ void destroy_arglist (ArgList *arglist) new_free(&arglist->vars[i]); new_free(&arglist->defaults[i]); } - new_free((char **)&arglist); + new_free(&arglist); } void prepare_alias_call (void *al, char **stuff) @@ -1707,7 +1707,7 @@ char ** glob_cmd_alias (char *name, int *howmany) len = strlen(name); *howmany = 0; - matches = RESIZE(matches, char *, matches_size); + RESIZE(matches, char *, matches_size); for (cnt = 0; cnt < cmd_alias.max; cnt++) { @@ -1749,7 +1749,7 @@ char ** glob_assign_alias (char *name, int *howmany) len = strlen(name); *howmany = 0; - matches = RESIZE(matches, char *, matches_size); + RESIZE(matches, char *, matches_size); for (cnt = 0; cnt < var_alias.max; cnt++) { @@ -1790,7 +1790,7 @@ char ** pmatch_cmd_alias (char *name, int *howmany) len = strlen(name); *howmany = 0; - matches = RESIZE(matches, char *, matches_size); + RESIZE(matches, char *, matches_size); for (cnt = 0; cnt < cmd_alias.max; cnt++) { @@ -1826,7 +1826,7 @@ char ** pmatch_assign_alias (char *name, int *howmany) len = strlen(name); *howmany = 0; - matches = RESIZE(matches, char *, matches_size); + RESIZE(matches, char *, matches_size); for (cnt = 0; cnt < var_alias.max; cnt++) { @@ -1873,7 +1873,7 @@ char ** get_subarray_elements (char *root, int *howmany, int type) len = strlen(root); *howmany = 0; - matches = RESIZE(matches, char *, matches_size); + RESIZE(matches, char *, matches_size); for (cnt = 0; cnt < as->max; cnt++) { len2 = strlen(as->list[cnt]->name); diff --git a/source/array.c b/source/array.c index 79ef544..0ae6aeb 100644 --- a/source/array.c +++ b/source/array.c @@ -280,21 +280,21 @@ extern void move_index (an_array *array, long oldindex, long newindex) */ extern long find_index (an_array *array, long item) { - long search = 0; + long i = 0; if (array->size >= ARRAY_THRESHOLD) { - search = find_item(*array, array->item[item]); - while (search >= 0 && !strcmp(array->item[array->index[search]], array->item[item])) - search--; - search++; + i = find_item(*array, array->item[item]); + while (i >= 0 && !strcmp(array->item[array->index[i]], array->item[item])) + i--; + i++; } - while(array->index[search] != item && search < array->size) - search++; + while(array->index[i] != item && i < array->size) + i++; - if (search == array->size) + if (i == array->size) say("ERROR in find_index()"); - return search; + return i; } /* @@ -350,7 +350,7 @@ extern void delete_array (char *name) } array_info.item = (char**)RESIZE(array_info.item, char *, array_info.size); array_info.index = (long *)RESIZE(array_info.index, long, array_info.size); - array_array = (an_array *)RESIZE(array_array, an_array, array_info.size); + RESIZE(array_array, an_array, array_info.size); } else { @@ -680,7 +680,7 @@ BUILT_IN_FUNCTION(function_setitem) if (item == 0) { if (array_info.size) - array_array = (an_array*)RESIZE(array_array, an_array, (array_info.size + 1)); + RESIZE(array_array, an_array, (array_info.size + 1)); else array_array = (an_array*)new_malloc(sizeof(an_array)); array = &array_array[array_info.size]; diff --git a/source/bot_link.c b/source/bot_link.c index a8db6bd..53a7b4f 100644 --- a/source/bot_link.c +++ b/source/bot_link.c @@ -776,7 +776,7 @@ DCC_int *n; ch = lookup_channel(chan, from_server, 0); else ch = lookup_channel(get_current_channel_by_refnum(0), from_server, 0); - if (!nick || !ch || !ch->chop) { dcc_printf(idx, "No Nick specified or not on that channel or not chop\n"); return TCL_ERROR; } + if (!nick || !ch || !ch->have_op) { dcc_printf(idx, "No Nick specified, not on that channel or not channel op\n"); return TCL_ERROR; } while ((n1 = next_in_comma_list(nick, &nick))) { if (!n1 || !*n1) break; diff --git a/source/commands.c b/source/commands.c index 49a3072..e0401ca 100644 --- a/source/commands.c +++ b/source/commands.c @@ -1128,7 +1128,7 @@ BUILT_IN_COMMAND(my_clear) if (scrollback) clear_scrollback(get_window_by_refnum(0)); if (unhold) - hold_mode(NULL, OFF, 1); + set_hold_mode(NULL, OFF, 1); clear_window_by_refnum(0); } #if defined(WINNT) || defined(__EMX__) @@ -3393,7 +3393,7 @@ extern int MODE_TOPIC; my_send_to_server(server, "TOPIC %s :", chan->channel); return; } - if (arg && (!(chan->mode & MODE_TOPIC) || chan->chop)) + if (arg && (!(chan->mode & MODE_TOPIC) || chan->have_op)) { if (is_channel(arg)) { @@ -3429,7 +3429,7 @@ BUILT_IN_COMMAND(do_mtopic) int count = 0; for (chan = get_server_channels(from_server); chan; chan = chan->next) { - if (!chan->chop) + if (!chan->have_op) continue; send_to_server("TOPIC %s :%s", chan->channel, args ? args : empty_string); count++; @@ -5020,7 +5020,7 @@ BUILT_IN_COMMAND(sendlinecmd) void irc_clear_screen(char key, char *ptr) { - hold_mode(NULL, OFF, 1); + set_hold_mode(NULL, OFF, 1); my_clear(NULL, empty_string, empty_string, NULL); } @@ -5117,7 +5117,7 @@ BUILT_IN_COMMAND(me) } else if (!my_stricmp(command, "qme")) { - target = (char *)query_nick(); + target = current_window->query_nick; if (!target) { Window *tmp = NULL; diff --git a/source/commands2.c b/source/commands2.c index 21c903f..d8032b5 100644 --- a/source/commands2.c +++ b/source/commands2.c @@ -406,7 +406,7 @@ char buffer[BIG_BUFFER_SIZE+1]; } modelock++; } - if (chan && chan->chop && buffer) + if (chan && chan->have_op && buffer) send_to_server("MODE %s %s", chan->channel, buffer); new_free(&save); new_free(&save1); diff --git a/source/cset.c b/source/cset.c index 3f03a80..319c06c 100644 --- a/source/cset.c +++ b/source/cset.c @@ -1267,7 +1267,7 @@ void set_channel_limit(ChannelList *channel, int currentlimit, int add, int numu void check_channel_limit(ChannelList *chan) { - if (chan && chan->csets && chan->csets->set_auto_limit && chan->chop) + if (chan && chan->csets && chan->csets->set_auto_limit && chan->have_op) { int count = 0; NickList *nick; diff --git a/source/ctcp.c b/source/ctcp.c index 69a8352..4080106 100644 --- a/source/ctcp.c +++ b/source/ctcp.c @@ -598,7 +598,7 @@ int server; return NULL; } sprintf(ban, "%s!%s", from, FromUserHost); - if (chan && chan->chop) + if (chan && chan->have_op) { if ((b = ban_is_on_channel(ban, chan))) { diff --git a/source/dcc.c b/source/dcc.c index e8527d3..4ada6c7 100644 --- a/source/dcc.c +++ b/source/dcc.c @@ -198,28 +198,28 @@ typedef struct DCC_dllcommands *dcc_dllcommands = NULL; -DCC_COMMAND(dcc_chat); -DCC_COMMAND(BX_dcc_filesend); -DCC_COMMAND(BX_dcc_resend); -DCC_COMMAND(dcc_getfile); -DCC_COMMAND(dcc_regetfile); -DCC_COMMAND(dcc_glist); -DCC_COMMAND(dcc_resume); -DCC_COMMAND(dcc_rename); +void dcc_chat(char *command, char *args); +void BX_dcc_filesend(char *command, char *args); +void BX_dcc_resend(char *command, char *args); +void dcc_getfile(char *command, char *args); +void dcc_regetfile(char *command, char *args); +void dcc_glist(char *command, char *args); +void dcc_resume(char *command, char *args); +void dcc_rename(char *command, char *args); -DCC_COMMAND(dcc_show_active); -DCC_COMMAND(dcc_set_quiet); -DCC_COMMAND(dcc_set_paths); -DCC_COMMAND(dcc_tog_rename); -DCC_COMMAND(dcc_tog_resume); -DCC_COMMAND(dcc_overwrite_toggle); -DCC_COMMAND(dcc_tog_auto); -DCC_COMMAND(dcc_stats); -DCC_COMMAND(dcc_close); -DCC_COMMAND(dcc_closeall); -DCC_COMMAND(dcc_help1); -DCC_COMMAND(dcc_exempt); -DCC_COMMAND(dcc_ftpopen); +void dcc_show_active(char *command, char *args); +void dcc_set_quiet(char *command, char *args); +void dcc_set_paths(char *command, char *args); +void dcc_tog_rename(char *command, char *args); +void dcc_tog_resume(char *command, char *args); +void dcc_overwrite_toggle(char *command, char *args); +void dcc_tog_auto(char *command, char *args); +void dcc_stats(char *command, char *args); +void dcc_close(char *command, char *args); +void dcc_closeall(char *command, char *args); +void dcc_help1(char *command, char *args); +void dcc_exempt(char *command, char *args); +void dcc_ftpopen(char *command, char *args); DCC_commands dcc_commands[] = { @@ -1516,7 +1516,7 @@ char *user = NULL; return user; } -DCC_COMMAND(dcc_chat) +void dcc_chat(char *command, char *args) { char *user; char *nick; @@ -2005,7 +2005,7 @@ void real_file_send(char *nick, char *filename, char *passwd, char *port, int td new->blocksize = blocksize; } -DCC_COMMAND(BX_dcc_filesend) +void BX_dcc_filesend(char *command, char *args) { char *user; char *nick; @@ -2044,7 +2044,7 @@ DCC_COMMAND(BX_dcc_filesend) doing_multi = 0; } -DCC_COMMAND(BX_dcc_resend) +void BX_dcc_resend(char *command, char *args) { char *user; char *nick; @@ -2205,7 +2205,7 @@ char *nick; } } -DCC_COMMAND(dcc_getfile) +void dcc_getfile(char *command, char *args) { char *user; @@ -2284,7 +2284,7 @@ char *nick; } } -DCC_COMMAND(dcc_regetfile) +void dcc_regetfile(char *command, char *args) { char *user; char *passwd = NULL; @@ -2354,7 +2354,7 @@ static char *_dcc_offer[12] = {"%K } -DCC_COMMAND(dcc_glist) +void dcc_glist(char *command, char *args) { char *dformat = "#$[3]0 $[6]1%Y$2%n $[11]3 $[25]4 $[7]5 $6-"; @@ -2985,7 +2985,7 @@ BUILT_IN_COMMAND(chat) } -DCC_COMMAND(dcc_exempt) +void dcc_exempt(char *command, char *args) { int remove; List *nptr = NULL; @@ -3314,7 +3314,7 @@ unsigned long flags; return; } -DCC_COMMAND(dcc_close) +void dcc_close(char *command, char *args) { char *type; char *file; @@ -3413,7 +3413,7 @@ int num = -1; return; } -DCC_COMMAND(dcc_closeall) +void dcc_closeall(char *command, char *args) { close_all_dcc(); } @@ -3499,7 +3499,7 @@ struct stat sb; new_free(&tmp); } -DCC_COMMAND(dcc_resume) +void dcc_resume(char *command, char *args) { char *user, *nick; char *filename = NULL; @@ -3596,7 +3596,7 @@ int blocksize = 0; } #endif -DCC_COMMAND(dcc_help1) +void dcc_help1(char *command, char *args) { char *comm; int i, c; @@ -4061,7 +4061,7 @@ FILE *f; return dir ? m_strdup(dir) : NULL; } -DCC_COMMAND(dcc_ftpopen) +void dcc_ftpopen(char *command, char *args) { char u[] = "anonymous"; char p[] = "- bxuser@"; @@ -4155,7 +4155,7 @@ SocketList *s; } -DCC_COMMAND(dcc_rename) +void dcc_rename(char *command, char *args) { DCC_List *tmp; DCC_int *n; diff --git a/source/exec.c b/source/exec.c index e861cf7..039cc11 100644 --- a/source/exec.c +++ b/source/exec.c @@ -6,6 +6,8 @@ * See the COPYRIGHT file, or do a HELP IRCII COPYRIGHT */ +#define _GNU_SOURCE /* Needed for strsignal from string.h on GLIBC systems */ + #include "irc.h" static char cvsrevision[] = "$Id$"; CVS_REVISION(exec_c) @@ -86,7 +88,7 @@ extern char *next_expr (char **, char); /* * A nice array of the possible signals. Used by the coredump trapping - * routines and in the exec.c package + * routines and in the exec.c package. */ #if !defined(SYS_SIGLIST_DECLARED) && !defined(_SYS_SIGLIST_DECLARED) && !defined(__QNX__) #if defined(WINNT) || defined(__EMX__) @@ -96,7 +98,7 @@ char *sys_siglist[] = { "ZERO", "SIGINT", "SIGKILL", "SIGPIPE", "SIGFPE", "SIGBUS", "SIGLOST", "SIGSTOP", "SIGABRT", "SIGUSR1", "SIGUSR2", "SIGCHLD", "SIGTTOU", "SIGTTIN", "SIGCONT" }; #elif defined(__GLIBC__) -#define _GNU_SOURCE +#define USING_STRSIGNAL /* use strsignal() from */ #include #else @@ -432,7 +434,7 @@ BUILT_IN_COMMAND(execcmd) */ for (sig = 1; sig < NSIG-1; sig++) { -#if defined(_GNU_SOURCE) +#if defined(USING_STRSIGNAL) if (strsignal(sig) && !my_strnicmp(strsignal(sig), flag, len)) #else if (sys_siglist[sig] && !my_strnicmp(sys_siglist[sig], flag, len)) @@ -1162,7 +1164,7 @@ static void cleanup_dead_processes (void) if (dead->termsig > 0 && dead->termsig < NSIG) say("Process %d (%s) terminated with signal %s (%d)", dead->index, dead->name, -#if defined(_GNU_SOURCE) +#if defined(USING_STRSIGNAL) strsignal(dead->termsig), #else sys_siglist[dead->termsig], @@ -1260,7 +1262,7 @@ void kill_process (int kill_index, int sig) } say("Sending signal %s (%d) to process %d: %s", -#if defined(_GNU_SOURCE) +#if defined(USING_STRSIGNAL) strsignal(sig), #else sys_siglist[sig], diff --git a/source/expr.c b/source/expr.c index aa28573..e052e56 100644 --- a/source/expr.c +++ b/source/expr.c @@ -1518,9 +1518,7 @@ char *BX_alias_special_char(char **buffer, char *ptr, const char *args, char *qu pad_char = 0; register unsigned char c; - int upper, - lower, - length; + int length; length = 0; if ((c = *ptr) == LEFT_BRACKET) @@ -1723,6 +1721,8 @@ register unsigned char c; */ if (isdigit(c) || (c == '-') || c == '~') { + int first, last; + *args_flag = 1; /* @@ -1731,7 +1731,7 @@ register unsigned char c; */ if (c == '~') { - lower = upper = EOS; + first = last = EOS; ptr++; } @@ -1748,10 +1748,10 @@ register unsigned char c; */ else if (c == '-') { - lower = SOS; + first = SOS; ptr++; - upper = parse_number(&ptr); - if (upper == -1) + last = parse_number(&ptr); + if (last == -1) return empty_string; /* error */ } @@ -1761,16 +1761,16 @@ register unsigned char c; */ else { - lower = parse_number(&ptr); + first = parse_number(&ptr); if (*ptr == '-') { ptr++; - upper = parse_number(&ptr); - if (upper == -1) - upper = EOS; + last = parse_number(&ptr); + if (last == -1) + last = EOS; } else - upper = lower; + last = first; } /* @@ -1785,7 +1785,7 @@ register unsigned char c; if (!args) tmp2 = m_strdup(empty_string); else - tmp2 = extract2(args, lower, upper); + tmp2 = extract2(args, first, last); TruncateAndQuote(buffer, tmp2, length, quote_em, pad_char); new_free(&tmp2); diff --git a/source/flood.c b/source/flood.c index aaa047c..0a4e5f2 100644 --- a/source/flood.c +++ b/source/flood.c @@ -460,7 +460,7 @@ ChannelList *chan = NULL; for (chan = get_server_channels(from_server); chan; chan = chan->next) if ((Nick = find_nicklist_in_channellist(nick, chan, 0))) break; - if (chan && chan->chop && get_cset_int_var(chan->csets, CTCP_FLOOD_BAN_CSET) && Nick) + if (chan && chan->have_op && get_cset_int_var(chan->csets, CTCP_FLOOD_BAN_CSET) && Nick) { if (!Nick->userlist || (Nick->userlist && !(Nick->userlist->flags & ADD_FLOOD))) { @@ -509,7 +509,7 @@ int kick_on_flood = 1; kick_on_flood = get_cset_int_var(chan->csets, PUBFLOOD_CSET); if (kick_on_flood && (Nick = find_nicklist_in_channellist(nick, chan, 0))) { - if (chan->chop && (!Nick->userlist || (Nick->userlist && !(Nick->userlist->flags & ADD_FLOOD)))) + if (chan->have_op && (!Nick->userlist || (Nick->userlist && !(Nick->userlist->flags & ADD_FLOOD)))) if (!nick_isop(Nick) || get_cset_int_var(chan->csets, KICK_OPS_CSET)) send_to_server("KICK %s %s :\002%s\002 flooder", chan->channel, nick, type); } @@ -524,7 +524,7 @@ int kick_on_flood = 1; { for (chan = get_server_channels(from_server); chan; chan = chan->next) { - if (chan->chop && (Nick = find_nicklist_in_channellist(nick, chan, 0))) + if (chan->have_op && (Nick = find_nicklist_in_channellist(nick, chan, 0))) { if ((!Nick->userlist || (Nick->userlist && !(Nick->userlist->flags & ADD_FLOOD)))) if (!nick_isop(Nick) || get_cset_int_var(chan->csets, KICK_OPS_CSET)) diff --git a/source/fset.c b/source/fset.c index a3ea83e..6c4ee4d 100644 --- a/source/fset.c +++ b/source/fset.c @@ -1021,13 +1021,15 @@ IrcVariable *return_fset_var(int nummer) } #endif +/* This is a horrible hack so that the standard List functions can be used + * for the numeric list. + */ int compare_number(List *item1, List *item2) { - if ((int)item1->name == (int)(item2->name)) - return 0; - else if ((int)item1->name > (int)(item2->name)) - return 1; - return -1; + FsetNumber *real1 = (FsetNumber *)item1; + FsetNumber *real2 = (FsetNumber *)item2; + + return real1->numeric - real2->numeric; } char *find_numeric_fset(int numeric) diff --git a/source/functions.c b/source/functions.c index a1f30c1..42fb4e9 100644 --- a/source/functions.c +++ b/source/functions.c @@ -954,7 +954,7 @@ BuiltInDllFunctions *dll = NULL; len = strlen(name); *cnt = 0; - matches = RESIZE(matches, char *, matches_size); + RESIZE(matches, char *, matches_size); while (built_in_functions[i].func && i <= NUMBER_OF_FUNCTIONS) { if (strncmp(name, built_in_functions[i].name, len) == 0) @@ -965,7 +965,7 @@ BuiltInDllFunctions *dll = NULL; if (++(*cnt) == matches_size) { matches_size += 5; - matches = (char **) RESIZE(matches, char *, matches_size); + RESIZE(matches, char *, matches_size); } } else if (*cnt) @@ -1173,7 +1173,7 @@ static char *alias_serverport (void) static char *alias_query_nick (void) { char *tmp; - return m_strdup((tmp = (char *)query_nick()) ? tmp : empty_string); + return m_strdup((tmp = current_window->query_nick) ? tmp : empty_string); } static char *alias_target (void) @@ -1950,7 +1950,7 @@ BUILT_IN_FUNCTION(function_before, word) if (numint < 0 && strlen(word)) pointer = word + strlen(word) - 1; - pointer = search(word, &pointer, chars, numint); + pointer = strsearch(word, pointer, chars, numint); if (!pointer) RETURN_EMPTY; @@ -1985,7 +1985,7 @@ BUILT_IN_FUNCTION(function_after, word) if (numint < 0 && strlen(word)) pointer = word + strlen(word) - 1; - pointer = search(word, &pointer, chars, numint); + pointer = strsearch(word, pointer, chars, numint); if (!pointer || !*pointer) RETURN_EMPTY; diff --git a/source/input.c b/source/input.c index 17ff8ea..8488df8 100644 --- a/source/input.c +++ b/source/input.c @@ -1189,7 +1189,7 @@ BUILT_IN_KEYBINDING(send_line) if (!(cmdchar = get_string_var(CMDCHARS_VAR))) cmdchar = "/"; malloc_strcpy(&tmp, line); - if (line && (*line != *cmdchar) && get_int_var(NICK_COMPLETION_VAR) && !query_nick()) + if (line && (*line != *cmdchar) && get_int_var(NICK_COMPLETION_VAR) && !current_window->query_nick) { char auto_comp_char; char *p; @@ -1319,7 +1319,7 @@ BUILT_IN_KEYBINDING(type_text) */ BUILT_IN_KEYBINDING(clear_screen) { - hold_mode(NULL, OFF, 1); + set_hold_mode(NULL, OFF, 1); clear_window_by_refnum(0); } @@ -1721,7 +1721,7 @@ BUILT_IN_KEYBINDING(cpu_saver_on) BUILT_IN_KEYBINDING(input_unclear_screen) { - hold_mode(NULL, OFF, 1); + set_hold_mode(NULL, OFF, 1); unclear_window_by_refnum(0); } @@ -2702,7 +2702,7 @@ do_more_tab: { char **completes = NULL; int c = 0, matches = count; - completes = RESIZE(completes, char *, count+1); + RESIZE(completes, char *, count+1); if (wcount > 1) { if (!got_space) diff --git a/source/ircaux.c b/source/ircaux.c index e2b2eaf..bfebd6d 100644 --- a/source/ircaux.c +++ b/source/ircaux.c @@ -93,13 +93,13 @@ void * n_malloc (size_t size, const char *module, const char *file, const int li /* * new_free: Why do this? Why not? Saves me a bit of trouble here and there */ -void * n_free(void **ptr, const char *module, const char *file, const int line) +void * n_free(void *ptr, const char *module, const char *file, const int line) { - if (*ptr) + if (ptr) { #ifdef FREE_DEBUG /* Check to make sure its not been freed before */ - if (alloc_size(*ptr) == FREED_VAL) + if (alloc_size(ptr) == FREED_VAL) { yell("free()ing a already free'd pointer, giving up!"); putlog(LOG_ALL, "*", "*** failed free %s %s (%d)", module?module:empty_string, file, line); @@ -107,42 +107,41 @@ void * n_free(void **ptr, const char *module, const char *file, const int line) exit(1); } #endif - alloc_size(*ptr) = FREED_VAL; + alloc_size(ptr) = FREED_VAL; #ifdef MEM_DEBUG - _free_leap(file, line, (void *)alloc_start(*ptr)); + _free_leap(file, line, (void *)alloc_start(ptr)); #else - free((void *)alloc_start(*ptr)); + free((void *)alloc_start(ptr)); #endif - *ptr = NULL; + ptr = NULL; } - return (*ptr); + return ptr; } -void * n_realloc (void **ptr, size_t size, const char *module, const char *file, const int line) +void * n_realloc (void *ptr, size_t size, const char *module, const char *file, const int line) { char *ptr2 = NULL; - if (*ptr) + if (ptr) { if (size) { - size_t msize = alloc_size(*ptr); + size_t msize = alloc_size(ptr); if (msize >= size) - return *ptr; + return ptr; ptr2 = n_malloc(size, module, file, line); - memmove(ptr2, *ptr, msize); + memmove(ptr2, ptr, msize); n_free(ptr, module, file, line); - return ((*ptr = ptr2)); + return ptr2; } - n_free(ptr, module, file, line); - return NULL; + return n_free(ptr, module, file, line); } else if (size) ptr2 = n_malloc(size, module, file, line); - return ((*ptr = ptr2)); + return ptr2; } /* @@ -155,14 +154,14 @@ void * n_realloc (void **ptr, size_t size, const char *module, const char *file, char * n_malloc_strcpy (char **ptr, const char *src, const char *module, const char *file, const int line) { if (!src) - return n_free((void **)ptr, module, file, line); + return *ptr = n_free(*ptr, module, file, line); if (ptr && *ptr) { if (*ptr == src) return *ptr; if (alloc_size(*ptr) > strlen(src)) return strcpy(*ptr, src); - n_free((void **)ptr, module, file, line); + *ptr = n_free(*ptr, module, file, line); } *ptr = n_malloc(strlen(src) + 1, module, file, line); return strcpy(*ptr, src); @@ -179,7 +178,7 @@ char * n_malloc_strcat (char **ptr, const char *src, const char *module, const c if (!src) return *ptr; msize = strlen(*ptr) + strlen(src) + 1; - n_realloc((void **)ptr, sizeof(char)*msize, module, file, line); + *ptr = n_realloc(*ptr, sizeof(char)*msize, module, file, line); return strcat(*ptr, src); } return (*ptr = n_m_strdup(src, module, file, line)); @@ -867,7 +866,7 @@ char * n_m_strcat_ues(char **dest, char *src, int unescape, const char *module, total_length += strlen(src); /* RESIZE(*dest, char, total_length + 2);*/ - n_realloc((void **)dest, sizeof(char) * (total_length + 2), module, file, line); + *dest = n_realloc(*dest, sizeof(char) * (total_length + 2), module, file, line); if (z == 0) **dest = 0; diff --git a/source/misc.c b/source/misc.c index 1cbadac..4294dd9 100644 --- a/source/misc.c +++ b/source/misc.c @@ -288,7 +288,7 @@ int kick_count = 0; UserList *user = NULL; - if (channel && (tmp = lookup_channel(channel, from_server, CHAN_NOUNLINK)) && tmp->chop && tmp->max_idle && tmp->check_idle) + if (channel && (tmp = lookup_channel(channel, from_server, CHAN_NOUNLINK)) && tmp->have_op && tmp->max_idle && tmp->check_idle) { NickList *nick; for (nick = next_nicklist(tmp, NULL); nick; nick = next_nicklist(tmp, nick)) @@ -738,7 +738,7 @@ int t = 0; } if (!splitter) { - if (chan->chop && is_other_flood(chan, nick, JOIN_FLOOD, &t)) + if (chan->have_op && is_other_flood(chan, nick, JOIN_FLOOD, &t)) { if (get_cset_int_var(chan->csets, JOINFLOOD_CSET) && get_cset_int_var(chan->csets, KICK_ON_JOINFLOOD_CSET) && !nick->kickcount++) { @@ -816,7 +816,7 @@ int t = 0; if (nick) nick->stat_dops++; } - if (chan->chop && is_other_flood(chan, nick, DEOP_FLOOD, &t)) + if (chan->have_op && is_other_flood(chan, nick, DEOP_FLOOD, &t)) { if (get_cset_int_var(chan->csets, DEOP_ON_DEOPFLOOD_CSET) < get_cset_int_var(chan->csets, KICK_ON_DEOPFLOOD_CSET)) send_to_server("MODE %s -o %s", chan->channel, nick->nick); @@ -2184,7 +2184,6 @@ static int ar_remrequest(struct reslist *old) { for (; *s; s++) new_free(s); - new_free(&rptr->re_he.h_aliases); } if (rptr->re_rinfo.ri_ptr) new_free(&rptr->re_rinfo.ri_ptr); @@ -4794,7 +4793,7 @@ ChannelList *chan = NULL; } return NULL; } - if (need_op == NEED_OP && chan && !chan->chop && !chan->hop) + if (need_op == NEED_OP && chan && !chan->have_op && !chan->hop) { set_display_target(chan->channel, LOG_CRAP); error_not_opped(chan->channel); diff --git a/source/modules.c b/source/modules.c index ef72746..0bce577 100644 --- a/source/modules.c +++ b/source/modules.c @@ -202,7 +202,7 @@ static int already_done = 0; global_table[RANDOM_NUMBER] = (Function_ptr) BX_random_number; /* words.c reg.c */ - global_table[SEARCH] = (Function_ptr) BX_search; + global_table[STRSEARCH] = (Function_ptr) BX_strsearch; global_table[MOVE_TO_ABS_WORD] = (Function_ptr) BX_move_to_abs_word; global_table[MOVE_WORD_REL] = (Function_ptr) BX_move_word_rel; global_table[EXTRACT] = (Function_ptr) BX_extract; @@ -364,7 +364,6 @@ static int already_done = 0; global_table[TRAVERSE_ALL_WINDOWS] = (Function_ptr) BX_traverse_all_windows; global_table[ADD_TO_INVISIBLE_LIST] = (Function_ptr) BX_add_to_invisible_list; global_table[ADD_TO_WINDOW_LIST] = (Function_ptr) BX_add_to_window_list; - global_table[REMOVE_WINDOW_FROM_SCREEN] = (Function_ptr) BX_remove_window_from_screen; global_table[RECALCULATE_WINDOW_POSITIONS]= (Function_ptr) BX_recalculate_window_positions; global_table[MOVE_WINDOW] = (Function_ptr) BX_move_window; global_table[REDRAW_ALL_WINDOWS] = (Function_ptr) BX_redraw_all_windows; @@ -388,9 +387,9 @@ static int already_done = 0; global_table[STATUS_UPDATE] = (Function_ptr) BX_status_update; global_table[SET_PROMPT_BY_REFNUM] = (Function_ptr) BX_set_prompt_by_refnum; global_table[GET_PROMPT_BY_REFNUM] = (Function_ptr) BX_get_prompt_by_refnum; - global_table[QUERY_NICK] = (Function_ptr) BX_query_nick; - global_table[QUERY_HOST] = (Function_ptr) BX_query_host; - global_table[QUERY_CMD] = (Function_ptr) BX_query_cmd; + global_table[QUERY_NICK] = (Function_ptr) null_function; /* DEFUNCT */ + global_table[QUERY_HOST] = (Function_ptr) null_function; /* DEFUNCT */ + global_table[QUERY_CMD] = (Function_ptr) null_function; /* DEFUNCT */ global_table[GET_TARGET_BY_REFNUM] = (Function_ptr) BX_get_target_by_refnum; global_table[GET_TARGET_CMD_BY_REFNUM] = (Function_ptr) BX_get_target_cmd_by_refnum; global_table[GET_WINDOW_TARGET_BY_DESC] = (Function_ptr) BX_get_window_target_by_desc; @@ -425,7 +424,7 @@ static int already_done = 0; global_table[SCROLLBACK_BACKWARDS] = (Function_ptr) BX_scrollback_backwards; global_table[SCROLLBACK_END] = (Function_ptr) BX_scrollback_end; global_table[SCROLLBACK_START] = (Function_ptr) BX_scrollback_start; - global_table[HOLD_MODE] = (Function_ptr) BX_hold_mode; + global_table[SET_HOLD_MODE] = (Function_ptr) BX_set_hold_mode; global_table[UNHOLD_WINDOWS] = (Function_ptr) BX_unhold_windows; global_table[FUNC_UNSTOP_ALL_WINDOWS] = (Function_ptr) BX_unstop_all_windows; global_table[RESET_LINE_CNT] = (Function_ptr) BX_reset_line_cnt; @@ -504,7 +503,7 @@ static int already_done = 0; global_table[GET_CHANNEL_KEY] = (Function_ptr) BX_get_channel_key; global_table[FUNC_RECREATE_MODE] = (Function_ptr) BX_recreate_mode; #ifdef COMPRESS_MODES - global_table[FUNC_COMPRESS_MODES] = (Function_ptr) BX_compress_modes; + global_table[FUNC_COMPRESS_MODES] = (Function_ptr) BX_do_compress_modes; #endif global_table[FUNC_GOT_OPS] = (Function_ptr) BX_got_ops; global_table[GET_CHANNEL_BANS] = (Function_ptr) BX_get_channel_bans; @@ -674,7 +673,7 @@ static int already_done = 0; global_table[DLL_CTCP] = (Function_ptr) &dll_ctcp; #endif global_table[WINDOW_DISPLAY] = (Function_ptr) &window_display; - global_table[STATUS_UPDATE_FLAG] = (Function_ptr) status_update_flag; + global_table[STATUS_UPDATE_FLAG] = (Function_ptr) &status_update_flag; global_table[TABKEY_ARRAY] = (Function_ptr) &tabkey_array; global_table[AUTOREPLY_ARRAY] = (Function_ptr) &autoreply_array; global_table[IDENTD_SOCKET] = (Function_ptr) &identd; diff --git a/source/names.c b/source/names.c index aadca26..079b093 100644 --- a/source/names.c +++ b/source/names.c @@ -260,7 +260,7 @@ ChannelList * BX_add_channel(char *channel, int server, int refnum) get_time(&new->join_time); add_server_channels(server, new); } - new->chop = 0; + new->have_op = 0; new->voice = 0; new->hop = 0; @@ -351,7 +351,7 @@ ChannelList *BX_add_to_channel(char *channel, char *nick, int server, int oper, if (!my_stricmp(nick, get_server_nickname(server))) { check_mode_list_join(channel, server); - chan->chop = 1; + chan->have_op = 1; } } if (!(new = find_nicklist_in_channellist(nick, chan, 0))) @@ -549,7 +549,7 @@ typedef struct _UserChanModes { * * Written by Jordy (jordy@wserv.com) */ -char *BX_compress_modes(ChannelList *chan, int server, char *channel, char *modes) { +char *BX_do_compress_modes(ChannelList *chan, int server, char *channel, char *modes) { int add = 0, isbanned = 0, isopped = 0, @@ -821,13 +821,13 @@ NickList *tnl = NULL; int BX_got_ops(int add, ChannelList *channel) { -int chop = 0; +int have_op = 0; register NickList *tmp; int in_join = 0; in_join = in_join_list(channel->channel, from_server); - if (add && add != channel->chop && !in_join) + if (add && add != channel->have_op && !in_join) { - chop = channel->chop = add; + have_op = channel->have_op = add; #ifdef WANT_USERLIST for(tmp = next_nicklist(channel, NULL); tmp; tmp = next_nicklist(channel, tmp)) check_auto(channel->channel,tmp, channel); @@ -835,19 +835,19 @@ int in_join = 0; if ((get_server_version(from_server) == Server2_8hybrid6)) send_to_server("MODE %s e", channel->channel); } - else if (!add && add != channel->chop && !in_join) + else if (!add && add != channel->have_op && !in_join) { for(tmp = next_nicklist(channel, NULL); tmp; tmp = next_nicklist(channel, tmp)) tmp->sent_reop = tmp->sent_deop = tmp->sent_voice = 0; } - return chop; + return have_op; } /* * decifer_mode: This will figure out the mode string as returned by mode * commands and convert that mode string into a one byte bit map of modes */ -static int decifer_mode(char *from, char *mode_str, ChannelList **channel, unsigned long *mode, char *chop, char *voice, char **key) +static int decifer_mode(char *from, char *mode_str, ChannelList **channel, unsigned long *mode, char *have_op, char *voice, char **key) { char *limit = 0; @@ -951,8 +951,8 @@ static int decifer_mode(char *from, char *mode_str, ChannelList **channel, unsig person = get_server_nickname(from_server); if (!my_stricmp(person, get_server_nickname(from_server))) { - *chop = (char)got_ops(add, *channel); - (*channel)->chop = add; + *have_op = (char)got_ops(add, *channel); + (*channel)->have_op = add; if (add) do_hook(CHANOP_LIST, "%s", (*channel)->channel); } @@ -973,7 +973,7 @@ static int decifer_mode(char *from, char *mode_str, ChannelList **channel, unsig ThisNick->sent_deop--; } - if (!its_me && (*channel)->chop) + if (!its_me && (*channel)->have_op) { if (add && splitter) check_hack(person, *channel, ThisNick, from); @@ -1052,7 +1052,7 @@ static int decifer_mode(char *from, char *mode_str, ChannelList **channel, unsig malloc_strcpy(&new->setby, from?from:get_server_name(from_server)); new->time = now; #ifdef WANT_USERLIST - if (!its_me && (*channel)->chop) + if (!its_me && (*channel)->have_op) check_prot(from, person, *channel, new, ThisNick); #endif } @@ -1169,7 +1169,7 @@ void update_channel_mode(char *from, char *channel, int server, char *mode, Chan if (tmp || (channel && (tmp = lookup_channel(channel, server, CHAN_NOUNLINK)))) { - if ((limit = decifer_mode(from, mode, &(tmp), &(tmp->mode), &(tmp->chop), &(tmp->voice), &(tmp->key))) != -1) + if ((limit = decifer_mode(from, mode, &(tmp), &(tmp->mode), &(tmp->have_op), &(tmp->voice), &(tmp->key))) != -1) tmp->limit = limit; } } @@ -1368,7 +1368,7 @@ void BX_rename_nick(char *old_nick, char *new_nick, int server) if ((tmp = find_nicklist_in_channellist(old_nick, chan, REMOVE_FROM_LIST))) { tmp->stat_nicks++; - if (chan->chop && !isme(new_nick)) + if (chan->have_op && !isme(new_nick)) { if (is_other_flood(chan, tmp, NICK_FLOOD, &t)) handle_nickflood(old_nick, new_nick, tmp, chan, t); @@ -1684,7 +1684,7 @@ int BX_get_channel_oper(char *channel, int server) if ((chan = lookup_channel(channel, server, CHAN_NOUNLINK))) - return chan->chop; + return chan->have_op; return 1; } @@ -2062,7 +2062,7 @@ ChannelList *chan; { for (chan = get_server_channels(i); chan; chan = chan->next) { - if (!chan->chop || !chan->csets || !chan->csets->set_auto_limit) + if (!chan->have_op || !chan->csets || !chan->csets->set_auto_limit) continue; if (chan->totalnicks + chan->csets->set_auto_limit != chan->limit) my_send_to_server(i, "MODE %s +l %d", chan->channel, chan->totalnicks + chan->csets->set_auto_limit); diff --git a/source/notify.c b/source/notify.c index 356aa32..c58bee3 100644 --- a/source/notify.c +++ b/source/notify.c @@ -378,7 +378,7 @@ UserList *tmp = NULL; { NickList *n = NULL; n = find_nicklist_in_channellist(nick, chan, 0); - if (!n && chan->chop && get_cset_int_var(chan->csets, AINV_CSET) && (tmp->flags & ADD_INVITE) && get_cset_int_var(chan->csets, AINV_CSET)) + if (!n && chan->have_op && get_cset_int_var(chan->csets, AINV_CSET) && (tmp->flags & ADD_INVITE) && get_cset_int_var(chan->csets, AINV_CSET)) { bitchsay("Auto-inviting %s to %s", nick, chan->channel); send_to_server("NOTICE %s :Auto-invite from %s", nick, get_server_nickname(from_server)); diff --git a/source/numbers.c b/source/numbers.c index 3cd5299..7dd29d9 100644 --- a/source/numbers.c +++ b/source/numbers.c @@ -248,8 +248,6 @@ void display_msg(char *from, char **ArgList) char *ptr, *s, *rest; - int drem; - rest = PasteArgs(ArgList, 0); if ((s = find_numeric_fset(-current_numeric))) @@ -266,16 +264,14 @@ void display_msg(char *from, char **ArgList) else ptr = NULL; - drem = (int)(from) /*&& (!get_int_var(SUPPRESS_FROM_REMOTE_SERVER))*/; - put_it("%s %s%s%s%s%s%s", numeric_banner(), strlen(rest) ? rest : empty_string, strlen(rest) ? space : empty_string, ptr ? ptr : empty_string, - drem ? "(from " : empty_string, - drem ? from : empty_string, - drem ? ")" : empty_string + from ? "(from " : empty_string, + from ? from : empty_string, + from ? ")" : empty_string ); } diff --git a/source/parse.c b/source/parse.c index ea2467b..c6b3982 100644 --- a/source/parse.c +++ b/source/parse.c @@ -1049,7 +1049,7 @@ static void p_channel(char *from, char **ArgList) else put_it("%s",convert_output_format(fget_string_var(FORMAT_JOIN_FSET), "%s %s %s %s %s",update_clock(GET_TIME),from,FromUserHost?FromUserHost:"UnKnown",channel, extra)); - if (!its_me && chan && chan->chop) + if (!its_me && chan && chan->have_op) { char lame_chars[] = "\x01\x02\x03\x04\x05\x06\x07\x08\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a"; register char *p; @@ -1367,7 +1367,7 @@ char *n = NULL; time_t right_now; - if (!from || !chan || (chan && (!get_cset_int_var(chan->csets, BITCH_CSET) || !chan->chop))) + if (!from || !chan || (chan && (!get_cset_int_var(chan->csets, BITCH_CSET) || !chan->have_op))) return; if (!get_int_var(HACK_OPS_VAR) && wild_match("%.%", from)) return; @@ -1442,7 +1442,7 @@ static void p_mode(char *from, char **ArgList) chan = (ChannelList *)find_in_list((List **)&chan2, channel, 0); if (chan && get_cset_int_var(chan->csets, COMPRESS_MODES_CSET)) { - tmpbuf = compress_modes(chan, from_server, channel, line); + tmpbuf = do_compress_modes(chan, from_server, channel, line); if (tmpbuf) strcpy(line, tmpbuf); else @@ -1653,7 +1653,7 @@ static void p_kick(char *from, char **ArgList) if (!itsme) { f_nick = find_nicklist_in_channellist(who, chan, 0); - if (chan->chop && tmpnick && is_other_flood(chan, tmpnick, KICK_FLOOD, &t)) + if (chan->have_op && tmpnick && is_other_flood(chan, tmpnick, KICK_FLOOD, &t)) { if (get_cset_int_var(chan->csets, KICK_ON_KICKFLOOD_CSET) > get_cset_int_var(chan->csets, DEOP_ON_KICKFLOOD_CSET)) send_to_server("MODE %s -o %s", chan->channel, from); diff --git a/source/struct.c b/source/struct.c index 0786dfd..cf4a28e 100644 --- a/source/struct.c +++ b/source/struct.c @@ -97,7 +97,7 @@ static LookupStruct channel_struct[] = { { "LIMIT", offsetof(ChannelList, limit), INT_TYPE_VAR, VAR_READ_ONLY }, { "KEY", offsetof(ChannelList, key), STR_TYPE_VAR, VAR_READ_ONLY }, - { "CHOP", offsetof(ChannelList, chop), INT_TYPE_VAR, VAR_READ_ONLY }, + { "CHOP", offsetof(ChannelList, have_op), INT_TYPE_VAR, VAR_READ_ONLY }, { "HOP", offsetof(ChannelList, hop), INT_TYPE_VAR, VAR_READ_ONLY }, { "VOICE", offsetof(ChannelList, voice), INT_TYPE_VAR, VAR_READ_ONLY }, { "BOUND", offsetof(ChannelList, bound), INT_TYPE_VAR, VAR_READ_ONLY }, diff --git a/source/userlist.c b/source/userlist.c index 272976a..632aba4 100644 --- a/source/userlist.c +++ b/source/userlist.c @@ -970,7 +970,7 @@ char *p = (char *) arg; /* original args unmodified so we can free them */ if ((serv_num = next_arg(args, &args))) this_server = my_atol(serv_num); chan = lookup_channel(channel, this_server, 0); - if (chan && is_on_channel(channel, this_server, from) && chan->chop) + if (chan && is_on_channel(channel, this_server, from) && chan->have_op) { NickList *nick; for (nick = next_nicklist(chan, NULL); nick; nick = next_nicklist(chan, nick)) @@ -1077,7 +1077,7 @@ char *ban; if (!chan_ptr) return NULL; - if (!chan_ptr->chop) + if (!chan_ptr->have_op) return nicklist; userptr = nicklist->userlist; shitptr = nicklist->shitlist; @@ -1254,7 +1254,7 @@ char *nick = NULL, *userhost = NULL, *p; } } - if (get_cset_int_var(chan->csets, USERLIST_CSET) && chan->chop && ((n && n->userlist) || + if (get_cset_int_var(chan->csets, USERLIST_CSET) && chan->have_op && ((n && n->userlist) || (tmp && tmp->userlist))) { UserList *user = NULL; @@ -1352,7 +1352,7 @@ char *nick = NULL, *userhost = NULL, *p; void check_shit(ChannelList *chan) { ShitList *Bans; - if (!chan || !chan->chop || !shitlist_list || chan->server <= -1 || !get_cset_int_var(chan->csets, SHITLIST_CSET)) + if (!chan || !chan->have_op || !shitlist_list || chan->server <= -1 || !get_cset_int_var(chan->csets, SHITLIST_CSET)) return; if (!check_channel_match(get_string_var(PROTECT_CHANNELS_VAR), chan->channel)) return; diff --git a/source/window.c b/source/window.c index bc92a12..ddd8a52 100644 --- a/source/window.c +++ b/source/window.c @@ -116,6 +116,7 @@ Window *BX_new_window(Screen *screen) new = (Window *) new_malloc(sizeof(Window)); new->output_func = default_output_function; + new->update_status = NULL; tmp = NULL; while ((traverse_all_windows(&tmp))) @@ -1028,8 +1029,8 @@ void BX_update_all_windows() if (full_window || fast_window) repaint_window(tmp, tmp->repaint_start, tmp->repaint_end); - if (tmp->update_window_status) - (tmp->update_window_status)(tmp); + if (tmp->update_status) + (tmp->update_status)(tmp); else if (r_status) update_window_status(tmp, 1); else if (u_status) @@ -1443,24 +1444,6 @@ char *BX_get_prompt_by_refnum(unsigned int refnum) return (empty_string); } - -/* query_nick: Returns the query nick for the current channel */ -const char * BX_query_nick (void) -{ - return (current_window->query_nick); -} - -/* query_nick: Returns the query nick for the current channel */ -const char * BX_query_host (void) -{ - return (current_window->query_host); -} - -const char * BX_query_cmd (void) -{ - return (current_window->query_cmd); -} - /* * get_target_by_refnum: returns the target for the window with the given * refnum (or for the current window). The target is either the query nick @@ -1882,34 +1865,6 @@ void BX_window_check_servers(int unused) cursor_to_input(); } -/* - * window_close_server: this is like window_check_servers but it gets called - * with old_server as the refnum of a server that just got closed. It marks - * every window that used to be connected to old_server as WINDOW_SERVER_CLOSED - * and sets last_server for those windows. It doesn't touch windows that - * already had no server. - */ - -void BX_window_close_server(int old_server) -{ - Window *tmp; - - tmp = NULL; - if (old_server < 0) - return; - while ((traverse_all_windows(&tmp))) - { - if (tmp->server < 0) - continue; - if (tmp->server == old_server) - { - close_server(tmp->server, NULL); - tmp->server = WINDOW_SERVER_CLOSED; - tmp->last_server = old_server; - } - } -} - /* * Changes any windows that are currently using "old_server" to instead * use "new_server". @@ -2382,7 +2337,7 @@ void BX_clear_all_windows(int unhold, int scrollback) while (traverse_all_windows(&tmp)) { if (unhold) - hold_mode(tmp, OFF, 1); + set_hold_mode(tmp, OFF, 1); if (scrollback) clear_scrollback(tmp); clear_window(tmp); @@ -2434,7 +2389,7 @@ void unclear_all_windows (int unhold, int visible, int hidden) continue; if (unhold) - hold_mode(tmp, OFF, 1); + set_hold_mode(tmp, OFF, 1); unclear_window(tmp); } } @@ -3759,7 +3714,7 @@ Window *window_query (Window *window, char **args, char *usage) } if ((nick = window->query_nick)) { - say("Ending conversation with %s", query_nick()); + say("Ending conversation with %s", current_window->query_nick); window->update |= UPDATE_STATUS; while ((ptr = next_in_comma_list(nick, &nick))) { @@ -4692,7 +4647,7 @@ void BX_scrollback_start (char dumb, char *dumber) * this will also update the status line, if needed, to display the hold mode * state. If update is false, only the internal flag is set. */ -void BX_hold_mode (Window *window, int flag, int update) +void BX_set_hold_mode (Window *window, int flag, int update) { if (window == NULL) window = current_window; @@ -4752,7 +4707,7 @@ void BX_unstop_all_windows (char dumb, char *dumber) Window *tmp = NULL; while (traverse_all_windows(&tmp)) - hold_mode(tmp, OFF, 1); + set_hold_mode(tmp, OFF, 1); } /* @@ -4770,7 +4725,7 @@ void BX_reset_line_cnt (Window *win, char *unused, int value) /* toggle_stop_screen: the BIND function TOGGLE_STOP_SCREEN */ void BX_toggle_stop_screen (char unused, char *not_used) { - hold_mode(NULL, TOGGLE, 1); + set_hold_mode(NULL, TOGGLE, 1); update_all_windows(); } @@ -4818,7 +4773,7 @@ void BX_flush_everything_being_held (Window *window) ircpanic("erf. fix this."); window->holding_something = 0; - hold_mode(window, OFF, 1); + set_hold_mode(window, OFF, 1); } @@ -4908,8 +4863,8 @@ void BX_set_screens_current_window (Screen *screen, Window *window) void BX_make_window_current (Window *window) { Window *old_current_window = current_window; - int old_screen, old_window; - int new_screen, new_window; + int old_screen, old_win; + int new_screen, new_win; if (!window) current_window = last_input_screen->current_window; @@ -4922,22 +4877,22 @@ void BX_make_window_current (Window *window) return; if (!old_current_window) - old_screen = old_window = -1; + old_screen = old_win = -1; else if (!old_current_window->screen) - old_screen = -1, old_window = old_current_window->refnum; + old_screen = -1, old_win = old_current_window->refnum; else old_screen = old_current_window->screen->screennum, - old_window = old_current_window->refnum; + old_win = old_current_window->refnum; - new_window = current_window->refnum; + new_win = current_window->refnum; if (!current_window->screen) new_screen = -1; else new_screen = current_window->screen->screennum; do_hook(WINDOW_FOCUS_LIST, "%d %d %d %d", - old_screen, old_window, - new_screen, new_window); + old_screen, old_win, + new_screen, new_win); } void BX_clear_scrollback(Window *window) @@ -4960,10 +4915,10 @@ void BX_clear_scrollback(Window *window) void make_to_window_by_desc (char *desc) { - Window *new_window = get_window_by_desc(desc); + Window *new_win = get_window_by_desc(desc); - if (new_window) - target_window = new_window; + if (new_win) + target_window = new_win; else say("Window [%s] doesn't exist any more. Punting.", desc); } @@ -4985,23 +4940,23 @@ int get_winref_by_desc (const char *desc) void make_window_current_by_desc (char *desc) { - Window *new_window = get_window_by_desc(desc); + Window *new_win = get_window_by_desc(desc); - if (new_window) - make_window_current(new_window); + if (new_win) + make_window_current(new_win); else say("Window [%s] doesn't exist any more. Punting.", desc); } void make_window_current_by_winref (int refnum) { - Window *new_window; + Window *new_win; if (refnum == -1) return; - if ((new_window = get_window_by_refnum(refnum))) - make_window_current(new_window); + if ((new_win = get_window_by_refnum(refnum))) + make_window_current(new_win); else say("Window [%d] doesn't exist any more. Punting.", refnum); } diff --git a/source/words.c b/source/words.c index dfc5323..f95b996 100644 --- a/source/words.c +++ b/source/words.c @@ -18,25 +18,25 @@ CVS_REVISION(words_c) /* * search() looks for a character forward or backward from mark */ -extern char *BX_search(register char *start, char **mark, char *chars, int how) +extern char *BX_strsearch(register char *start, char *mark, char *chars, int how) { - if (!mark || !*mark) - *mark = start; + if (!mark) + mark = start; if (how > 0) /* forward search */ { - *mark = sindex(*mark, chars); + mark = sindex(mark, chars); how--; - for (;(how > 0) && *mark && **mark;how--) - *mark = sindex(*mark+1, chars); + for (; how > 0 && mark && *mark; how--) + mark = sindex(mark + 1, chars); } else if (how == 0) - return (char *) 0; + return NULL; else /* how < 0 */ { - *mark = rsindex(*mark, start, chars, -how); + mark = rsindex(mark, start, chars, -how); #if 0 how++; for (;(how < 0) && *mark && **mark;how++) @@ -44,7 +44,7 @@ extern char *BX_search(register char *start, char **mark, char *chars, int how) #endif } - return *mark; + return mark; } /* Move to an absolute word number from start */