Synchronet now requires the libarchive development package (e.g. libarchive-dev on Debian-based Linux distros, libarchive.org for more info) to build successfully.

Commit 16798ad1 authored by rswindell's avatar rswindell

Miscellaneous changes for GCC/mingw32 compatibility.

parent e5487096
......@@ -64,14 +64,14 @@ time_t dstrtounix(scfg_t* cfg, char *str)
/****************************************************************************/
/* Converts unix time format (long - time_t) into a char str MM/DD/YY */
/****************************************************************************/
char * unixtodstr(scfg_t* cfg, time_t unix, char *str)
char * unixtodstr(scfg_t* cfg, time_t unix_time, char *str)
{
struct tm* tm;
if(!unix)
if(!unix_time)
strcpy(str,"00/00/00");
else {
tm=gmtime(&unix);
tm=gmtime(&unix_time);
if(tm==NULL) {
strcpy(str,"00/00/00");
return(str);
......
......@@ -40,10 +40,21 @@
#include <sys/locking.h>
#ifdef __BORLANDC__
#include <dirent.h>
#define getfattr(p) _chmod(p,0,0)
#elif defined(_MSC_VER)
#include "msdirent.h"
#else
#include <dirent.h> /* mingw32 supplied */
#warning need getfattr() function
#define getfattr(p) 0
#endif
int sbbs_t::exec_misc(csi_t *csi, char *path)
......@@ -61,7 +72,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
case CS_VAR_INSTRUCTION:
switch(*(csi->ip++)) { /* sub-op-code stored as next byte */
case PRINT_VAR:
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
if(!pp || !*pp) {
lp=getintvar(csi,*(long *)csi->ip);
if(lp)
......@@ -217,7 +228,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
return(0);
case SET_STR_VAR:
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4; /* Skip variable name */
if(pp)
*pp=copystrvar(csi,*pp
......@@ -232,7 +243,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
csi->ip+=4; /* Skip value */
return(0);
case COMPARE_STR_VAR:
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4; /* Skip variable name */
if(pp && *pp)
csi->logic=stricmp(*pp
......@@ -245,7 +256,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
while(*(csi->ip++)); /* Find NULL */
return(0);
case STRSTR_VAR:
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4; /* Skip variable name */
if(pp && *pp && strstr(*pp
,cmdstr((char *)csi->ip,path,csi->str,buf)))
......@@ -256,7 +267,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
return(0);
case STRNCMP_VAR:
i=*csi->ip++;
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4; /* Skip variable name */
if(pp && *pp)
csi->logic=strnicmp(*pp
......@@ -267,9 +278,9 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
return(0);
case STRNCMP_VARS:
i=*csi->ip++;
(char **)pp1=getstrvar(csi,*(long *)csi->ip);
pp1=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4; /* Skip variable name */
(char **)pp2=getstrvar(csi,*(long *)csi->ip);
pp2=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4;
if(pp1 && *pp1 && pp2 && *pp2)
csi->logic=strnicmp(*pp1,*pp2,i);
......@@ -277,9 +288,9 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
csi->logic=LOGIC_FALSE;
return(0);
case STRSTR_VARS:
(char **)pp1=getstrvar(csi,*(long *)csi->ip);
pp1=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4; /* Skip variable name */
(char **)pp2=getstrvar(csi,*(long *)csi->ip);
pp2=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4;
if(pp1 && *pp1 && pp2 && *pp2 && strstr(*pp1,*pp2))
csi->logic=LOGIC_TRUE;
......@@ -303,11 +314,11 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
return(0);
case COMPARE_VARS:
lp1=lp2=0;
(char **)pp1=getstrvar(csi,*(long *)csi->ip);
pp1=getstrvar(csi,*(long *)csi->ip);
if(!pp1)
lp1=getintvar(csi,*(long *)csi->ip);
csi->ip+=4; /* Skip variable name */
(char **)pp2=getstrvar(csi,*(long *)csi->ip);
pp2=getstrvar(csi,*(long *)csi->ip);
if(!pp2)
lp2=getintvar(csi,*(long *)csi->ip);
csi->ip+=4; /* Skip variable name */
......@@ -347,11 +358,11 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
return(0);
case COPY_VAR:
lp1=lp2=0;
(char **)pp1=getstrvar(csi,*(long *)csi->ip);
pp1=getstrvar(csi,*(long *)csi->ip);
if(!pp1)
lp1=getintvar(csi,*(long *)csi->ip);
csi->ip+=4; /* Skip variable name */
(char **)pp2=getstrvar(csi,*(long *)csi->ip);
pp2=getstrvar(csi,*(long *)csi->ip);
if(!pp2)
lp2=getintvar(csi,*(long *)csi->ip);
csi->ip+=4; /* Skip variable name */
......@@ -376,11 +387,11 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
return(0);
case SWAP_VARS:
lp1=lp2=0;
(char **)pp1=getstrvar(csi,*(long *)csi->ip);
pp1=getstrvar(csi,*(long *)csi->ip);
if(!pp1)
lp1=getintvar(csi,*(long *)csi->ip);
csi->ip+=4; /* Skip variable name */
(char **)pp2=getstrvar(csi,*(long *)csi->ip);
pp2=getstrvar(csi,*(long *)csi->ip);
if(!pp2)
lp2=getintvar(csi,*(long *)csi->ip);
csi->ip+=4; /* Skip variable name */
......@@ -424,7 +435,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
*lp2=l; }
return(0);
case CAT_STR_VAR:
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4; /* Skip variable name */
strcpy(tmp,(char *)csi->ip);
while(*(csi->ip++));
......@@ -441,9 +452,9 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
strcat(*pp,tmp);
return(0);
case CAT_STR_VARS:
(char **)pp1=getstrvar(csi,*(long *)csi->ip);
pp1=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4; /* Skip dest variable name */
(char **)pp2=getstrvar(csi,*(long *)csi->ip);
pp2=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4; /* Skip source variable name */
/* Concatenate an int var to a str var (as char) */
......@@ -486,7 +497,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
strcat(*pp1,*pp2);
return(0);
case FORMAT_STR_VAR:
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4; /* Skip variable name */
strcpy(str,(char *)csi->ip);
while(*(csi->ip++)); /* Find NULL */
......@@ -508,7 +519,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
*pp=copystrvar(csi,*pp,str);
return(0);
case FORMAT_TIME_STR:
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4; /* Skip variable name */
strcpy(str,(char *)csi->ip);
while(*(csi->ip++)); /* Find NULL */
......@@ -521,7 +532,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
*pp=copystrvar(csi,*pp,buf); } }
return(0);
case TIME_STR:
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4; /* Skip str variable name */
lp=getintvar(csi,*(long *)csi->ip);
csi->ip+=4; /* Skip int variable name */
......@@ -530,7 +541,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
*pp=copystrvar(csi,*pp,str); }
return(0);
case DATE_STR:
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4; /* Skip str variable name */
lp=getintvar(csi,*(long *)csi->ip);
csi->ip+=4; /* Skip int variable name */
......@@ -539,7 +550,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
*pp=copystrvar(csi,*pp,str); }
return(0);
case SECOND_STR:
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4; /* Skip str variable name */
lp=getintvar(csi,*(long *)csi->ip);
csi->ip+=4; /* Skip int variable name */
......@@ -548,25 +559,25 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
*pp=copystrvar(csi,*pp,str); }
return(0);
case STRUPR_VAR:
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4;
if(pp && *pp)
strupr(*pp);
return(0);
case STRLWR_VAR:
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4;
if(pp && *pp)
strlwr(*pp);
return(0);
case TRUNCSP_STR_VAR:
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4;
if(pp && *pp)
truncsp(*pp);
return(0);
case STRIP_CTRL_STR_VAR:
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4;
if(pp && *pp)
strip_ctrl(*pp);
......@@ -634,7 +645,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
if(!lp1)
return(0);
if(!lp2) {
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
if(!pp || !*pp)
return(0);
l=strtol(*pp,0,0); }
......@@ -686,7 +697,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
case DATE_STR_TO_INT:
lp=getintvar(csi,*(long *)csi->ip);
csi->ip+=4;
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4;
if(lp && pp && *pp)
*lp=dstrtounix(&cfg,*pp);
......@@ -694,7 +705,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
case STRLEN_INT_VAR:
lp=getintvar(csi,*(long *)csi->ip);
csi->ip+=4;
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4;
if(lp) {
if(pp && *pp)
......@@ -705,7 +716,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
case CRC16_TO_INT:
lp=getintvar(csi,*(long *)csi->ip);
csi->ip+=4;
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4;
if(lp) {
if(pp && *pp)
......@@ -716,7 +727,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
case CRC32_TO_INT:
lp=getintvar(csi,*(long *)csi->ip);
csi->ip+=4;
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4;
if(lp) {
if(pp && *pp)
......@@ -727,7 +738,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
case CHKSUM_TO_INT:
lp=getintvar(csi,*(long *)csi->ip);
csi->ip+=4;
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4;
if(lp) {
*lp=0;
......@@ -739,7 +750,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
case FLENGTH_TO_INT:
lp=getintvar(csi,*(long *)csi->ip);
csi->ip+=4;
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4;
if(lp) {
if(pp && *pp)
......@@ -750,7 +761,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
case FTIME_TO_INT:
lp=getintvar(csi,*(long *)csi->ip);
csi->ip+=4;
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4;
if(lp) {
if(pp && *pp)
......@@ -761,7 +772,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
case CHARVAL_TO_INT:
lp=getintvar(csi,*(long *)csi->ip);
csi->ip+=4;
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4;
if(lp) {
if(pp && *pp)
......@@ -774,7 +785,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
case GETNAME_VAR:
case GETSTRUPR_VAR:
case GETSTR_MODE:
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4;
i=*(csi->ip++);
csi->logic=LOGIC_FALSE;
......@@ -807,7 +818,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
csi->logic=LOGIC_TRUE; }
return(0);
case GETNUM_VAR:
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
if(!pp)
lp=getintvar(csi,*(long *)csi->ip);
csi->ip+=4;
......@@ -831,7 +842,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
return(0);
case SHIFT_STR_VAR:
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4;
i=*(csi->ip++);
if(!pp || !*pp)
......@@ -841,7 +852,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
return(0);
case CHKFILE_VAR:
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4;
if(pp && *pp && fexist(cmdstr(*pp,path,csi->str,buf)))
csi->logic=LOGIC_TRUE;
......@@ -849,7 +860,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
csi->logic=LOGIC_FALSE;
return(0);
case PRINTFILE_VAR_MODE:
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4;
i=*(short *)(csi->ip);
csi->ip+=2;
......@@ -857,7 +868,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
printfile(*pp,i);
return(0);
case PRINTTAIL_VAR_MODE:
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4;
i=*(short *)(csi->ip);
csi->ip+=2;
......@@ -869,7 +880,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
case TELNET_GATE_VAR:
l=*(ulong *)(csi->ip); // Mode
csi->ip+=4;
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4;
if(pp && *pp)
telnet_gate(*pp,l);
......@@ -884,13 +895,13 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
case COPY_FIRST_CHAR:
lp=getintvar(csi,*(long *)csi->ip);
csi->ip+=4;
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4;
if(lp!=NULL && pp!=NULL && *pp!=NULL)
*lp=**pp;
return(0);
case COMPARE_FIRST_CHAR:
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4;
ch=*(csi->ip++); /* char const */
if(pp==NULL || *pp==NULL)
......@@ -925,7 +936,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
case RECEIVE_FILE_VIA_VAR:
j=*(csi->ip-1);
ch=*(csi->ip++); /* Protocol */
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4;
for(i=0;i<cfg.total_prots;i++)
if(cfg.prot[i]->mnemonic==ch && chk_ar(cfg.prot[i]->ar,&useron))
......@@ -957,7 +968,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
cmdstr((char *)csi->ip,path,csi->str,str);
while(*(csi->ip++)); } /* skip filename */
else {
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4;
if(!pp || !*pp)
return(0);
......@@ -1008,7 +1019,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
case FIO_READ_VAR:
lp1=getintvar(csi,*(long *)csi->ip); /* Handle */
csi->ip+=4;
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
if(!pp)
lp2=getintvar(csi,*(long *)csi->ip);
csi->ip+=4;
......@@ -1048,7 +1059,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
case FIO_READ_LINE:
lp1=getintvar(csi,*(long *)csi->ip); /* Handle */
csi->ip+=4;
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
if(!pp)
lp2=getintvar(csi,*(long *)csi->ip);
csi->ip+=4;
......@@ -1075,7 +1086,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
case FIO_WRITE_VAR:
lp1=getintvar(csi,*(long *)csi->ip);
csi->ip+=4;
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
if(!pp)
lp2=getintvar(csi,*(long *)csi->ip);
csi->ip+=4;
......@@ -1185,17 +1196,23 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
csi->logic=LOGIC_FALSE;
if(*(csi->ip-5)==FIO_LOCK) {
l=*(long *)csi->ip;
csi->ip+=4; }
else {
csi->ip+=4;
} else {
lp2=getintvar(csi,*(long *)csi->ip);
csi->ip+=4;
if(!lp2)
return(0);
l=*lp2; }
l=*lp2;
}
#ifdef __GNUC__
#warning "Need locking equivalent"
#else
if(lp1 && *lp1) {
fflush((FILE *)*lp1);
lseek(fileno((FILE *)*lp1),ftell((FILE *)*lp1),SEEK_SET);
csi->logic=locking(fileno((FILE *)*lp1),LK_LOCK,l); }
csi->logic=locking(fileno((FILE *)*lp1),LK_LOCK,l);
}
#endif
return(0);
case FIO_UNLOCK:
case FIO_UNLOCK_VAR:
......@@ -1204,17 +1221,23 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
csi->logic=LOGIC_FALSE;
if(*(csi->ip-5)==FIO_UNLOCK) {
l=*(long *)csi->ip;
csi->ip+=4; }
else {
csi->ip+=4;
} else {
lp2=getintvar(csi,*(long *)csi->ip);
csi->ip+=4;
if(!lp2)
return(0);
l=*lp2; }
l=*lp2;
}
#ifdef __GNUC__
#warning "Need locking equivalent"
#else
if(lp1 && *lp1) {
fflush((FILE *)*lp1);
lseek(fileno((FILE *)*lp1),ftell((FILE *)*lp1),SEEK_SET);
csi->logic=locking(fileno((FILE *)*lp1),LK_UNLCK,l); }
csi->logic=locking(fileno((FILE *)*lp1),LK_UNLCK,l);
}
#endif
return(0);
case FIO_SET_LENGTH:
case FIO_SET_LENGTH_VAR:
......@@ -1223,8 +1246,8 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
csi->logic=LOGIC_FALSE;
if(*(csi->ip-5)==FIO_SET_LENGTH) {
l=*(long *)csi->ip;
csi->ip+=4; }
else {
csi->ip+=4;
} else {
lp2=getintvar(csi,*(long *)csi->ip);
csi->ip+=4;
if(!lp2)
......@@ -1246,20 +1269,22 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
if(!lp2)
arglist[i]=0;
else
arglist[i]=(char *)*lp2; }
else
arglist[i]=(char *)*lp2;
} else
arglist[i]=*(char **)vp;
csi->ip+=4; }
csi->ip+=4;
}
vsprintf(tmp,str,(char *)arglist);
if(lp1 && *lp1) {
cmdstr(tmp,path,csi->str,str);
fwrite(str,1,strlen(str),(FILE *)*lp1); }
fwrite(str,1,strlen(str),(FILE *)*lp1);
}
return(0);
case FIO_SET_ETX:
csi->etx=*(csi->ip++);
return(0);
case REMOVE_FILE:
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4;
if(pp && *pp && remove(*pp)==0)
csi->logic=LOGIC_TRUE;
......@@ -1269,9 +1294,9 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
case RENAME_FILE:
case COPY_FILE:
case MOVE_FILE:
(char **)pp1=getstrvar(csi,*(long *)csi->ip);
pp1=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4; /* Skip variable name */
(char **)pp2=getstrvar(csi,*(long *)csi->ip);
pp2=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4;
if(pp1 && *pp1 && pp2 && *pp2)
switch(*(csi->ip-9)) {
......@@ -1291,7 +1316,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
case SET_FILE_ATTRIB:
lp=getintvar(csi,*(long *)csi->ip);
csi->ip+=4;
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4;
if(pp && *pp && lp) {
if(*(csi->ip-9)==GET_FILE_ATTRIB)
......@@ -1309,7 +1334,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
case MAKE_DIR:
case REMOVE_DIR:
case CHANGE_DIR:
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4;
if(pp && *pp)
switch(*(csi->ip-5)) {
......@@ -1329,7 +1354,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
case OPEN_DIR:
lp=getintvar(csi,*(long *)csi->ip);
csi->ip+=4;
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4;
csi->logic=LOGIC_FALSE;
if(pp && *pp && lp) {
......@@ -1340,7 +1365,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
case READ_DIR:
lp=getintvar(csi,*(long *)csi->ip);
csi->ip+=4;
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
csi->ip+=4;
csi->logic=LOGIC_FALSE;
if(pp && lp) {
......@@ -1456,7 +1481,7 @@ int sbbs_t::exec_misc(csi_t *csi, char *path)
while(*(csi->ip++)); /* Find NULL */
return(0);
case CS_USE_INT_VAR: // Self-modifying code!
(char **)pp=getstrvar(csi,*(long *)csi->ip);
pp=getstrvar(csi,*(long *)csi->ip);
if(pp && *pp)
l=strtol(*pp,0,0);
else {
......
......@@ -819,7 +819,8 @@ 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;
int file;
uint i,j,found=0;
int found=0;
uint i,j;
long usrxfrlen;
long m,l;
long usrcdt;
......
......@@ -56,7 +56,7 @@
#define RINGBUF_USE_STD_RTL