diff --git a/source/prototypes.h b/source/prototypes.h
index 04c8b6a..c1473d0 100644
--- a/source/prototypes.h
+++ b/source/prototypes.h
@@ -1,181 +1,178 @@
 /*
  * Copyright (C) 1996 Darkbot Project.
 
  * This program is free software, you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2.  This
  * program is distributed in the hope that it will be useful, but without
  * any warranty, without even the implied warranty of merchantability or
  * fitness for a particular purpose.  See the COPYING file for details.
  */
 
 
 /* ------------ Below are function declarations --------------- */
 
 #ifdef ENABLE_STATUS
 void	parse_252				(char *), 
 	parse_251				(char *), 
 	parse_255				(char *);
 #endif
 
 size_t	count_lines				(char *);
 void	count_seen				(char *, char *);
 struct chanserv_output *show_seen		(char *, char *, char *);
 struct chanserv_output *show_info2		(const char *, const char *, enum chanserv_invoke_type);
 
 long	save_seen				(char *, char *, char *);
 void	do_randomtopic				(int, char *, char *, char *, char *);
 
 
 int	get_random_integer			(int max);
 
 #ifdef ENABLE_RANDOM
 
 void	do_random_stuff				(void),
 	check_idle_channels			(void),
 	get_rand_stuff_time			(void),
 	del_autotopic				(const char *), 
 	add_randomstuff				(char *, char *, char *), 
 	do_autotopics				(void);
 #endif
 
 #ifdef	ENABLE_RANDQ
 struct chanserv_output *do_randq		(char *, const int, const char *, const char *);
 #endif
 
 struct chanserv_output *display_url		(char *, char *, char *);
 void	datasearch				(const char *, char *, char *),
 	set_pass				(char *, char *, char *, char *),
 	do_modes				(char *, char *), 
 	process_nick				(char *, char *);
 long	verify_pass				(char *, char *, char *, char *), 
 	ifexist_autotopic			(char *);
 
 #ifdef ENABLE_CHANNEL
 void	save_permbans				(void);
 #endif
 
 void	do_quit					(const char *, long);
 
 #ifdef	ENABLE_MATH
 struct chanserv_output *do_math			(const char *, char *, char *);
 #endif
 
 void	parse_who				(char *);
 void	set_autotopic				(char *, char *, char *);
 void	delete_user_ram				(char *, char *), 
 	get_s					(void),
 	delete_url				(const char *, char *, char *),
 	update_setinfo				(const char *, const char *, const char *);
 
 #ifdef ENABLE_CHANNEL
 void	add_permban				(const char *, size_t, const char *);
 int	del_permban				(const char *, const char *);
 #endif
 
 int	check_existing_url			(const char *, char *, char *);
 void	*check_nick_parameter			(struct setup_parameter *parameter, char *ptr);
 struct chanserv_output *show_helper_list	(struct chanserv_output *output, const char *, long);
 void	set_paths				(void),
 	chanserv				(char *, char *, char *),
 	raw_now					(char *),
 	find_url				(const char *, char *, char *), 
 	save_changes				(void);
 struct chanserv_output *show_url		(char *, char *, char *, long, long, char *, long);
 struct chanserv_output *show_banlist		(const char *);
 char	*strlwr					(char *), 
 	*rand_reply				(const char *), 
 	*date					(void),
 	*get_multiword_topic			(char *), 
 	*revert_topic				(char *),
 	*get_rand_nick				(const char *), 
 	*get_word				(long, char *, char *);
 
 void	info					(const char *, char *), 
 	load_helpers				(void),
 	scan_chan_users				(char *, char *, char *), 
 	do_login				(char *, char *);
 int has_access_for_this_channel	(char*, char*);
 long	do_lastcomm				(char *, char *, char *), 
 	setinfo_lastcomm			(char *);
 void	parse					(char *), 
 	add_helper				(const char *, const char *, long, size_t,
 						 const char *, const char *, char);
 
 int	readln					(void),
 	writeln					(const char *);
 
 bool	check_permban				(const char *, const char *, const char *);
 long	cf					(char *, char *, char *), 
 	f_f					(char *);
 time_t	return_useridle				(const char *, const char *, int);
 void	a_f					(char *), 
 	reset_					(void), 
 	delete_user				(const char *, char *),
 	add_user				(char *, char *, char *, long);
 void	sig_hup					(int),
 	sig_segv				(int), 
 	save_setup				(void);
 void	stripline				(char *), 
 	sig_alrm				(int);
 void	parse_server_msg			(fd_set *);
 void	db_log					(const char *, const char *,...),
 	gs26					(void), 
 	add_s25					(char *, long, char *),
 	S					(const char *,...),
 	del_sendq				(long), 
 	clear_sendq				(long, long);
 
-char	L[524], 
-	*plural					(size_t);
+char	*plural					(size_t);
 
-int	socketfd, 
-	alarmed,	
-	match_wild				(const char *, const char *),
+int match_wild				(const char *, const char *),
 	Send					(void), 
 	get_sendq_count				(long);
 long 	check_access				(char *, char *, int, char *);
 void	check_dbtimers				(void);
 
 void	register_bot				(void);
 void	prepare_bot				(void);
 int	create_connection			(char *, char *, long);
 int	Snow					(const char *, ...);
 struct chanserv_output *show_chaninfo		(const char *, const char *, const char *);
 struct chanserv_output *show_chanusers		(const char *, const char *);
 
 const 	char		*run_program		(const char *);
 
 void	do_autotopics				(void);
 
 #ifdef ENABLE_STATS
 void	add_stats				(char *, char *, long, long, long);
 void	load_stats				(void);
 struct chanserv_output *get_stats		(char *, char *);
 #endif
 
 #ifdef ENABLE_QUIZ
 struct chanserv_output *run_quiz_question	(char *);
 void	run_quiz_answer				(void);
 #endif
 void	check_files				(void);
 void	run_perform				(void);
 struct chanserv_output *web_post_query		(char *trigger, char *source, char *uh, char *target, char *query, int size);
 int	add_ignore_user_ram			(char *);
 int	delete_ignore_user_ram			(char *);
 int	check_ignore_user_ram			(char *);
 void	call_reserved_1				(char *, char *, char *);
 void	call_reserved_2				(char *, char *, char *);
 size_t	count_char				(const char *, const char);
 bool	isBoolean				(char *aBoolean);
 void	db_sleep				(unsigned long seconds);
 void	reverse					(char *);
 char	*mask_from_nick				(char *, const char *);
 char	*uh_from_nick				(char *, const char *);
 int	db_argstostr				(char *, char **, size_t, char);
 long	is_op					(char *, const char *);
 void	do_op					(char *, const char *, long);
 
 struct setup_parameter *set_parameter		(char *input);
 
 struct chanserv_output *chanserv_asprintf(struct chanserv_output *output, const char *format, ...);
 
diff --git a/source/vars.h b/source/vars.h
index 2265554..b64f7c4 100644
--- a/source/vars.h
+++ b/source/vars.h
@@ -1,372 +1,377 @@
 /*
  * Copyright (C) 1996 Darkbot Project.
 
  * This program is free software, you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2.  This
  * program is distributed in the hope that it will be useful, but without
  * any warranty, without even the implied warranty of merchantability or
  * fitness for a particular purpose.  See the COPYING file for details.
  */
 
 
 #define STRING_SHORT    512
 #define STRING_LONG     2048
 
 #define FLAG_CHANOP	0x0001
 #define FLAG_CHANVOICE	0x0002
 
 extern int wsock;
 extern int sockerr;
 extern int optlen;
 extern size_t nRandStuffs;
 extern long QUESTIONS;
 extern long ADDITIONS;
 extern long DELETIONS;
 extern long uptime;
 extern long NO_FLOOD;
 extern long NUM_SERV;
 extern long L_CLIENTS;
 extern long IRCOPS;
 extern long xtried;
 extern long G_USERS;
 extern long rt;
 extern long fc;
 extern long spr;
 extern long snr;
 extern long BP;
 extern long CHECKED;
 extern long SEND_DELAY;
 extern long send_tog;
 extern long NUM_HELPER;
 extern long NUM_USER;
 extern long NUMLINESSEEN;
 extern long Rand_Stuff;
 extern long Rand_Idle;
 extern long AIL4;
 extern long Sleep_Toggle;
 extern long Sleep_Time;
 extern long AIL3;
 extern long AIL2;
 extern long AIL5;
 extern long JOINs;
 extern long PERMBAN_counter;
 extern long	RAND_CHANS;
 extern long ram_load_time;
 extern long AIL9;
 extern long AIL666;
 extern long AIL8;
 #ifdef ENABLE_QUIZ
 extern long AIL13;
 #endif
 extern long LastInput;
 extern long AIL10;
 extern long MARK_CHANGE;
 extern long html_counter;
 extern long lcn1;
 extern long lcn2;
 extern long lcn4;
 extern long lcn3;
 extern bool SeeN;
 extern long DebuG;
 #ifdef ENABLE_QUIZ
 extern long quiz_timer;
 extern long quiz_line;
 extern bool quiz_answer;
 extern bool quiz_halt;
 extern long recent_questions[10];
 #endif
 extern char NICK_COMMA[32];
 extern char COLON_NICK[33];
 extern char BPASS[STRING_SHORT];
 extern char pass_data[512];
 extern char pass_pass[STRING_SHORT];
 extern char rword[STRING_SHORT];
 extern char lc1[STRING_SHORT];
 extern char lc2[STRING_SHORT];
 extern char lc4[STRING_SHORT];
 extern char lc3[STRING_SHORT];
 extern char slc1[STRING_SHORT];
 extern char slc2[STRING_SHORT];
 extern char slc4[STRING_SHORT];
 extern char slc3[STRING_SHORT];
 extern char	mask_tmp[STRING_LONG];
 extern char quiz_target[STRING_SHORT];
 extern long slcn1;
 extern long slcn2;
 extern long slcn4;
 extern long slcn3;
 extern char *rp391;
 extern char BCOLON_NICK[STRING_SHORT];
 extern char DARKBOT_BIN[STRING_SHORT];
 extern char URL2[STRING_SHORT];
 extern char DBTIMERS_PATH[STRING_SHORT];
 extern char LOG_DIR[STRING_SHORT];
 extern char RDB_DIR[STRING_SHORT];
 #ifdef ENABLE_STATS
 extern char STATS_FILE[STRING_SHORT];
 #endif
 extern char SEEN_FILE[STRING_SHORT];
 extern char BACKUP_DUP[STRING_SHORT];
 extern char ADD_DELETES[STRING_SHORT];
 extern char AUTOTOPIC_F[STRING_SHORT];
 extern char HELPER_LIST[STRING_SHORT];
 extern char QUIZ_FILE[STRING_SHORT];
 extern char PERFORM[STRING_SHORT];
 extern char DEOP[STRING_SHORT];
 extern char RAND_SAY[STRING_SHORT];
 extern char RAND_FILE[STRING_SHORT];
 extern char RANDQ_TEMPFILE[STRING_SHORT];
 extern char RAND_BACKUP_FILE[STRING_SHORT];
 extern char SERVERS[STRING_SHORT];
 extern char PERMBAN[STRING_SHORT];
 extern char SETUP[STRING_SHORT];
 extern char DAT_DIR[STRING_SHORT];
 extern char r_reply[STRING_SHORT];
 extern char data[STRING_SHORT];
 extern char g_chan[STRING_SHORT];
 extern char dbVersion[STRING_SHORT];
 extern char strbuff[STRING_SHORT];
 extern char f_tmp[STRING_LONG];
 extern char UID[STRING_SHORT];
 extern char BS[STRING_SHORT];
 extern char CMDCHAR[2];
 extern char CHAN[STRING_SHORT];
 extern char s_Mynick[STRING_SHORT];
 extern char g_host[STRING_SHORT];
 extern char Mynick[STRING_SHORT];
 extern char sleep_chan[STRING_SHORT];
 extern char VHOST[STRING_SHORT];
 extern char REALNAME[STRING_SHORT];
 extern char privmsg_log[STRING_SHORT];
 
 extern long CONNECT_WAIT_TIMEOUT;
 extern bool PERFORM_TIMER;
 extern char DEFAULT_UMODE[STRING_SHORT];
 extern bool ANTI_IDLE;
 extern bool DISPLAY_SYNC;
 
 extern bool SORT;
 extern bool FIND_DUPS;
 extern bool SAVE_DUPS;
 extern bool GENERAL_QUESTIONS;
 extern bool MSG_RESPONSES;
 
 extern bool LOG_ADD_DELETES;
 extern bool LOG_PRIVMSG;
 
 extern long SLEEP_TIME;
 extern char GOSLEEP_ACTION[STRING_SHORT];
 extern char WAKEUP_ACTION[STRING_SHORT];
 
 extern long LASTCOMM_TIME;
 extern long OUTPUT1_COUNT;
 extern long OUTPUT1_DELAY;
 extern long OUTPUT2_COUNT;
 extern long OUTPUT2_DELAY;
 extern long OUTPUT3_DELAY;
 extern long OUTPUT_PURGE_COUNT;
 
 extern char EXISTING_ENTRY[STRING_SHORT];
 extern char NO_ENTRY[STRING_SHORT];
 //extern char CANT_FIND[STRING_SHORT];	/* ... */
 extern char NO_TOPIC[STRING_SHORT];	/* ... */
 extern char TRY_FIND[STRING_SHORT];
 extern char WHUT[STRING_SHORT];
 extern bool RANDOM_WHUT;
 extern char DUNNO_Q[STRING_SHORT];
 extern bool RANDOM_DUNNO;
 
 #ifdef ENABLE_RANDOM
 //extern bool RANDOM_STUFF;
 extern long RAND_STUFF_TIME;
 extern long RAND_IDLE;
 //extern long RAND_LEVEL;
 //extern bool RANDQ;
 extern bool BACKUP_RANDOMSTUFF;
 #endif
 
 extern bool JOIN_GREET;
 extern long SLASTCOMM_TIME;
 #ifdef ENABLE_CHANNEL
 extern bool VOICE_USERS_ON_JOIN;
 extern bool OP_USERS_ON_LOGIN;
 #endif
 
 extern bool DO_WHOIS;
 extern long MAX_LASTSEEN;
 extern char SEEN_REPLY[STRING_SHORT];
 
 extern char COMPLAIN_REASON[STRING_SHORT];
 #ifdef ENABLE_CHANNEL
 extern bool BITCH_ABOUT_DEOP;
 extern char BITCH_DEOP_REASON[STRING_SHORT];
 
 extern long AUTOTOPIC_TIME;
 extern char DEFAULT_KICK[STRING_SHORT];
 extern bool KICK_ON_BAN;
 
 extern bool KICK_ON_CHANNEL_NOTICE;
 extern bool BAN_ON_CHANNEL_NOTICE;
 extern bool BAN_BY_HOST;
 
 extern bool FLOOD_KICK;
 extern char FLOOD_REASON[STRING_SHORT];
 #endif
 
 #ifdef ENABLE_QUIZ
 extern long QUIZ_TIMER;
 extern long QUIZ_REPEAT_TIMER;
 #endif
 
 extern bool HELP_GREET;
 extern bool AUTOHELP_GUESTS;
 
 extern char mySetinfo[STRING_SHORT];
 extern char myVariables[STRING_SHORT];
 
 extern struct rusage r_usage;
 
 extern struct ignorelist
 {
     char nick[STRING_SHORT];
     struct ignorelist *next;
 }
  *ignorehead;
 
 extern struct sendq
 {
 	char data[STRING_SHORT];
 	struct sendq *next;
 }
  *sendqhead, *sendqtail;
 
 extern struct userlist
 {					/* internal userlist */
 	char chan[STRING_SHORT];
 	char nick[STRING_SHORT];
 	char uh[STRING_SHORT];
 	long flags;			/* op/voice/etc */
 	long level;			/* auth */
 	short global;			/* Global user? */
 	long idle;
 	struct userlist *next;
 }
  *userhead;
 
 extern struct helperlist
 {
 	char chan[STRING_SHORT];
 	char uh[STRING_SHORT];
 	char nick[STRING_SHORT];
 	long level;
 	size_t num_join;
 	char greetz[STRING_SHORT];
 	char pass[STRING_SHORT];
 	struct helperlist *next;
 }
  *helperhead;
 
 /**
  * 6/23/00 Dan
  * - Changed permbanlist to have dynamically allocated
  *   userhost and reason fields.
  * - Changed type of counter to size_t, this should be an
  *   unsigned type.
  */
 extern struct permbanlist
 {
 	char *uh;
 	char *reason;
 	size_t counter;
 
 	struct permbanlist *next;
 }
  *permbanhead;
 
 extern struct old
 {
 	char host[200];
 	long time;
 	int count;
 	int value;
 	int kick;
 }
  ood[STRING_SHORT];
 
 extern struct sl124
 {
 	char name[STRING_SHORT];
 	long port;
 	char pass[STRING_SHORT];
 	struct sl124 *next;
 }
  *sh124;
 
 #ifdef ENABLE_STATS
 extern struct statslist
 {
 	char nick[STRING_SHORT];
 	char uh[STRING_SHORT];
 	long total;
 	long added_time;
 	long last_time;
 
 	struct statslist *next;
 }
  *statshead;
 #endif
 
 extern struct	randstats
 {
 	char	chan	[STRING_SHORT];
 	size_t	Rand_Stuff;
 	size_t	Rand_Idle;
 	size_t	refnum;
 	size_t	nCount;		/* Number of times we outputted to this channel. */
 	struct	randstats	*next;
 /*	struct	randstats	*prev; */
 }	
  *randstatshead;
 
 struct chanserv_output
 {
     char                         *output;
     struct chanserv_output       *next;
 };
 
 extern struct webinfo
 {
 	char trigger[STRING_SHORT];
 	char host[STRING_SHORT];
 	int port;
 	char url[STRING_SHORT];
 }
  WEBSEARCH_webinfo, METAR_webinfo, TAF_webinfo, WEATHER_webinfo;
 
 
 enum setup_type
 {
    ST_BOOLEAN = 0,
    ST_INTEGER = 1,
    ST_STRING = 2
 };
 
 enum chanserv_invoke_type
 {
    DIRECT_INVOKE = 0,   // command
    ADDRESS_INVOKE = 1,  // bot: command
    MSG_INVOKE = 2,      // /msg bot command
    CHAR_INVOKE = 3      // !command
 };
 
 extern struct setup_parameter
 {
     enum setup_type	type;
     int			access;         /* Access level required to change the value. */
     size_t		max_size;
     char		*parameter[5];
     char		*summary;
     void		*value;         /* Where the value is stored. */
     void 		*(*func) (struct setup_parameter *parameter, char *ptr);  /* Optional function that can do other things with the value, and veto the change by returning NULL. */
 }
 parameters[];
+
+static char L[524];
+
+static int alarmed;
+static int socketfd;