#ifndef I_EXTERN
#define I_EXTERN

#include "window.h"

extern char *next_arg(char **str);
extern void recreate_chan_mode(), set_chan_mode();
extern void add_users_to_chan();
extern int set_loglevel(int new);
extern win_ptr set_outwin(win_ptr win);
extern void reset_outwin();
extern void parse_line(char *str, char *args, int added, int interactive);
extern char *parse_inline(char *string, char *args, int *added);
extern char *expand_alias(char *string, char *args, int *added,
                         char *ret, int len);
extern char *alias_special(char *str, char *args, int *added,
                           char *ret, int len, int what);
/*
extern void *my_malloc(long int x);
#define malloc(x) my_malloc(x)

extern void my_free(long int x);
#define free(x) my_free(x);
*/

extern void yell(), say();

extern int get_intvariable(char *var);
extern int get_boolvariable(char *var);
extern int get_variable(char *var, int *val, char *result);
extern void send_notify(), han_notify(server_ptr, char *);

extern int getquery(char *user), wild_match();
extern void sl_nick(win_ptr win, char *str);
extern char *read_input();
extern void replace(), curr_nick(), cleanup();

extern int get_channel(char *chan), get_chan_num();
extern int *add_server();
extern int strncasecmp(char *s1, char *s2, int len);
extern int strcasecmp(char *s1, char *s2);
extern char *ms_strcpy(char *word);
extern char *m_strcpy(char *key, int len), *grab_param(char **str, char *word);
extern char *m_grab_word(char **str, char let);
extern int grab_word(char **str, char let, char *space);
extern void new_printmess(), forcemess(), curr_chan_query();
extern int lookup_command();
extern void handle_command_line(char *string, int interactive, char *param);
extern void user_alias(char *string), user_assign(char *string, int first);
extern void dobind();
extern void user_dcc(), load_file(), notify(), on(), remap();
extern void user_set(), user_spawn(), clear_window(), clear_query();
extern void set_query(), set_channel(), user_basic3(), delete_windows();
extern char *new_whatawho(char *s1, char *s2, int *added);
extern char *whatawho(char *s1, char *s2, int *added), *matching_end();
extern char *strip_ends(char *str, char x, char y, char *ret, int len);
extern char *m_parse_it(char *str, char *args, int last);
extern short open_connection();
extern int clearquery(), exec_alias(), ignore();
extern int new_send();
extern void help(), user_ignore(), setquery(), updatestatwin();
extern void split_window(), window_balance();
extern int handle_on(int type, char *line, int id);
extern int *window_num(), window_hide(), window_delete();
extern void my_sig(), join_channel();
extern int window_select(), *leave_channel();
extern int get_chan_name();
extern int set_chan_used(), line_split();
extern int lookup_level();
extern win_ptr type_winget();
extern int nslookup(), get_logical();
extern int push_chan();

extern void init_window(), init_binds(), handle_line(), show_level();
extern void init_keybdio(), find_input_prompt(), init_head();
extern void startup(), launch_timer(), free_chan();
extern void get_username();

extern int good_host(), nslookup();
extern char *start_read(short, short, READ_ROUT on_read, READ_ROUT on_exit);
extern void add_connect_to_list(short, SIN *, char *, int type);
extern void print_socket_error(char *);
extern int dynamic_link_module(char *, int, ...);
#endif
