From 6c0494b6967b340f0bd58c06e487fb8e3c75ed8a Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Thu, 25 Apr 2002 08:29:18 +0000 Subject: [PATCH] Created _rotr() implementation for Unix. Switched from fsopen to fnopen. --- src/sbbs3/sbbsecho.c | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/src/sbbs3/sbbsecho.c b/src/sbbs3/sbbsecho.c index a2b1c66527..a6e2a92a23 100644 --- a/src/sbbs3/sbbsecho.c +++ b/src/sbbs3/sbbsecho.c @@ -98,6 +98,29 @@ return(i); } #endif +#if defined(__unix__) /* borrowed from MSVC */ +unsigned __cdecl _rotr ( + unsigned val, + int shift + ) +{ + register unsigned lobit; /* non-zero means lo bit set */ + register unsigned num = val; /* number to rotate */ + + shift &= 0x1f; /* modulo 32 -- this will also make + negative shifts work */ + + while (shift--) { + lobit = num & 1; /* get high bit */ + num >>= 1; /* shift right one bit */ + if (lobit) + num |= 0x80000000; /* set hi bit if lo bit was set */ + } + + return num; +} +#endif + /****************************************************************************** Displays characters locally ******************************************************************************/ @@ -717,7 +740,7 @@ void alter_areas(area_t add_area,area_t del_area,faddr_t addr) { FILE *nmfile,*afilein,*afileout,*fwdfile; char str[1025],fields[1025],field1[81],field2[81],field3[81] - ,drive[3],dir[66],name[9],ext[5],outpath[128] + ,drive[3],dir[MAX_PATH+1],name[MAX_PATH+1],ext[MAX_PATH+1],outpath[128] ,*outname,*p,*tp,nomatch=0,match=0; int i,j,k,x,y,file; ulong tagcrc; @@ -974,7 +997,7 @@ void alter_config(faddr_t addr,char *old,char *new,char option) { FILE *outfile,*cfgfile; char str[257],outpath[128],tmp[257],tmp2[257],*outname,*p,*tp - ,drive[3],dir[66],name[9],ext[5],match=0; + ,drive[3],dir[MAX_PATH+1],name[MAX_PATH+1],ext[MAX_PATH+1],match=0; int i,j,k,file; faddr_t taddr; @@ -3991,7 +4014,7 @@ int main(int argc, char **argv) read_echo_cfg(); if(misc&LOGFILE) - if((fidologfile=_fsopen(cfg.logfile,"ab",SH_DENYNO))==NULL) { + if((fidologfile=fnopen(NULL,cfg.logfile,O_RDWR|O_CREAT|O_DENYNONE))==NULL) { printf("\7ERROR line %d opening %s\n",__LINE__,cfg.logfile); bail(1); } -- GitLab