From 338426cf849a686b14f35d2734b2523e13022cf7 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Mon, 11 Dec 2000 23:21:13 +0000
Subject: [PATCH] Eliminated sbbs_t::tmp (global "tmp" string variable). Each
 function that requires a temp string variable, now has its own "tmp" local
 variable.

---
 src/sbbs3/answer.cpp   |  1 +
 src/sbbs3/bat_xfer.cpp | 35 ++++++++++++++++++++---------------
 src/sbbs3/bulkmail.cpp |  8 +++++---
 src/sbbs3/chat.cpp     |  6 +++++-
 src/sbbs3/data.cpp     |  1 +
 src/sbbs3/download.cpp | 24 ++++++++++++++----------
 src/sbbs3/email.cpp    |  1 +
 src/sbbs3/exec.cpp     |  1 +
 src/sbbs3/execfunc.cpp |  1 +
 src/sbbs3/fido.cpp     | 12 +++++++-----
 src/sbbs3/file.cpp     |  5 +++--
 src/sbbs3/getnode.cpp  |  5 +++--
 src/sbbs3/inkey.cpp    |  1 +
 src/sbbs3/listfile.cpp | 37 ++++++++++++++++++++++---------------
 src/sbbs3/login.cpp    |  3 ++-
 src/sbbs3/logon.cpp    |  1 +
 src/sbbs3/logout.cpp   |  1 +
 src/sbbs3/msgtoqwk.cpp |  1 +
 src/sbbs3/netmail.cpp  |  2 ++
 src/sbbs3/newuser.cpp  |  4 +++-
 src/sbbs3/pack_qwk.cpp |  1 +
 src/sbbs3/pack_rep.cpp |  1 +
 src/sbbs3/qwk.cpp      |  2 ++
 src/sbbs3/readmail.cpp |  1 +
 src/sbbs3/sbbs.h       |  1 -
 src/sbbs3/scandirs.cpp | 14 ++++++++------
 src/sbbs3/scansubs.cpp | 10 ++++++----
 src/sbbs3/sortdir.cpp  | 13 +++++++------
 src/sbbs3/str.cpp      | 14 ++++++++------
 src/sbbs3/text_sec.cpp |  1 +
 src/sbbs3/tmp_xfer.cpp | 15 ++++++++-------
 src/sbbs3/un_qwk.cpp   |  1 +
 src/sbbs3/un_rep.cpp   |  1 +
 src/sbbs3/upload.cpp   |  1 +
 src/sbbs3/useredit.cpp |  6 ++++--
 src/sbbs3/viewfile.cpp | 13 ++++++++-----
 src/sbbs3/writemsg.cpp | 32 ++++++++++++++++++--------------
 src/sbbs3/xtrn_sec.cpp | 14 ++++++++------
 38 files changed, 179 insertions(+), 112 deletions(-)

diff --git a/src/sbbs3/answer.cpp b/src/sbbs3/answer.cpp
index 378454b8f1..9f0d771ba7 100644
--- a/src/sbbs3/answer.cpp
+++ b/src/sbbs3/answer.cpp
@@ -41,6 +41,7 @@
 bool sbbs_t::answer()
 {
 	char	str[256],str2[256],c;
+	char 	tmp[512];
 	int		i,l,in;
 	struct tm * tm;
 	struct in_addr addr;
diff --git a/src/sbbs3/bat_xfer.cpp b/src/sbbs3/bat_xfer.cpp
index 21b2940d16..1d066e1e2c 100644
--- a/src/sbbs3/bat_xfer.cpp
+++ b/src/sbbs3/bat_xfer.cpp
@@ -42,11 +42,12 @@
 /****************************************************************************/
 void sbbs_t::batchmenu()
 {
-    char str[129],tmp2[250],done=0,ch;
-	uint i,n,xfrprot,xfrdir;
-    ulong totalcdt,totalsize,totaltime;
-    time_t start,end;
-    file_t f;
+    char	str[129],tmp2[250],done=0,ch;
+	char 	tmp[512];
+	uint	i,n,xfrprot,xfrdir;
+    ulong	totalcdt,totalsize,totaltime;
+    time_t	start,end;
+    file_t	f;
 
 	if(!batdn_total && !batup_total && cfg.upload_dir==INVALID_DIR) {
 		bputs(text[NoFilesInBatchQueue]);
@@ -334,13 +335,14 @@ void sbbs_t::batchmenu()
 /****************************************************************************/
 void sbbs_t::start_batch_download()
 {
-	char ch,str[256],tmp2[256],tmp3[128],fname[64];
-    int j;
-    uint i,xfrprot;
-    ulong totalcdt,totalsize,totaltime;
-    time_t start,end,t;
-	struct tm * tm;
-    file_t f;
+	char	ch,str[256],tmp2[256],tmp3[128],fname[64];
+	char 	tmp[512];
+    int		j;
+    uint	i,xfrprot;
+    ulong	totalcdt,totalsize,totaltime;
+    time_t	start,end,t;
+	struct	tm * tm;
+    file_t	f;
 
 	if(useron.rest&FLAG('D')) {     /* Download restriction */
 		bputs(text[R_Download]);
@@ -561,6 +563,7 @@ bool sbbs_t::create_batchup_lst()
 bool sbbs_t::create_bimodem_pth()
 {
     char	str[256],tmp2[512];
+	char 	tmp[512];
     int		file;
 	uint	i;
 
@@ -597,6 +600,7 @@ bool sbbs_t::create_bimodem_pth()
 void sbbs_t::batch_upload()
 {
     char	str1[256],str2[256];
+	char 	tmp[512];
 	uint	i,j,x,y;
     file_t	f;
 	DIR*	dir;
@@ -760,9 +764,10 @@ void sbbs_t::batch_add_list(char *list)
 /**************************************************************************/
 bool sbbs_t::addtobatdl(file_t* f)
 {
-    char str[256],tmp2[256];
-    uint i;
-	ulong totalcdt, totalsize, totaltime;
+    char	str[256],tmp2[256];
+	char 	tmp[512];
+    uint	i;
+	ulong	totalcdt, totalsize, totaltime;
 
 	if(useron.rest&FLAG('D')) {
 		bputs(text[R_Download]);
diff --git a/src/sbbs3/bulkmail.cpp b/src/sbbs3/bulkmail.cpp
index 232413c254..90121cd095 100644
--- a/src/sbbs3/bulkmail.cpp
+++ b/src/sbbs3/bulkmail.cpp
@@ -42,6 +42,7 @@ void sbbs_t::bulkmail(uchar *ar)
 {
 	char	str[256],str2[256],msgpath[256],title[LEN_TITLE+1]
 			,buf[SDT_BLOCK_LEN],found=0;
+	char 	tmp[512];
 	ushort	xlat=XLAT_NONE,msgattr=0;
 	int 	i,j,x,file;
 	long	msgs=0;
@@ -191,9 +192,10 @@ void sbbs_t::bulkmail(uchar *ar)
 int sbbs_t::bulkmailhdr(uint usernum, smbmsg_t *msg, ushort msgattr, ulong offset
     , ulong length, char *title)
 {
-    char str[256];
-    int i,j;
-    node_t node;
+    char	str[256];
+	char 	tmp[512];
+    int		i,j;
+    node_t	node;
 
 	memset(msg,0,sizeof(smbmsg_t));
 	memcpy(msg->hdr.id,"SHD\x1a",4);
diff --git a/src/sbbs3/chat.cpp b/src/sbbs3/chat.cpp
index 47d9e66c67..2217e9635c 100644
--- a/src/sbbs3/chat.cpp
+++ b/src/sbbs3/chat.cpp
@@ -53,6 +53,7 @@ void sbbs_t::chatsection()
 			,usrs,preusrs,qusrs,*gurubuf=NULL,channel,savch,*p
 			,pgraph[400],buf[400]
 			,usr[MAX_NODES],preusr[MAX_NODES],qusr[MAX_NODES];
+	char 	tmp[512];
 	int 	file;
 	long	i,j,k,n;
 	node_t 	node;
@@ -662,7 +663,7 @@ void sbbs_t::privchat(bool local)
 				"\1rSplit-Screen \1cSysop\1r Chat          \1y"
 				"Time Left: \1g%-8s\1w"
 				" �����[\1i\1b%c\1n\1h]�����";
-
+	char 	tmp[512];
 	uchar	ch;
 	int 	in,out,i,n,echo=1,x,y,activity,remote_activity;
     int		local_y,remote_y;
@@ -1052,6 +1053,7 @@ void sbbs_t::privchat(bool local)
 int sbbs_t::getnodetopage(int all, int telegram)
 {
 	char	str[128];
+	char 	tmp[512];
 	uint 	i,j;
 	ulong	l;
 	node_t	node;
@@ -1153,6 +1155,7 @@ int sbbs_t::getnodetopage(int all, int telegram)
 void sbbs_t::nodemsg()
 {
 	char	str[256],line[256],buf[512],logbuf[512],ch;
+	char 	tmp[512];
 	int 	i,usernumber,done=0;
 	node_t	node,savenode;
 
@@ -1323,6 +1326,7 @@ void sbbs_t::guruchat(char *line, char *gurubuf, int gurunum)
 {
 	char	str[256],cstr[256],*ptr,*answer[100],answers,theanswer[769]
 			,mistakes=1,hu=0;
+	char 	tmp[512];
 	int		file;
 	uint 	c,i,j,k;
 	long 	len;
diff --git a/src/sbbs3/data.cpp b/src/sbbs3/data.cpp
index 260a6597ed..26fe9b1382 100644
--- a/src/sbbs3/data.cpp
+++ b/src/sbbs3/data.cpp
@@ -173,6 +173,7 @@ uint sbbs_t::gettotalfiles(uint dirnum)
 void sbbs_t::gettimeleft(void)
 {
     char    str[128];
+	char 	tmp[512];
     int     i;
     time_t  eventtime=0;
 	time_t	thisevent;
diff --git a/src/sbbs3/download.cpp b/src/sbbs3/download.cpp
index c0c95a6298..e5afffbec9 100644
--- a/src/sbbs3/download.cpp
+++ b/src/sbbs3/download.cpp
@@ -43,11 +43,12 @@
 /****************************************************************************/
 void sbbs_t::downloadfile(file_t* f)
 {
-    char str[256],fname[13];
-    int i,file;
-	long length,mod;
-    ulong l;
-	user_t uploader;
+    char	str[256],fname[13];
+	char 	tmp[512];
+    int		i,file;
+	long	length,mod;
+    ulong	l;
+	user_t	uploader;
 
 	getfiledat(&cfg,f); /* Get current data - right after download */
 	if((length=f->size)<0L)
@@ -144,7 +145,8 @@ void sbbs_t::downloadfile(file_t* f)
 /****************************************************************************/
 void sbbs_t::notdownloaded(ulong size, time_t start, time_t end)
 {
-    char str[256],tmp2[256];
+    char	str[256],tmp2[256];
+	char 	tmp[512];
 
 	sprintf(str,"Estimated Time: %s  Transfer Time: %s"
 		,sectostr(cur_cps ? size/cur_cps : 0,tmp)
@@ -213,7 +215,8 @@ int sbbs_t::protocol(char *cmdline, int cd)
 /****************************************************************************/
 void sbbs_t::autohangup()
 {
-    char a,c,k;
+    char	a,c,k;
+	char 	tmp[512];
 
 	if(online!=ON_REMOTE)
 		return;
@@ -255,9 +258,10 @@ void sbbs_t::autohangup()
 /****************************************************************************/
 bool sbbs_t::checkprotlog(file_t* f)
 {
-	char str[256],size[128];
-    int file;
-    FILE *stream;
+	char	str[256],size[128];
+	char 	tmp[512];
+    int		file;
+    FILE *	stream;
 
 	sprintf(str,"%sPROTOCOL.LOG",cfg.node_dir);
 	if((stream=fnopen(&file,str,O_RDONLY))==NULL) {
diff --git a/src/sbbs3/email.cpp b/src/sbbs3/email.cpp
index fbd34f1385..aadde22ae3 100644
--- a/src/sbbs3/email.cpp
+++ b/src/sbbs3/email.cpp
@@ -47,6 +47,7 @@ bool sbbs_t::email(int usernumber, char *top, char *subj, long mode)
 {
 	char	str[256],str2[256],msgpath[256],title[LEN_TITLE+1],ch
 			,buf[SDT_BLOCK_LEN];
+	char 	tmp[512];
 	ushort	xlat=XLAT_NONE,msgattr=0;
 	int 	i,j,x,file;
 	long	l;
diff --git a/src/sbbs3/exec.cpp b/src/sbbs3/exec.cpp
index 395c0c866b..497dba81d3 100644
--- a/src/sbbs3/exec.cpp
+++ b/src/sbbs3/exec.cpp
@@ -788,6 +788,7 @@ void sbbs_t::skipto(csi_t *csi, uchar inst)
 int sbbs_t::exec(csi_t *csi)
 {
 	char	str[256],*path;
+	char 	tmp[512];
 	uchar	buf[1025],ch;
 	int 	i,j,file;
 	long	l;
diff --git a/src/sbbs3/execfunc.cpp b/src/sbbs3/execfunc.cpp
index 67baa87107..4acb746ac5 100644
--- a/src/sbbs3/execfunc.cpp
+++ b/src/sbbs3/execfunc.cpp
@@ -44,6 +44,7 @@ extern RingBuf* node_inbuf[];
 int sbbs_t::exec_function(csi_t *csi)
 {
 	char	str[256],tmp2[128],ch;
+	char 	tmp[512];
 	uchar*	p;
 	char	ansi_seq[32];
 	int		ansi_len;
diff --git a/src/sbbs3/fido.cpp b/src/sbbs3/fido.cpp
index 1ace8395b8..50c04e814b 100644
--- a/src/sbbs3/fido.cpp
+++ b/src/sbbs3/fido.cpp
@@ -97,10 +97,11 @@ bool sbbs_t::lookup_netuser(char *into)
 /****************************************************************************/
 bool sbbs_t::netmail(char *into, char *title, long mode)
 {
-	char str[256],subj[128],to[256],fname[128],*buf,*p,ch;
-	int file,fido,x,cc_found,cc_sent;
-	uint i;
-	long length,l;
+	char	str[256],subj[128],to[256],fname[128],*buf,*p,ch;
+	char 	tmp[512];
+	int		file,fido,x,cc_found,cc_sent;
+	uint	i;
+	long	length,l;
 	faddr_t addr;
 	fmsghdr_t hdr;
 	struct tm * tm;
@@ -391,7 +392,8 @@ bool sbbs_t::netmail(char *into, char *title, long mode)
 void sbbs_t::qwktonetmail(FILE *rep, char *block, char *into, uchar fromhub)
 {
 	char	HUGE16 *qwkbuf,to[129],name[129],sender[129],senderaddr[129]
-		   ,str[256],*p,*cp,*addr,fulladdr[129],ch;
+			   ,str[256],*p,*cp,*addr,fulladdr[129],ch;
+	char 	tmp[512];
 	int 	i,fido,inet=0,qnet=0;
 	ushort	net,xlat;
 	long	l,offset,length,m,n;
diff --git a/src/sbbs3/file.cpp b/src/sbbs3/file.cpp
index 8732762b52..69262cf63d 100644
--- a/src/sbbs3/file.cpp
+++ b/src/sbbs3/file.cpp
@@ -73,8 +73,9 @@ void sbbs_t::getextdesc(uint dirnum, ulong datoffset, char *ext)
 /****************************************************************************/
 void sbbs_t::fileinfo(file_t* f)
 {
-	char fname[13],ext[513];
-	uint i,j;
+	char	fname[13],ext[513];
+	char 	tmp[512];
+	uint	i,j;
 
 	for(i=0;i<usrlibs;i++)
 		if(usrlib[i]==cfg.dir[f->dir]->lib)
diff --git a/src/sbbs3/getnode.cpp b/src/sbbs3/getnode.cpp
index 06fd4e5bd6..799aac0571 100644
--- a/src/sbbs3/getnode.cpp
+++ b/src/sbbs3/getnode.cpp
@@ -330,8 +330,9 @@ int sbbs_t::whos_online(bool listself)
 /****************************************************************************/
 void sbbs_t::printnodedat(uint number, node_t* node)
 {
-    uint i;
-    char hour,mer[3];
+    uint	i;
+    char	hour,mer[3];
+	char 	tmp[512];
 
 	attr(cfg.color[clr_nodenum]);
 	bprintf("%3d  ",number);
diff --git a/src/sbbs3/inkey.cpp b/src/sbbs3/inkey.cpp
index e9828503e7..0a3171c226 100644
--- a/src/sbbs3/inkey.cpp
+++ b/src/sbbs3/inkey.cpp
@@ -48,6 +48,7 @@
 char sbbs_t::inkey(long mode)
 {
 	char	str[512];
+	char 	tmp[512];
 	uchar	ch=0;
 	uint	i,j;
 
diff --git a/src/sbbs3/listfile.cpp b/src/sbbs3/listfile.cpp
index d29c492b3a..b0f6772817 100644
--- a/src/sbbs3/listfile.cpp
+++ b/src/sbbs3/listfile.cpp
@@ -51,6 +51,7 @@ int extdesclines(char *str);
 int sbbs_t::listfiles(uint dirnum, char *filespec, int tofile, long mode)
 {
 	char	str[256],hdr[256],c,d,letter='A',*p,*datbuf,ext[513];
+	char 	tmp[512];
 	uchar*	ixbbuf;
 	uchar	flagprompt=0;
 	uint	i,j;
@@ -370,10 +371,11 @@ int sbbs_t::listfiles(uint dirnum, char *filespec, int tofile, long mode)
 bool sbbs_t::listfile(char *fname, char HUGE16 *buf, uint dirnum
 	, char *search, char letter, ulong datoffset)
 {
-	char str[256],ext[513]="",*ptr,*cr,*lf,exist=1;
-    uchar alt;
-    int i,j;
-    ulong cdt;
+	char	str[256],ext[513]="",*ptr,*cr,*lf,exist=1;
+	char 	tmp[512];
+    uchar	alt;
+    int		i,j;
+    ulong	cdt;
 
 	if(buf[F_MISC]!=ETX && (buf[F_MISC]-SP)&FM_EXTDESC && useron.misc&EXTDESC) {
 		getextdesc(dirnum,datoffset,ext);
@@ -483,9 +485,10 @@ void sbbs_t::clearline(void)
 /****************************************************************************/
 bool sbbs_t::removefcdt(file_t* f)
 {
-	char str[128];
-	int u;
-	long cdt;
+	char	str[128];
+	char 	tmp[512];
+	int		u;
+	long	cdt;
 
 	if((u=matchuser(&cfg,f->uler))==0) {
 	   bputs(text[UnknownUser]);
@@ -561,9 +564,10 @@ bool sbbs_t::movefile(file_t* f, int newdir)
 int sbbs_t::batchflagprompt(uint dirnum, file_t* bf, uint total
 							,long totalfiles)
 {
-	char ch,c,d,str[256],fname[128],*p,remcdt,remfile;
-	uint i,j,ml,md,udir,ulib;
-	file_t f;
+	char	ch,c,d,str[256],fname[128],*p,remcdt,remfile;
+	char 	tmp[512];
+	uint	i,j,ml,md,udir,ulib;
+	file_t	f;
 
 	for(ulib=0;ulib<usrlibs;ulib++)
 		if(usrlib[ulib]==cfg.dir[dirnum]->lib)
@@ -817,7 +821,8 @@ int sbbs_t::batchflagprompt(uint dirnum, file_t* bf, uint total
 int sbbs_t::listfileinfo(uint dirnum, char *filespec, long mode)
 {
 	char	str[258],path[258],dirpath[256],done=0,ch,fname[13],ext[513];
-	uchar HUGE16 *ixbbuf,*usrxfrbuf=NULL,*p;
+	char 	tmp[512];
+	uchar	*ixbbuf,*usrxfrbuf=NULL,*p;
 	int		file;
 	int		found=0;
     uint	i,j;
@@ -1271,9 +1276,11 @@ int sbbs_t::listfileinfo(uint dirnum, char *filespec, long mode)
 /****************************************************************************/
 void sbbs_t::listfiletofile(char *fname, char HUGE16 *buf, uint dirnum, int file)
 {
-    char str[256],exist=1;
-    uchar alt;
-    ulong cdt;
+    char	str[256];
+	char 	tmp[512];
+    uchar	alt;
+    ulong	cdt;
+	bool	exist=true;
 
 	strcpy(str,fname);
 	if(buf[F_MISC]!=ETX && (buf[F_MISC]-SP)&FM_EXTDESC)
@@ -1286,7 +1293,7 @@ void sbbs_t::listfiletofile(char *fname, char HUGE16 *buf, uint dirnum, int file
 	sprintf(str,"%s%s",alt>0 && alt<=cfg.altpaths ? cfg.altpath[alt-1]
 		: cfg.dir[dirnum]->path,unpadfname(fname,tmp));
 	if(cfg.dir[dirnum]->misc&DIR_FCHK && !fexist(str))
-		exist=0;
+		exist=false;
 	getrec((char *)buf,F_CDT,LEN_FCDT,str);
 	cdt=atol(str);
 	if(!cdt)
diff --git a/src/sbbs3/login.cpp b/src/sbbs3/login.cpp
index f4e3281c07..6e0a952fce 100644
--- a/src/sbbs3/login.cpp
+++ b/src/sbbs3/login.cpp
@@ -40,7 +40,8 @@
 
 int sbbs_t::login(char *str, char *pw)
 {
-	long useron_misc=useron.misc;
+	char 	tmp[512];
+	long	useron_misc=useron.misc;
 
 	useron.number=0;
 	if(cfg.node_dollars_per_call && noyes(text[AreYouSureQ]))
diff --git a/src/sbbs3/logon.cpp b/src/sbbs3/logon.cpp
index 3340e3f6c3..92a61eebe5 100644
--- a/src/sbbs3/logon.cpp
+++ b/src/sbbs3/logon.cpp
@@ -47,6 +47,7 @@ extern "C" void client_on(SOCKET sock, client_t* client);
 bool sbbs_t::logon()
 {
 	char	str[256],c;
+	char 	tmp[512];
 	int 	file;
 	uint	i,j,mailw;
 	ulong	totallogons;
diff --git a/src/sbbs3/logout.cpp b/src/sbbs3/logout.cpp
index a73baa2a90..d30bdb12b8 100644
--- a/src/sbbs3/logout.cpp
+++ b/src/sbbs3/logout.cpp
@@ -44,6 +44,7 @@
 void sbbs_t::logout()
 {
 	char	str[256];
+	char 	tmp[512];
 	int 	i,j;
 	ushort	ttoday;
 	node_t	node;
diff --git a/src/sbbs3/msgtoqwk.cpp b/src/sbbs3/msgtoqwk.cpp
index 90287b5fee..2502baed53 100644
--- a/src/sbbs3/msgtoqwk.cpp
+++ b/src/sbbs3/msgtoqwk.cpp
@@ -48,6 +48,7 @@ ulong sbbs_t::msgtoqwk(smbmsg_t* msg, FILE *qwk_fp, long mode, int subnum
 	, int conf)
 {
 	char	str[512],from[512],to[512],ch,tear=0,tearwatch=0,HUGE16 *buf,*p;
+	char 	tmp[512];
 	long	l,size=0,offset;
 	int 	i;
 	struct	tm	tm;
diff --git a/src/sbbs3/netmail.cpp b/src/sbbs3/netmail.cpp
index eb569e1360..a42a4000f8 100644
--- a/src/sbbs3/netmail.cpp
+++ b/src/sbbs3/netmail.cpp
@@ -44,6 +44,7 @@ bool sbbs_t::inetmail(char *into, char *subj, long mode)
 {
 	char	str[256],str2[256],msgpath[256],title[256],name[256],ch
 			,buf[SDT_BLOCK_LEN],*p,addr[256],*uname_p;
+	char 	tmp[512];
 	char	your_addr[128];
 	ushort	xlat=XLAT_NONE,net=NET_INTERNET;
 	int 	i,j,x,file;
@@ -289,6 +290,7 @@ bool sbbs_t::qnetmail(char *into, char *subj, long mode)
 {
 	char	str[256],msgpath[128],title[128],to[128],fulladdr[128]
 			,buf[SDT_BLOCK_LEN],*addr;
+	char 	tmp[512];
 	ushort	xlat=XLAT_NONE,net=NET_QWK,touser;
 	int 	i,j,x,file;
 	ulong	length,offset;
diff --git a/src/sbbs3/newuser.cpp b/src/sbbs3/newuser.cpp
index 6146354599..a44849ecda 100644
--- a/src/sbbs3/newuser.cpp
+++ b/src/sbbs3/newuser.cpp
@@ -45,10 +45,12 @@
 /****************************************************************************/
 void sbbs_t::newuser()
 {
-	char	c,str[512],usa;
+	char	c,str[512];
+	char 	tmp[512];
 	int 	file;
 	uint	i,j;
 	long	misc;
+	bool	usa;
 	FILE	*stream;
 
 	if(cur_rate<cfg.node_minbps) {
diff --git a/src/sbbs3/pack_qwk.cpp b/src/sbbs3/pack_qwk.cpp
index 16c2b2d0ec..209027838e 100644
--- a/src/sbbs3/pack_qwk.cpp
+++ b/src/sbbs3/pack_qwk.cpp
@@ -45,6 +45,7 @@
 bool sbbs_t::pack_qwk(char *packet, ulong *msgcnt, bool prepack)
 {
 	char	str[256],tmp2[256],ch,*p;
+	char 	tmp[512];
 	char*	fname;
 	int 	file,mode;
 	uint	i,j,k,conf;
diff --git a/src/sbbs3/pack_rep.cpp b/src/sbbs3/pack_rep.cpp
index 03b93f4a98..77fb8f5571 100644
--- a/src/sbbs3/pack_rep.cpp
+++ b/src/sbbs3/pack_rep.cpp
@@ -46,6 +46,7 @@
 bool sbbs_t::pack_rep(uint hubnum)
 {
 	char	str[256],tmp2[256];
+	char 	tmp[512];
 	int 	file,mode;
 	uint	i,j,k;
 	long	l,msgcnt,submsgs,posts,packedmail,netfiles=0,deleted;
diff --git a/src/sbbs3/qwk.cpp b/src/sbbs3/qwk.cpp
index d69b57fcac..7e875551f7 100644
--- a/src/sbbs3/qwk.cpp
+++ b/src/sbbs3/qwk.cpp
@@ -405,6 +405,7 @@ void sbbs_t::qwk_sec()
 {
 	char	str[256],tmp2[256],ch,bi=0
 			,*AttemptedToDownloadQWKpacket="Attempted to download QWK packet";
+	char 	tmp[512];
 	int 	s;
 	uint	i,j,k;
 	ulong	msgcnt;
@@ -809,6 +810,7 @@ void sbbs_t::qwksetptr(uint subnum, char *buf, int reset)
 void sbbs_t::qwkcfgline(char *buf,uint subnum)
 {
 	char	str[128];
+	char 	tmp[512];
 	uint 	x,y;
 	long	l;
 	ulong	qwk=useron.qwk;
diff --git a/src/sbbs3/readmail.cpp b/src/sbbs3/readmail.cpp
index dee2ebcf87..6b4bf62e40 100644
--- a/src/sbbs3/readmail.cpp
+++ b/src/sbbs3/readmail.cpp
@@ -44,6 +44,7 @@ void sbbs_t::readmail(uint usernumber, int which)
 {
 	char	str[256],str2[256],str3[256],done=0,domsg=1
 			,*p,*tp,*sp,ch;
+	char 	tmp[512];
 	int		i,j;
 	int		mismatches=0,act;
 	ulong 	msgs,curmsg;
diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h
index 5fbf7866ac..4eb8f0b808 100644
--- a/src/sbbs3/sbbs.h
+++ b/src/sbbs3/sbbs.h
@@ -208,7 +208,6 @@ public:
 	int		lbuflen;		/* Number of characters in line buffer */
 	char 	latr;			/* Starting attribute of line buffer */
 	ulong	console;		/* Defines current Console settings */
-	char 	tmp[512];		/* Used all over as temp string */
 	char 	wordwrap[81];	/* Word wrap buffer */
 	time_t	now,			/* Used to store current time in Unix format */
 			answertime, 	/* Time call was answered */
diff --git a/src/sbbs3/scandirs.cpp b/src/sbbs3/scandirs.cpp
index 331bdb5cf0..d50a48fd31 100644
--- a/src/sbbs3/scandirs.cpp
+++ b/src/sbbs3/scandirs.cpp
@@ -42,9 +42,10 @@
 /****************************************************************************/
 void sbbs_t::scandirs(long mode)
 {
-	char ch,str[256];
-	int s;
-	uint i,k;
+	char	ch,str[256];
+	char 	tmp[512];
+	int		s;
+	uint	i,k;
 
 	if(!usrlibs) return;
 	mnemonics(text[DirLibOrAll]);
@@ -108,9 +109,10 @@ void sbbs_t::scandirs(long mode)
 /****************************************************************************/
 void sbbs_t::scanalldirs(long mode)
 {
-	char str[256];
-	int s;
-	uint i,j,k,d;
+	char	str[256];
+	char 	tmp[512];
+	int		s;
+	uint	i,j,k,d;
 
 	if(!usrlibs) return;
 	k=0;
diff --git a/src/sbbs3/scansubs.cpp b/src/sbbs3/scansubs.cpp
index 40abec293a..8acc334ff1 100644
--- a/src/sbbs3/scansubs.cpp
+++ b/src/sbbs3/scansubs.cpp
@@ -42,8 +42,9 @@
 /****************************************************************************/
 void sbbs_t::scansubs(long mode)
 {
-	char ch,str[256];
-	uint i=0,found=0;
+	char	ch,str[256];
+	char 	tmp[512];
+	uint	i=0,found=0;
 
 	mnemonics(text[SubGroupOrAll]);
 	ch=(char)getkeys("SGA\r",0);
@@ -108,8 +109,9 @@ void sbbs_t::scansubs(long mode)
 /****************************************************************************/
 void sbbs_t::scanallsubs(long mode)
 {
-	char str[256];
-	uint i,j,found=0;
+	char	str[256];
+	char 	tmp[512];
+	uint	i,j,found=0;
 
 	if(/* action==NODE_MAIN && */ mode&(SCAN_FIND|SCAN_TOYOU)) {
 		i=yesno(text[DisplayTitlesOnlyQ]);
diff --git a/src/sbbs3/sortdir.cpp b/src/sbbs3/sortdir.cpp
index 048bd25d2c..31c71eee2a 100644
--- a/src/sbbs3/sortdir.cpp
+++ b/src/sbbs3/sortdir.cpp
@@ -42,12 +42,13 @@
 /****************************************************************************/
 void sbbs_t::resort(uint dirnum)
 {
-	char str[25],ixbfname[128],datfname[128],exbfname[128],txbfname[128]
-		,ext[512],nulbuf[512];
-	uchar HUGE16 *ixbbuf, HUGE16 *datbuf;
-	uchar HUGE16 *ixbptr[MAX_FILES];
-	int ixbfile,datfile,exbfile,txbfile,i,j;
-	long ixblen,datlen,offset,newoffset,l;
+	char	str[25],ixbfname[128],datfname[128],exbfname[128],txbfname[128]
+			,ext[512],nulbuf[512];
+	char 	tmp[512];
+	uchar*	ixbbuf, *datbuf;
+	uchar*	ixbptr[MAX_FILES];
+	int		ixbfile,datfile,exbfile,txbfile,i,j;
+	long	ixblen,datlen,offset,newoffset,l;
 
 	memset(nulbuf,0,512);
 	bprintf(text[ResortLineFmt],cfg.lib[cfg.dir[dirnum]->lib]->sname,cfg.dir[dirnum]->sname);
diff --git a/src/sbbs3/str.cpp b/src/sbbs3/str.cpp
index 0e0b0b4265..e416869ac5 100644
--- a/src/sbbs3/str.cpp
+++ b/src/sbbs3/str.cpp
@@ -46,10 +46,11 @@ const char *mon[]={"Jan","Feb","Mar","Apr","May","Jun"
 /****************************************************************************/
 void sbbs_t::userlist(char mode)
 {
-	char name[256],sort=0;
-	int i,j,k,users=0;
-	char *line[1000];
-	user_t user;
+	char	name[256],sort=0;
+	char 	tmp[512];
+	int		i,j,k,users=0;
+	char *	line[1000];
+	user_t	user;
 
 	if(lastuser(&cfg)<=1000)
 		sort=yesno(text[SortAlphaQ]);
@@ -800,8 +801,9 @@ bool sbbs_t::trashcan(char *insearch, char *name)
 void sbbs_t::errormsg(int line, char *source, char action, char *object
 					  ,ulong access, char *extinfo)
 {
-    char str[512];
-    char actstr[256];
+    char	str[512];
+	char 	tmp[512];
+    char	actstr[256];
 
 	if(errormsg_inside)
 		return;
diff --git a/src/sbbs3/text_sec.cpp b/src/sbbs3/text_sec.cpp
index debc44f3fc..cfafe917bf 100644
--- a/src/sbbs3/text_sec.cpp
+++ b/src/sbbs3/text_sec.cpp
@@ -49,6 +49,7 @@ int sbbs_t::text_sec()
 {
 	char	str[256],usemenu
 			,*file[MAX_TXTFILES],addpath[83],addstr[83],*buf,ch;
+	char 	tmp[512];
 	long	i,j,usrsec[MAX_TXTSECS],usrsecs,cursec;
     long    l,length;
     FILE    *stream;
diff --git a/src/sbbs3/tmp_xfer.cpp b/src/sbbs3/tmp_xfer.cpp
index eade79f7a9..658d4011a8 100644
--- a/src/sbbs3/tmp_xfer.cpp
+++ b/src/sbbs3/tmp_xfer.cpp
@@ -43,13 +43,14 @@
 /*****************************************************************************/
 void sbbs_t::temp_xfer()
 {
-    char str[256],tmp2[256],done=0,ch;
-    uint i,dirnum=cfg.total_dirs,j,files;
-    ulong bytes;
-	ulong space;
-    time_t start,end,t;
-    file_t f;
-	glob_t g;
+    char	str[256],tmp2[256],done=0,ch;
+	char 	tmp[512];
+    uint	i,dirnum=cfg.total_dirs,j,files;
+    ulong	bytes;
+	ulong	space;
+    time_t	start,end,t;
+    file_t	f;
+	glob_t	g;
 	struct	tm * tm;
 
 	if(!usrlibs)
diff --git a/src/sbbs3/un_qwk.cpp b/src/sbbs3/un_qwk.cpp
index 4038fcbab0..fac926b2d7 100644
--- a/src/sbbs3/un_qwk.cpp
+++ b/src/sbbs3/un_qwk.cpp
@@ -44,6 +44,7 @@
 bool sbbs_t::unpack_qwk(char *packet,uint hubnum)
 {
 	char	str[256],fname[128];
+	char 	tmp[512];
 	uchar	block[128];
 	int 	k,file;
 	uint	i,j,n,lastsub=INVALID_SUB;
diff --git a/src/sbbs3/un_rep.cpp b/src/sbbs3/un_rep.cpp
index f1cfce9103..d918b126fb 100644
--- a/src/sbbs3/un_rep.cpp
+++ b/src/sbbs3/un_rep.cpp
@@ -45,6 +45,7 @@ bool sbbs_t::unpack_rep(char* repfile)
 {
 	char	str[256],fname[128]
 			,*AttemptedToUploadREPpacket="Attempted to upload REP packet";
+	char 	tmp[512];
 	char	block[128];
 	int 	file;
 	uint	i,j,k,lastsub=INVALID_SUB;
diff --git a/src/sbbs3/upload.cpp b/src/sbbs3/upload.cpp
index ccd508acbd..7cf8ab0b03 100644
--- a/src/sbbs3/upload.cpp
+++ b/src/sbbs3/upload.cpp
@@ -252,6 +252,7 @@ void sbbs_t::upload(uint dirnum)
 {
 	char	str[256],src[256]={""},descbeg[25]={""},descend[25]={""},path[256]
 				,fname[13],keys[256],ch,*p;
+	char 	tmp[512];
     time_t	start,end;
     uint	i,j,k,destuser[MAX_USERXFER],destusers=0;
 	int		file;
diff --git a/src/sbbs3/useredit.cpp b/src/sbbs3/useredit.cpp
index 44eb64cadf..7a573536bf 100644
--- a/src/sbbs3/useredit.cpp
+++ b/src/sbbs3/useredit.cpp
@@ -52,6 +52,7 @@
 void sbbs_t::useredit(int usernumber, int local)
 {
 	char	str[256],tmp2[256],tmp3[256],c,stype=SEARCH_TXT;
+	char 	tmp[512];
 	char	search[256]={""},artxt[128]={""};
 	uchar	*ar=NULL;
 	uint	i,j,k;
@@ -731,8 +732,9 @@ int sbbs_t::searchdn(char *search,int usernum)
 /****************************************************************************/
 void sbbs_t::maindflts(user_t* user)
 {
-	char str[256],ch;
-	int i;
+	char	str[256],ch;
+	char 	tmp[512];
+	int		i;
 
 	action=NODE_DFLT;
 	while(online) {
diff --git a/src/sbbs3/viewfile.cpp b/src/sbbs3/viewfile.cpp
index 7b40502341..1b8bd1f006 100644
--- a/src/sbbs3/viewfile.cpp
+++ b/src/sbbs3/viewfile.cpp
@@ -45,7 +45,8 @@
 /****************************************************************************/
 int sbbs_t::viewfile(file_t* f, int ext)
 {
-	char ch,str[256];
+	char	ch,str[256];
+	char 	tmp[512];
 
 	curdirnum=f->dir;	/* for ARS */
 	while(online) {
@@ -82,8 +83,9 @@ int sbbs_t::viewfile(file_t* f, int ext)
 /*****************************************************************************/
 void sbbs_t::viewfiles(uint dirnum, char *fspec)
 {
-    char viewcmd[256];
-    int i;
+    char	viewcmd[256];
+	char 	tmp[512];
+    int		i;
 
 	curdirnum=dirnum;	/* for ARS */
 	sprintf(viewcmd,"%s%s",cfg.dir[dirnum]->path,fspec);
@@ -108,8 +110,9 @@ void sbbs_t::viewfiles(uint dirnum, char *fspec)
 /****************************************************************************/
 void sbbs_t::viewfilecontents(file_t* f)
 {
-	char str[128],cmd[128];
-	int i;
+	char	str[128],cmd[128];
+	char 	tmp[512];
+	int		i;
 
 	if(f->size<=0L) {
 		bputs(text[FileNotThere]);
diff --git a/src/sbbs3/writemsg.cpp b/src/sbbs3/writemsg.cpp
index 63ec9e2738..0184fc92df 100644
--- a/src/sbbs3/writemsg.cpp
+++ b/src/sbbs3/writemsg.cpp
@@ -51,12 +51,13 @@ void quotestr(char *str);
 bool sbbs_t::writemsg(char *fname, char *top, char *title, long mode, int subnum
 	,char *dest)
 {
-	char str[256],quote[128],msgtmp[32],c,HUGE16 *buf,ex_mode=0,*p,*tp
-		,useron_level;
-	int i,j,file,linesquoted=0;
-	long length,qlen,qtime;
-	ulong l;
-	FILE *stream;
+	char	str[256],quote[128],msgtmp[32],c,HUGE16 *buf,ex_mode=0,*p,*tp
+				,useron_level;
+	char 	tmp[512];
+	int		i,j,file,linesquoted=0;
+	long	length,qlen,qtime;
+	ulong	l;
+	FILE *	stream;
 
 	useron_level=useron.level;
 
@@ -493,9 +494,10 @@ void sbbs_t::removeline(char *str, char *str2, char num, char skip)
 /*****************************************************************************/
 ulong sbbs_t::msgeditor(char *buf, char *top, char *title)
 {
-	int i,j,line,lines=0,maxlines;
-	char strin[256],**str,done=0;
-    ulong l,m;
+	int		i,j,line,lines=0,maxlines;
+	char	strin[256],**str,done=0;
+	char 	tmp[512];
+    ulong	l,m;
 
 	if(online==ON_REMOTE) {
 		rioctl(IOCM|ABORT);
@@ -844,8 +846,9 @@ void sbbs_t::copyfattach(uint to, uint from, char *title)
 /****************************************************************************/
 void sbbs_t::forwardmail(smbmsg_t *msg, int usernumber)
 {
-	char str[256],touser[128];
-	int i;
+	char		str[256],touser[128];
+	char 		tmp[512];
+	int			i;
 	node_t		node;
 	msghdr_t	hdr=msg->hdr;
 	idxrec_t	idx=msg->idx;
@@ -933,9 +936,10 @@ void sbbs_t::forwardmail(smbmsg_t *msg, int usernumber)
 /****************************************************************************/
 void sbbs_t::automsg()
 {
-    char str[256],buf[300],anon=0;
-	char automsg[MAX_PATH];
-    int file;
+    char	str[256],buf[300],anon=0;
+	char 	tmp[512];
+	char	automsg[MAX_PATH];
+    int		file;
 
 	sprintf(automsg,"%smsgs/auto.msg",cfg.data_dir);
 	while(online) {
diff --git a/src/sbbs3/xtrn_sec.cpp b/src/sbbs3/xtrn_sec.cpp
index 46e62871ae..0c67f6e4d9 100644
--- a/src/sbbs3/xtrn_sec.cpp
+++ b/src/sbbs3/xtrn_sec.cpp
@@ -247,7 +247,8 @@ time_t juliantounix(ulong j)
 void sbbs_t::xtrndat(char *name, char *dropdir, uchar type, ulong tleft
 					,ulong misc)
 {
-	char str[1024],tmp2[128],c,*p;
+	char	str[1024],tmp2[128],c,*p;
+	char 	tmp[512];
 	int		i,file;
 	ushort	w;
 	long	l;
@@ -1133,11 +1134,12 @@ void sbbs_t::xtrndat(char *name, char *dropdir, uchar type, ulong tleft
 /****************************************************************************/
 void sbbs_t::moduserdat(uint xtrnnum)
 {
-	char str[256],path[256],c,startup[128];
-	uint i;
-	long mod;
-    int file;
-    FILE *stream;
+	char	str[256],path[256],c,startup[128];
+	char 	tmp[512];
+	uint	i;
+	long	mod;
+    int		file;
+    FILE *	stream;
 
 	sprintf(startup,"%s/",cfg.xtrn[xtrnnum]->path);
 	if(cfg.xtrn[xtrnnum]->type==XTRN_RBBS) {
-- 
GitLab