From 40bf73bc1424e4cb7e70555a63c132dff520aad6 Mon Sep 17 00:00:00 2001 From: deuce <> Date: Sun, 15 Sep 2013 19:06:28 +0000 Subject: [PATCH] Run through "indent -nce -ci16 -cli1 -di1 -eei -npsl" because DAMN! --- xtrn/sbl/sbl.c | 1961 +++++++++++++++++++++++++----------------------- 1 file changed, 1043 insertions(+), 918 deletions(-) diff --git a/xtrn/sbl/sbl.c b/xtrn/sbl/sbl.c index ce60d71da3..f925085be0 100644 --- a/xtrn/sbl/sbl.c +++ b/xtrn/sbl/sbl.c @@ -200,124 +200,131 @@ Added support for C++Builder 5 #include <xsdk.h> #include "sbldefs.h" -unsigned _stklen=16000; /* Set stack size in code, not header */ +unsigned _stklen = 16000; /* Set stack size in code, not header */ #define Y2K_2DIGIT_WINDOW 70 #define VERIFICATION_MOD FALSE typedef struct { - char str[32]; - short offset; + char str[32]; + short offset; - } sortstr_t; +} sortstr_t; typedef struct { - long i; - short offset; + long i; + short offset; - } sortint_t; +} sortint_t; -char *nulstr=""; -char *wday[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"}; -char *mon[]={"Jan","Feb","Mar","Apr","May","Jun" - ,"Jul","Aug","Sep","Oct","Nov","Dec"}; +char *nulstr = ""; +char *wday[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; +char *mon[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun" +,"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; char tmp[256]; char list_fmt[128]; -uint del_days,add_ml,update_ml,remove_ml,verify_ml,sbl_pause=1,notify_user; +uint del_days, add_ml, update_ml, remove_ml, verify_ml, sbl_pause = 1, + notify_user; time_t now; /****************************************************************************/ /* Generates a 24 character ASCII string that represents the 32b-ti time_t */ -/* Used as a replacement for ctime() */ +/* Used as a replacement for ctime() */ /****************************************************************************/ char *timestr(uint32_t intime) { static char str[256]; - char mer[3],hour; - struct tm *gm; - time_t t=intime; + char mer[3], hour; + struct tm *gm; + time_t t = intime; - gm=localtime(&t); - if(gm==NULL) + gm = localtime(&t); + if (gm == NULL) return "invalid date/time"; - if(gm->tm_hour>=12) { - if(gm->tm_hour==12) - hour=12; + if (gm->tm_hour >= 12) { + if (gm->tm_hour == 12) + hour = 12; else - hour=gm->tm_hour-12; - strcpy(mer,"pm"); } + hour = gm->tm_hour - 12; + strcpy(mer, "pm"); + } else { - if(gm->tm_hour==0) - hour=12; + if (gm->tm_hour == 0) + hour = 12; else - hour=gm->tm_hour; - strcpy(mer,"am"); } - sprintf(str,"%s %s %02d %4d %02d:%02d %s" - ,wday[gm->tm_wday],mon[gm->tm_mon],gm->tm_mday,1900+gm->tm_year - ,hour,gm->tm_min,mer); - return(str); + hour = gm->tm_hour; + strcpy(mer, "am"); + } + sprintf(str, "%s %s %02d %4d %02d:%02d %s" + ,wday[gm->tm_wday], mon[gm->tm_mon], gm->tm_mday, 1900 + gm->tm_year + ,hour, gm->tm_min, mer); + return (str); } /****************************************************************************/ -/* Converts a date string in format MM/DD/YY into unix time format */ +/* Converts a date string in format MM/DD/YY into unix time format */ /****************************************************************************/ time_t dstrtounix(char *str) { struct tm tm; - if(!strncmp(str,"00/00/00",8)) - return(0); - memset(&tm,0,sizeof(tm)); - tm.tm_year=((str[6]&0xf)*10)+(str[7]&0xf); - if (tm.tm_year<Y2K_2DIGIT_WINDOW) - tm.tm_year+=100; - tm.tm_mon=((str[0]&0xf)*10)+(str[1]&0xf); - tm.tm_mday=((str[3]&0xf)*10)+(str[4]&0xf); + if (!strncmp(str, "00/00/00", 8)) + return (0); + memset(&tm, 0, sizeof(tm)); + tm.tm_year = ((str[6] & 0xf) * 10) + (str[7] & 0xf); + if (tm.tm_year < Y2K_2DIGIT_WINDOW) + tm.tm_year += 100; + tm.tm_mon = ((str[0] & 0xf) * 10) + (str[1] & 0xf); + tm.tm_mday = ((str[3] & 0xf) * 10) + (str[4] & 0xf); if (tm.tm_mon) tm.tm_mon--; /* zero-based month field */ - return(mktime(&tm)); + return (mktime(&tm)); } /****************************************************************************/ -/* Converts unix time format (long - time_t) into a char str MM/DD/YY */ +/* Converts unix time format (long - time_t) into a char str MM/DD/YY */ /****************************************************************************/ -char * unixtodstr(time_t t, char *str) +char *unixtodstr(time_t t, char *str) { - struct tm* tm; + struct tm *tm; - if(t==0) - strcpy(str,"00/00/00"); + if (t == 0) + strcpy(str, "00/00/00"); else { - tm=gmtime(&t); - if(tm==NULL) { - strcpy(str,"00/00/00"); - return(str); + tm = gmtime(&t); + if (tm == NULL) { + strcpy(str, "00/00/00"); + return (str); + } + if (tm->tm_mon > 11) { /* DOS leap year bug */ + tm->tm_mon = 0; + tm->tm_year++; } - if(tm->tm_mon>11) { /* DOS leap year bug */ - tm->tm_mon=0; - tm->tm_year++; } - if(tm->tm_mday>31) - tm->tm_mday=1; - sprintf(str,"%02u/%02u/%02u",tm->tm_mon+1,tm->tm_mday - ,tm->tm_year%100); } - return(str); + if (tm->tm_mday > 31) + tm->tm_mday = 1; + sprintf(str, "%02u/%02u/%02u", tm->tm_mon + 1, tm->tm_mday + ,tm->tm_year % 100); + } + return (str); } void dots(int show) { static int i; -if(!show) { /* reset */ - i=0; - return; } -if(++i>5) { - bputs("\b\b\b\b\b \b\b\b\b\b"); - i=0; - return; } -outchar('.'); + if (!show) { /* reset */ + i = 0; + return; + } + if (++i > 5) { + bputs("\b\b\b\b\b \b\b\b\b\b"); + i = 0; + return; + } + outchar('.'); } @@ -325,581 +332,641 @@ outchar('.'); char short_bbs_info(bbs_t bbs) { - char str[128]; - int i,j; - - for(i=0;i<bbs.total_numbers && i<MAX_NUMBERS;i++) { - for(j=0;list_fmt[j];j++) { - if(j) bputs(" "); - switch(toupper(list_fmt[j])) { - case 'N': - bprintf("\1h\1m%-25.25s",i ? nulstr : bbs.name); - break; - case 'S': - bprintf("\1h\1c%-15.15s",i ? nulstr : bbs.software); - break; - case 'P': - if(bbs.number[i].modem.min_rate==0xffff) { - if(bbs.number[i].telnet.port!=0 - && bbs.number[i].telnet.port!=IPPORT_TELNET) - sprintf(str,"%s:%hu" - ,bbs.number[i].telnet.addr - ,bbs.number[i].telnet.port); - else - strcpy(str,bbs.number[i].telnet.addr); - bprintf("\1h\1b%-28.28s",str); - } else - bprintf("\1n\1g%12.12s",bbs.number[i].modem.number); - break; - case 'B': - if(bbs.number[i].modem.min_rate!=0xffff) - bprintf("\1h\1g%5u",bbs.number[i].modem.max_rate); - break; - case 'M': - if(bbs.number[i].modem.min_rate!=0xffff) - bprintf("\1h\1b%-15.15s",bbs.number[i].modem.desc); - break; - case 'Y': - bprintf("\1h\1y%-25.25s",i ? nulstr : bbs.sysop[0]); - break; - case 'T': - if(i) bputs(" "); - else bprintf("\1y\1h%3u",bbs.nodes); - break; - case 'U': - if(i) bputs(" "); - else bprintf("\1n\1r%5u",bbs.users); - break; - case 'H': - if(i) bprintf("%10.10s",nulstr); - else bprintf("\1h\1r%10u",bbs.megs); - break; - case 'L': - bprintf("\1n\1c%-20.20s",bbs.number[i].modem.location); - break; - case 'F': - bprintf("\1n\1b%s",i ? nulstr : unixtodstr(bbs.birth,tmp)); - break; - case 'V': - bprintf("\1n\1m%s",i ? nulstr : unixtodstr(bbs.verified,tmp)); - break; - case 'D': - bprintf("\1n%s",i ? nulstr : unixtodstr(bbs.updated,tmp)); - break; - case 'C': - bprintf("\1n\1y%s",i ? nulstr : unixtodstr(bbs.created,tmp)); - break; - default: - bprintf("%c",list_fmt[j]); - break; - } } - bputs("\r\n"); } + char str[128]; + int i, j; + + for (i = 0; i < bbs.total_numbers && i < MAX_NUMBERS; i++) { + for (j = 0; list_fmt[j]; j++) { + if (j) + bputs(" "); + switch (toupper(list_fmt[j])) { + case 'N': + bprintf("\1h\1m%-25.25s", i ? nulstr : bbs.name); + break; + case 'S': + bprintf("\1h\1c%-15.15s", i ? nulstr : bbs.software); + break; + case 'P': + if (bbs.number[i].modem.min_rate == 0xffff) { + if (bbs.number[i].telnet.port != 0 + && bbs.number[i].telnet.port != IPPORT_TELNET) + sprintf(str, "%s:%hu" + ,bbs.number[i].telnet.addr + ,bbs.number[i].telnet.port); + else + strcpy(str, bbs.number[i].telnet.addr); + bprintf("\1h\1b%-28.28s", str); + } + else + bprintf("\1n\1g%12.12s", bbs.number[i].modem.number); + break; + case 'B': + if (bbs.number[i].modem.min_rate != 0xffff) + bprintf("\1h\1g%5u", bbs.number[i].modem.max_rate); + break; + case 'M': + if (bbs.number[i].modem.min_rate != 0xffff) + bprintf("\1h\1b%-15.15s", bbs.number[i].modem.desc); + break; + case 'Y': + bprintf("\1h\1y%-25.25s", i ? nulstr : bbs.sysop[0]); + break; + case 'T': + if (i) + bputs(" "); + else + bprintf("\1y\1h%3u", bbs.nodes); + break; + case 'U': + if (i) + bputs(" "); + else + bprintf("\1n\1r%5u", bbs.users); + break; + case 'H': + if (i) + bprintf("%10.10s", nulstr); + else + bprintf("\1h\1r%10u", bbs.megs); + break; + case 'L': + bprintf("\1n\1c%-20.20s", bbs.number[i].modem.location); + break; + case 'F': + bprintf("\1n\1b%s", i ? nulstr : unixtodstr(bbs.birth, tmp)); + break; + case 'V': + bprintf("\1n\1m%s", i ? nulstr : unixtodstr(bbs.verified, tmp)); + break; + case 'D': + bprintf("\1n%s", i ? nulstr : unixtodstr(bbs.updated, tmp)); + break; + case 'C': + bprintf("\1n\1y%s", i ? nulstr : unixtodstr(bbs.created, tmp)); + break; + default: + bprintf("%c", list_fmt[j]); + break; + } + } + bputs("\r\n"); + } #if 0 - if(kbhit()) - return(0); + if (kbhit()) + return (0); #endif - return(1); + return (1); } char long_bbs_info(bbs_t bbs) { int i; -cls(); -bprintf("\1n\1gBBS Name: \1h%s \1n\1gsince \1h%s\r\n" - ,bbs.name,unixtodstr(bbs.birth,tmp)); -bprintf("\1n\1gOperator: "); -for(i=0;i<bbs.total_sysops && i<MAX_SYSOPS;i++) { - if(i) { - if(bbs.total_sysops>2) - bputs(", "); - else - outchar(' '); - if(!(i%4)) - bputs("\r\n "); - if(i+1==bbs.total_sysops) - bputs("and "); } - bprintf("\1h%s\1n\1g",bbs.sysop[i]); - if(!i && bbs.sysop_email[0]) - bprintf(" <\1h%s\1n\1g>", bbs.sysop_email); -} -CRLF; -bprintf("\1n\1gSoftware: \1h%-15.15s \1n\1gNodes: \1h%-5u \1n\1g" - "Users: \1h%-5u \1n\1gDoors: \1h%u\r\n" - ,bbs.software,bbs.nodes,bbs.users,bbs.xtrns); -bprintf("\1n\1gDownload: \1h%lu \1n\1gfiles in \1h%u \1n\1gdirectories of \1h" - "%luMB \1n\1gtotal space\r\n" - ,bbs.files,bbs.dirs,bbs.megs); -bprintf("Messages: \1h%lu \1n\1gmessages in \1h%u \1n\1gsub-boards\r\n" - ,bbs.msgs,bbs.subs); -bprintf("Networks: "); -for(i=0;i<bbs.total_networks && i<MAX_NETS;i++) { - if(i) { - if(bbs.total_networks>2) - bputs(", "); - else - outchar(' '); - if(!(i%3)) - bputs("\r\n "); - if(i+1==bbs.total_networks) - bputs("and "); } - bprintf("\1h%s [%s]\1n\1g",bbs.network[i],bbs.address[i]); } -CRLF; -bprintf("Terminal: "); -for(i=0;i<bbs.total_terminals && i<MAX_TERMS;i++) { - if(i) { - if(bbs.total_terminals>2) - bputs(", "); - else - outchar(' '); - if(i+1==bbs.total_terminals) - bputs("and "); } - bprintf("\1h%s\1n\1g",bbs.terminal[i]); } -CRLF; -if(bbs.web_url[0]) - bprintf("Web-site: http://\1h%s\r\n",bbs.web_url); -CRLF; -for(i=0;i<bbs.total_numbers && i<MAX_NUMBERS;i++) { - bprintf("\1h\1b%-30.30s " - ,i && !strcmp(bbs.number[i].modem.location,bbs.number[i-1].modem.location) - ? nulstr : bbs.number[i].modem.location); - if(bbs.number[i].modem.min_rate==0xffff) { - if(bbs.number[i].telnet.port!=0 - && bbs.number[i].telnet.port!=IPPORT_TELNET) - bprintf("\1n\1mtelnet://\1h%s:%hu\r\n" - ,bbs.number[i].telnet.addr - ,bbs.number[i].telnet.port); + cls(); + bprintf("\1n\1gBBS Name: \1h%s \1n\1gsince \1h%s\r\n" + ,bbs.name, unixtodstr(bbs.birth, tmp)); + bprintf("\1n\1gOperator: "); + for (i = 0; i < bbs.total_sysops && i < MAX_SYSOPS; i++) { + if (i) { + if (bbs.total_sysops > 2) + bputs(", "); + else + outchar(' '); + if (!(i % 4)) + bputs("\r\n "); + if (i + 1 == bbs.total_sysops) + bputs("and "); + } + bprintf("\1h%s\1n\1g", bbs.sysop[i]); + if (!i && bbs.sysop_email[0]) + bprintf(" <\1h%s\1n\1g>", bbs.sysop_email); + } + CRLF; + bprintf("\1n\1gSoftware: \1h%-15.15s \1n\1gNodes: \1h%-5u \1n\1g" + "Users: \1h%-5u \1n\1gDoors: \1h%u\r\n" + ,bbs.software, bbs.nodes, bbs.users, bbs.xtrns); + bprintf("\1n\1gDownload: \1h%lu \1n\1gfiles in \1h%u \1n\1gdirectories of \1h" + "%luMB \1n\1gtotal space\r\n" + ,bbs.files, bbs.dirs, bbs.megs); + bprintf("Messages: \1h%lu \1n\1gmessages in \1h%u \1n\1gsub-boards\r\n" + ,bbs.msgs, bbs.subs); + bprintf("Networks: "); + for (i = 0; i < bbs.total_networks && i < MAX_NETS; i++) { + if (i) { + if (bbs.total_networks > 2) + bputs(", "); + else + outchar(' '); + if (!(i % 3)) + bputs("\r\n "); + if (i + 1 == bbs.total_networks) + bputs("and "); + } + bprintf("\1h%s [%s]\1n\1g", bbs.network[i], bbs.address[i]); + } + CRLF; + bprintf("Terminal: "); + for (i = 0; i < bbs.total_terminals && i < MAX_TERMS; i++) { + if (i) { + if (bbs.total_terminals > 2) + bputs(", "); + else + outchar(' '); + if (i + 1 == bbs.total_terminals) + bputs("and "); + } + bprintf("\1h%s\1n\1g", bbs.terminal[i]); + } + CRLF; + if (bbs.web_url[0]) + bprintf("Web-site: http://\1h%s\r\n", bbs.web_url); + CRLF; + for (i = 0; i < bbs.total_numbers && i < MAX_NUMBERS; i++) { + bprintf("\1h\1b%-30.30s " + ,i && !strcmp(bbs.number[i].modem.location, bbs.number[i - 1].modem.location) + ? nulstr : bbs.number[i].modem.location); + if (bbs.number[i].modem.min_rate == 0xffff) { + if (bbs.number[i].telnet.port != 0 + && bbs.number[i].telnet.port != IPPORT_TELNET) + bprintf("\1n\1mtelnet://\1h%s:%hu\r\n" + ,bbs.number[i].telnet.addr + ,bbs.number[i].telnet.port); + else + bprintf("\1n\1mtelnet://\1h%s\r\n" + ,bbs.number[i].telnet.addr); + } else - bprintf("\1n\1mtelnet://\1h%s\r\n" - ,bbs.number[i].telnet.addr); - } else - bprintf("\1n\1g%12.12s \1h%5u \1b%-15.15s \1n\1cMinimum: \1h%u\r\n" - ,bbs.number[i].modem.number - ,bbs.number[i].modem.max_rate - ,bbs.number[i].modem.desc - ,bbs.number[i].modem.min_rate); -} -bputs("\r\n\1w\1h"); -for(i=0;i<DESC_LINES;i++) { - if(!bbs.desc[i][0]) - break; - bprintf("%15s%s\r\n",nulstr,bbs.desc[i]); } - -CRLF; -if(bbs.misc&FROM_SMB) - bputs("\1r\1hImported from message base.\r\n"); -bprintf("\1n\1cEntry created on \1h%s\1n\1c by \1h%s\r\n" - ,timestr(bbs.created),bbs.user); -if(bbs.updated && bbs.userupdated[0]) - bprintf("\1n\1c Last updated on \1h%s\1n\1c by \1h%s\r\n" - ,timestr(bbs.updated),bbs.userupdated); -if(bbs.verified && bbs.userverified[0]) - bprintf("\1n\1cLast verified on \1h%s\1n\1c by \1h%s" + bprintf("\1n\1g%12.12s \1h%5u \1b%-15.15s \1n\1cMinimum: \1h%u\r\n" + ,bbs.number[i].modem.number + ,bbs.number[i].modem.max_rate + ,bbs.number[i].modem.desc + ,bbs.number[i].modem.min_rate); + } + bputs("\r\n\1w\1h"); + for (i = 0; i < DESC_LINES; i++) { + if (!bbs.desc[i][0]) + break; + bprintf("%15s%s\r\n", nulstr, bbs.desc[i]); + } + + CRLF; + if (bbs.misc & FROM_SMB) + bputs("\1r\1hImported from message base.\r\n"); + bprintf("\1n\1cEntry created on \1h%s\1n\1c by \1h%s\r\n" + ,timestr(bbs.created), bbs.user); + if (bbs.updated && bbs.userupdated[0]) + bprintf("\1n\1c Last updated on \1h%s\1n\1c by \1h%s\r\n" + ,timestr(bbs.updated), bbs.userupdated); + if (bbs.verified && bbs.userverified[0]) + bprintf("\1n\1cLast verified on \1h%s\1n\1c by \1h%s" #if VERIFICATION_MOD - " \1y(%d/%d)" + " \1y(%d/%d)" #endif - "\r\n" - ,timestr(bbs.verified),bbs.userverified - ,bbs.verification_count,bbs.verification_attempts); -CRLF; -if(aborted) { - aborted=0; - return(0); } -if(!sbl_pause) { + "\r\n" + ,timestr(bbs.verified), bbs.userverified + ,bbs.verification_count, bbs.verification_attempts); + CRLF; + if (aborted) { + aborted = 0; + return (0); + } + if (!sbl_pause) { #if 0 - if(kbhit()) - return(0); + if (kbhit()) + return (0); #endif - return(1); } -nodesync(); + return (1); + } + nodesync(); #if VERIFICATION_MOD bputs("More? Y/N/V "); -switch(getkeys("YNV\r",0)) { - case '\r': - case 'Y': - return(1); - case 'V': - return(2); - default: - return(0); -} + switch (getkeys("YNV\r", 0)) { + case '\r': + case 'Y': + return (1); + case 'V': + return (2); + default: + return (0); + } #else - return(yesno("More")); + return (yesno("More")); #endif } /* Gets/updates BBS info from user. Returns 0 if aborted. */ -char get_bbs_info(bbs_t *bbs) +char get_bbs_info(bbs_t * bbs) { char str[128]; int i; -aborted=0; -if(!(bbs->user[0])) - strcpy(bbs->user,user_name); -if(SYSOP) { - bputs("\1y\1hUser Name (Creator/Owner of Entry): "); - if(!getstr(bbs->user,25,K_EDIT|K_LINE|K_AUTODEL)) - return(0); } -bputs("\1y\1hSystem Name: "); -if(getstr(bbs->name,25,K_EDIT|K_LINE|K_AUTODEL)<2) - return(0); -if(!bbs->software[0]) - strcpy(bbs->software,"Synchronet"); -bprintf("\1y\1hSoftware: \1w",bbs->software); -if(!getstr(bbs->software,15,K_AUTODEL|K_EDIT)) - return(0); - -for(i=0;i<MAX_SYSOPS && !aborted;i++) { - bprintf("\1y\1hName of System Operator #%d [\1wNone\1y]: ",i+1); - if(!getstr(bbs->sysop[i],25,K_EDIT|K_LINE|K_AUTODEL)) - break; - if(!i) { - bprintf("\1y\1hInternet E-mail Address [\1wNone\1y]:\1w "); - getstr(bbs->sysop_email,40,K_EDIT|K_AUTODEL); + aborted = 0; + if (!(bbs->user[0])) + strcpy(bbs->user, user_name); + if (SYSOP) { + bputs("\1y\1hUser Name (Creator/Owner of Entry): "); + if (!getstr(bbs->user, 25, K_EDIT | K_LINE | K_AUTODEL)) + return (0); } -} -bbs->total_sysops=i; -if(aborted) - return(0); - -unixtodstr(bbs->birth,str); -bprintf("\1y\1hFirst Day Online (MM/DD/YY): \1w"); -if(getstr(str,8,K_UPPER|K_EDIT|K_AUTODEL)) - bbs->birth=dstrtounix(str); -if(aborted) return(0); - -for(i=0;i<MAX_NETS && !aborted;i++) { - bprintf("\1y\1hName of Message Network #%d [\1wNone\1y]: ",i+1); - if(!getstr(bbs->network[i],15,K_EDIT|K_AUTODEL|K_LINE)) - break; - bprintf("\1y\1hNetwork Message \1wAddress\1y #%d [\1wNone\1y]: \1w",i+1); - getstr(bbs->address[i],25,K_EDIT|K_AUTODEL); } -bbs->total_networks=i; -if(aborted) return(0); - -for(i=0;i<MAX_TERMS && !aborted;i++) { - bprintf("\1y\1hSupported Terminal Type #%d (i.e. TTY, ANSI, RIP) " - "[\1wNone\1y]: ",i+1); - if(!getstr(bbs->terminal[i],15,K_EDIT|K_AUTODEL|K_LINE)) - break; } -bbs->total_terminals=i; -if(aborted) return(0); - -bprintf("\1y\1hWeb-site [\1wNone\1y] http://\1w"); -getstr(bbs->web_url,60,K_EDIT|K_AUTODEL); - -if(!bbs->nodes) - bbs->nodes=1; -bprintf("\1y\1hNodes (maximum number of simultaneous REMOTE users): \1w"); -sprintf(str,"%u",bbs->nodes); -if(getstr(str,5,K_NUMBER|K_EDIT|K_AUTODEL)) - bbs->nodes=atoi(str); -if(!bbs->nodes) - bbs->nodes=1; -if(aborted) return(0); - -for(i=0;i<MAX_NUMBERS;i++) { + bputs("\1y\1hSystem Name: "); + if (getstr(bbs->name, 25, K_EDIT | K_LINE | K_AUTODEL) < 2) + return (0); + if (!bbs->software[0]) + strcpy(bbs->software, "Synchronet"); + bprintf("\1y\1hSoftware: \1w", bbs->software); + if (!getstr(bbs->software, 15, K_AUTODEL | K_EDIT)) + return (0); + + for (i = 0; i < MAX_SYSOPS && !aborted; i++) { + bprintf("\1y\1hName of System Operator #%d [\1wNone\1y]: ", i + 1); + if (!getstr(bbs->sysop[i], 25, K_EDIT | K_LINE | K_AUTODEL)) + break; + if (!i) { + bprintf("\1y\1hInternet E-mail Address [\1wNone\1y]:\1w "); + getstr(bbs->sysop_email, 40, K_EDIT | K_AUTODEL); + } + } + bbs->total_sysops = i; + if (aborted) + return (0); + + unixtodstr(bbs->birth, str); + bprintf("\1y\1hFirst Day Online (MM/DD/YY): \1w"); + if (getstr(str, 8, K_UPPER | K_EDIT | K_AUTODEL)) + bbs->birth = dstrtounix(str); + if (aborted) + return (0); + + for (i = 0; i < MAX_NETS && !aborted; i++) { + bprintf("\1y\1hName of Message Network #%d [\1wNone\1y]: ", i + 1); + if (!getstr(bbs->network[i], 15, K_EDIT | K_AUTODEL | K_LINE)) + break; + bprintf("\1y\1hNetwork Message \1wAddress\1y #%d [\1wNone\1y]: \1w", i + 1); + getstr(bbs->address[i], 25, K_EDIT | K_AUTODEL); + } + bbs->total_networks = i; + if (aborted) + return (0); + + for (i = 0; i < MAX_TERMS && !aborted; i++) { + bprintf("\1y\1hSupported Terminal Type #%d (i.e. TTY, ANSI, RIP) " + "[\1wNone\1y]: ", i + 1); + if (!getstr(bbs->terminal[i], 15, K_EDIT | K_AUTODEL | K_LINE)) + break; + } + bbs->total_terminals = i; + if (aborted) + return (0); + + bprintf("\1y\1hWeb-site [\1wNone\1y] http://\1w"); + getstr(bbs->web_url, 60, K_EDIT | K_AUTODEL); + + if (!bbs->nodes) + bbs->nodes = 1; + bprintf("\1y\1hNodes (maximum number of simultaneous REMOTE users): \1w"); + sprintf(str, "%u", bbs->nodes); + if (getstr(str, 5, K_NUMBER | K_EDIT | K_AUTODEL)) + bbs->nodes = atoi(str); + if (!bbs->nodes) + bbs->nodes = 1; + if (aborted) + return (0); + + for (i = 0; i < MAX_NUMBERS; i++) { #if 0 - if(!i && !bbs->number[i].modem.number[0]) - sprintf(bbs->number[i].modem.number,"%.8s",user_phone); + if (!i && !bbs->number[i].modem.number[0]) + sprintf(bbs->number[i].modem.number, "%.8s", user_phone); #endif - bprintf("\1y\1hPhone Number or \1mTelnet address\1y #%d [\1wNone\1y]: ",i+1); - if(!getstr(bbs->number[i].telnet.addr,28,K_EDIT|K_LINE)) - break; - if(!bbs->number[i].modem.location[0]) { - if(!i) - strcpy(bbs->number[i].modem.location,user_location); - else - strcpy(bbs->number[i].modem.location,bbs->number[i-1].modem.location); } - if(aborted) return(0); - if(isalpha(bbs->number[i].telnet.addr[0]) - || yesno("Is the above a Telnet address")) { - bbs->number[i].modem.min_rate=0xffff; - if(bbs->number[i].telnet.port==0) - bbs->number[i].telnet.port=IPPORT_TELNET; - bprintf("\1y\1hTCP Port: \1w"); - sprintf(str,"%u",bbs->number[i].telnet.port); - if(getstr(str,5,K_NUMBER|K_EDIT|K_AUTODEL)) - bbs->number[i].telnet.port=atoi(str); - if(aborted) return(0); - - } else { - if(bbs->number[i].modem.min_rate==0xffff) - bbs->number[i].modem.min_rate=300; - bbs->number[i].modem.number[13]=0; - if(!bbs->number[i].modem.min_rate) { - if(i) - bbs->number[i].modem.min_rate=bbs->number[i-1].modem.min_rate; + bprintf("\1y\1hPhone Number or \1mTelnet address\1y #%d [\1wNone\1y]: ", i + 1); + if (!getstr(bbs->number[i].telnet.addr, 28, K_EDIT | K_LINE)) + break; + if (!bbs->number[i].modem.location[0]) { + if (!i) + strcpy(bbs->number[i].modem.location, user_location); else - bbs->number[i].modem.min_rate=300; } - bprintf("\1y\1hMinimum Connect Rate: \1w"); - sprintf(str,"%u",bbs->number[i].modem.min_rate); - if(getstr(str,5,K_NUMBER|K_EDIT|K_AUTODEL)) - bbs->number[i].modem.min_rate=atoi(str); - if(aborted) return(0); - - if(!bbs->number[i].modem.max_rate) { - if(i) - bbs->number[i].modem.max_rate=bbs->number[i-1].modem.max_rate; - else - bbs->number[i].modem.max_rate=2400; } - if(bbs->number[i].modem.max_rate<bbs->number[i].modem.min_rate) - bbs->number[i].modem.max_rate=bbs->number[i].modem.min_rate; - bprintf("\1y\1hMaximum Connect Rate (i.e. 2400, 9600, 14400, etc): \1w"); - sprintf(str,"%u",bbs->number[i].modem.max_rate); - if(getstr(str,5,K_NUMBER|K_EDIT|K_AUTODEL)) - bbs->number[i].modem.max_rate=atoi(str); - if(aborted) return(0); - bprintf("\1y\1hModem Description (i.e. Hayes, HST, V.32, etc): \1w"); - getstr(bbs->number[i].modem.desc,15,K_EDIT|K_AUTODEL); - } + strcpy(bbs->number[i].modem.location, bbs->number[i - 1].modem.location); + } + if (aborted) + return (0); + if (isalpha(bbs->number[i].telnet.addr[0]) + || yesno("Is the above a Telnet address")) { + bbs->number[i].modem.min_rate = 0xffff; + if (bbs->number[i].telnet.port == 0) + bbs->number[i].telnet.port = IPPORT_TELNET; + bprintf("\1y\1hTCP Port: \1w"); + sprintf(str, "%u", bbs->number[i].telnet.port); + if (getstr(str, 5, K_NUMBER | K_EDIT | K_AUTODEL)) + bbs->number[i].telnet.port = atoi(str); + if (aborted) + return (0); + + } + else { + if (bbs->number[i].modem.min_rate == 0xffff) + bbs->number[i].modem.min_rate = 300; + bbs->number[i].modem.number[13] = 0; + if (!bbs->number[i].modem.min_rate) { + if (i) + bbs->number[i].modem.min_rate = bbs->number[i - 1].modem.min_rate; + else + bbs->number[i].modem.min_rate = 300; + } + bprintf("\1y\1hMinimum Connect Rate: \1w"); + sprintf(str, "%u", bbs->number[i].modem.min_rate); + if (getstr(str, 5, K_NUMBER | K_EDIT | K_AUTODEL)) + bbs->number[i].modem.min_rate = atoi(str); + if (aborted) + return (0); + + if (!bbs->number[i].modem.max_rate) { + if (i) + bbs->number[i].modem.max_rate = bbs->number[i - 1].modem.max_rate; + else + bbs->number[i].modem.max_rate = 2400; + } + if (bbs->number[i].modem.max_rate < bbs->number[i].modem.min_rate) + bbs->number[i].modem.max_rate = bbs->number[i].modem.min_rate; + bprintf("\1y\1hMaximum Connect Rate (i.e. 2400, 9600, 14400, etc): \1w"); + sprintf(str, "%u", bbs->number[i].modem.max_rate); + if (getstr(str, 5, K_NUMBER | K_EDIT | K_AUTODEL)) + bbs->number[i].modem.max_rate = atoi(str); + if (aborted) + return (0); + bprintf("\1y\1hModem Description (i.e. Hayes, HST, V.32, etc): \1w"); + getstr(bbs->number[i].modem.desc, 15, K_EDIT | K_AUTODEL); + } - bprintf("\1y\1hLocation (City, State): \1w"); - if(!getstr(bbs->number[i].modem.location,30,K_EDIT|K_AUTODEL)) - break; + bprintf("\1y\1hLocation (City, State): \1w"); + if (!getstr(bbs->number[i].modem.location, 30, K_EDIT | K_AUTODEL)) + break; -} -if(!i) - return(0); -bbs->total_numbers=i; -if(aborted) - return(0); - -if(!bbs->users) - bbs->users=100; -bprintf("\1y\1hTotal Number of Users: \1w"); -sprintf(str,"%u",bbs->users); -if(getstr(str,5,K_NUMBER|K_EDIT|K_AUTODEL)) - bbs->users=atoi(str); -if(aborted) return(0); - -if(!bbs->subs) - bbs->subs=10; -bprintf("\1y\1hTotal Number of Sub-boards (Message Areas): \1w"); -sprintf(str,"%u",bbs->subs); -if(getstr(str,5,K_NUMBER|K_EDIT|K_AUTODEL)) - bbs->subs=atoi(str); -if(aborted) return(0); - -if(!bbs->msgs) - bbs->msgs=500; -bprintf("\1y\1hTotal Number of Public Messages: \1w"); -sprintf(str,"%lu",bbs->msgs); -if(getstr(str,10,K_NUMBER|K_EDIT|K_AUTODEL)) - bbs->msgs=atol(str); -if(aborted) return(0); - -if(!bbs->dirs) - bbs->dirs=5; -bprintf("\1y\1hTotal Number of Directories (File Areas): \1w"); -sprintf(str,"%u",bbs->dirs); -if(getstr(str,5,K_NUMBER|K_EDIT|K_AUTODEL)) - bbs->dirs=atoi(str); -if(aborted) return(0); - -if(!bbs->files) - bbs->files=250; -bprintf("\1y\1hTotal Number of Downloadable Files: \1w"); -sprintf(str,"%lu",bbs->files); -if(getstr(str,10,K_NUMBER|K_EDIT|K_AUTODEL)) - bbs->files=atol(str); -if(aborted) return(0); - -if(!bbs->xtrns) - bbs->xtrns=5; -bprintf("\1y\1hTotal Number of External Programs (Doors): \1w"); -sprintf(str,"%u",bbs->xtrns); -if(getstr(str,5,K_NUMBER|K_EDIT|K_AUTODEL)) - bbs->xtrns=atoi(str); -if(aborted) return(0); - -if(!bbs->megs) - bbs->megs=40; -bprintf("\1y\1hTotal Storage Space (in Megabytes): \1w"); -sprintf(str,"%lu",bbs->megs); -if(getstr(str,10,K_NUMBER|K_EDIT|K_AUTODEL)) - bbs->megs=atol(str); -if(aborted) return(0); - -for(i=0;i<DESC_LINES;i++) { - bprintf("\1y\1hBBS Description (%d of %d): ",i+1,DESC_LINES); - if(!getstr(bbs->desc[i],50,K_EDIT|K_AUTODEL|K_LINE)) - break; } - -return(1); + } + if (!i) + return (0); + bbs->total_numbers = i; + if (aborted) + return (0); + + if (!bbs->users) + bbs->users = 100; + bprintf("\1y\1hTotal Number of Users: \1w"); + sprintf(str, "%u", bbs->users); + if (getstr(str, 5, K_NUMBER | K_EDIT | K_AUTODEL)) + bbs->users = atoi(str); + if (aborted) + return (0); + + if (!bbs->subs) + bbs->subs = 10; + bprintf("\1y\1hTotal Number of Sub-boards (Message Areas): \1w"); + sprintf(str, "%u", bbs->subs); + if (getstr(str, 5, K_NUMBER | K_EDIT | K_AUTODEL)) + bbs->subs = atoi(str); + if (aborted) + return (0); + + if (!bbs->msgs) + bbs->msgs = 500; + bprintf("\1y\1hTotal Number of Public Messages: \1w"); + sprintf(str, "%lu", bbs->msgs); + if (getstr(str, 10, K_NUMBER | K_EDIT | K_AUTODEL)) + bbs->msgs = atol(str); + if (aborted) + return (0); + + if (!bbs->dirs) + bbs->dirs = 5; + bprintf("\1y\1hTotal Number of Directories (File Areas): \1w"); + sprintf(str, "%u", bbs->dirs); + if (getstr(str, 5, K_NUMBER | K_EDIT | K_AUTODEL)) + bbs->dirs = atoi(str); + if (aborted) + return (0); + + if (!bbs->files) + bbs->files = 250; + bprintf("\1y\1hTotal Number of Downloadable Files: \1w"); + sprintf(str, "%lu", bbs->files); + if (getstr(str, 10, K_NUMBER | K_EDIT | K_AUTODEL)) + bbs->files = atol(str); + if (aborted) + return (0); + + if (!bbs->xtrns) + bbs->xtrns = 5; + bprintf("\1y\1hTotal Number of External Programs (Doors): \1w"); + sprintf(str, "%u", bbs->xtrns); + if (getstr(str, 5, K_NUMBER | K_EDIT | K_AUTODEL)) + bbs->xtrns = atoi(str); + if (aborted) + return (0); + + if (!bbs->megs) + bbs->megs = 40; + bprintf("\1y\1hTotal Storage Space (in Megabytes): \1w"); + sprintf(str, "%lu", bbs->megs); + if (getstr(str, 10, K_NUMBER | K_EDIT | K_AUTODEL)) + bbs->megs = atol(str); + if (aborted) + return (0); + + for (i = 0; i < DESC_LINES; i++) { + bprintf("\1y\1hBBS Description (%d of %d): ", i + 1, DESC_LINES); + if (!getstr(bbs->desc[i], 50, K_EDIT | K_AUTODEL | K_LINE)) + break; + } + + return (1); } char partname(char *inname, char *inpart) { - char name[128],part[128],str[256]; - -strcpy(name,inname); -strupr(name); -strcpy(part,inpart); -strupr(part); -if(inname[0] && (strstr(name,part) || strstr(part,name))) { - sprintf(str,"\r\nDo you mean %s",inname); - if(yesno(str)) - return(1); } -return(0); + char name[128], part[128], str[256]; + + strcpy(name, inname); + strupr(name); + strcpy(part, inpart); + strupr(part); + if (inname[0] && (strstr(name, part) || strstr(part, name))) { + sprintf(str, "\r\nDo you mean %s", inname); + if (yesno(str)) + return (1); + } + return (0); } -int sortint_cmp(sortint_t *int1, sortint_t *int2) +int sortint_cmp(sortint_t * int1, sortint_t * int2) { -if(int1->i>int2->i) - return(-1); -if(int1->i<int2->i) - return(1); -return(0); + if (int1->i > int2->i) + return (-1); + if (int1->i < int2->i) + return (1); + return (0); } -int sortstr_cmp(sortstr_t *str1, sortstr_t *str2) +int sortstr_cmp(sortstr_t * str1, sortstr_t * str2) { -return(stricmp(str1->str,str2->str)); + return (stricmp(str1->str, str2->str)); } int main(int argc, char **argv) { - char str[512],name[128],*p,ch; - char* database="sbl.dab"; - short i,j,file,done,sort_by_str; - int maint=0; - long l,found; - bbs_t bbs,tmpbbs; - FILE *stream; + char str[512], name[128], *p, ch; + char *database = "sbl.dab"; + short i, j, file, done, sort_by_str; + int maint = 0; + long l, found; + bbs_t bbs, tmpbbs; + FILE *stream; sortstr_t *sortstr; sortint_t *sortint; - for(i=1;i<argc;i++) - if( + for (i = 1; i < argc; i++) + if ( #ifndef __unix__ - argv[i][0]=='/' || + argv[i][0] == '/' || #endif - argv[i][0]=='-') { - switch(toupper(argv[i][1])) { + argv[i][0] == '-') { + switch (toupper(argv[i][1])) { case 'M': - maint=1; - xsdk_mode&=~XSDK_MODE_NOCONSOLE; - break; + maint = 1; + xsdk_mode &= ~XSDK_MODE_NOCONSOLE; + break; case 'W': - xsdk_mode&=~XSDK_MODE_NOCONSOLE; - break; + xsdk_mode &= ~XSDK_MODE_NOCONSOLE; + break; } - } else - database=argv[i]; + } + else + database = argv[i]; - p=getenv("SBBSNODE"); - if(p) - strcpy(node_dir,p); + p = getenv("SBBSNODE"); + if (p) + strcpy(node_dir, p); else { printf("\nSBBSNODE environment variable must be set\n"); - exit(0); } - - if(node_dir[strlen(node_dir)-1]!='\\' && node_dir[strlen(node_dir)-1]!='/') - strcat(node_dir,"/"); - - strcpy(str,"sbl.cfg"); - if((file=sopen(str,O_RDONLY,SH_DENYNO))==-1) { - printf("error opening %s\r\n",str); - exit(1); } - if((stream=fdopen(file,"rb"))==NULL) { - printf("fdopen error with %s\r\n",str); - exit(1); } - fgets(str,81,stream); - del_days=atoi(str); - fgets(str,81,stream); - add_ml=atoi(str); - fgets(str,81,stream); - update_ml=atoi(str); - fgets(str,81,stream); - remove_ml=atoi(str); - fgets(str,81,stream); - verify_ml=atoi(str); - fgets(str,81,stream); - notify_user=atoi(str); + exit(0); + } + + if (node_dir[strlen(node_dir) - 1] != '\\' && node_dir[strlen(node_dir) - 1] != '/') + strcat(node_dir, "/"); + + strcpy(str, "sbl.cfg"); + if ((file = sopen(str, O_RDONLY, SH_DENYNO)) == -1) { + printf("error opening %s\r\n", str); + exit(1); + } + if ((stream = fdopen(file, "rb")) == NULL) { + printf("fdopen error with %s\r\n", str); + exit(1); + } + fgets(str, 81, stream); + del_days = atoi(str); + fgets(str, 81, stream); + add_ml = atoi(str); + fgets(str, 81, stream); + update_ml = atoi(str); + fgets(str, 81, stream); + remove_ml = atoi(str); + fgets(str, 81, stream); + verify_ml = atoi(str); + fgets(str, 81, stream); + notify_user = atoi(str); fclose(stream); initdata(); - if(maint) - client_socket=INVALID_SOCKET; - - mnehigh=HIGH|LIGHTGRAY; - mnelow=HIGH|YELLOW; - if(maint) - user_misc=(ANSI|COLOR); - - if((file=sopen(database,O_RDWR|O_BINARY|O_CREAT,SH_DENYNO,S_IREAD|S_IWRITE))==-1) { - bprintf("\r\n\7Error opening/creating %s\r\n",database); - exit(1); } - if((stream=fdopen(file,"w+b"))==NULL) { - bprintf("\r\n\7Error converting %s file handle to stream\r\n",database); - exit(1); } - setvbuf(stream,0L,_IOFBF,2048); - - if(del_days) { - now=time(NULL); - strcpy(str,"sblpurge.dab"); - if((file=nopen(str,O_RDWR|O_CREAT))==-1) { - printf("Error creating %s\r\n",str); - exit(1); } - l=0; - read(file,&l,4); - if(now-l>(24L*60L*60L) || maint) { /* more than a day since update */ + if (maint) + client_socket = INVALID_SOCKET; + + mnehigh = HIGH | LIGHTGRAY; + mnelow = HIGH | YELLOW; + if (maint) + user_misc = (ANSI | COLOR); + + if ((file = sopen(database, O_RDWR | O_BINARY | O_CREAT, SH_DENYNO, S_IREAD | S_IWRITE)) == -1) { + bprintf("\r\n\7Error opening/creating %s\r\n", database); + exit(1); + } + if ((stream = fdopen(file, "w+b")) == NULL) { + bprintf("\r\n\7Error converting %s file handle to stream\r\n", database); + exit(1); + } + setvbuf(stream, 0L, _IOFBF, 2048); + + if (del_days) { + now = time(NULL); + strcpy(str, "sblpurge.dab"); + if ((file = nopen(str, O_RDWR | O_CREAT)) == -1) { + printf("Error creating %s\r\n", str); + exit(1); + } + l = 0; + read(file, &l, 4); + if (now - l > (24L * 60L * 60L) || maint) { /* more than a day since + * update */ bputs("\r\n\1n\1hRunning daily maintenance for Synchronet BBS List..."); - lseek(file,0L,SEEK_SET); - write(file,&now,4); + lseek(file, 0L, SEEK_SET); + write(file, &now, 4); close(file); - fseek(stream,0L,SEEK_SET); - while(!feof(stream)) { - if(!fread(&bbs,sizeof(bbs_t),1,stream)) + fseek(stream, 0L, SEEK_SET); + while (!feof(stream)) { + if (!fread(&bbs, sizeof(bbs_t), 1, stream)) break; - if(bbs.name[0]) { - if((now-bbs.updated)/(24L*60L*60L)>(time_t)del_days - && (now-bbs.created)/(24L*60L*60L)>(time_t)del_days - && (now-bbs.verified)/(24L*60L*60L)>(time_t)del_days) { - lncntr=0; - bprintf("\r\n\1n\1hAuto-deleting \1m%s\r\n",bbs.name); - if(!(bbs.misc&FROM_SMB)) { - sprintf(str,"\1n\1hSBL: \1mYour BBS entry for \1y%s\1m\r\n" + if (bbs.name[0]) { + if ((now - bbs.updated) / (24L * 60L * 60L) > (time_t) del_days + && (now - bbs.created) / (24L * 60L * 60L) > (time_t) del_days + && (now - bbs.verified) / (24L * 60L * 60L) > (time_t) del_days) { + lncntr = 0; + bprintf("\r\n\1n\1hAuto-deleting \1m%s\r\n", bbs.name); + if (!(bbs.misc & FROM_SMB)) { + sprintf(str, "\1n\1hSBL: \1mYour BBS entry for \1y%s\1m\r\n" " was auto-deleted from the \1cSynchronet BBS " - "List\r\n",bbs.name); - i=usernumber(bbs.user); - if(i) putsmsg(i,str); + "List\r\n", bbs.name); + i = usernumber(bbs.user); + if (i) + putsmsg(i, str); } - bbs.name[0]=0; - fseek(stream,-(long)(sizeof(bbs_t)),SEEK_CUR); - fwrite(&bbs,sizeof(bbs_t),1,stream); - fflush(stream); - } else if (!(bbs.misc&FROM_SMB)) { /* Warn user */ - l=bbs.created; - if(l<bbs.updated) - l=bbs.updated; - if(l<bbs.verified) - l=bbs.verified; - if((now-l)/(24L*60L*60L)>=(time_t)(del_days/2)) { - bprintf("\r\n\1n\1hWarning \1y%s\r\n",bbs.user); - lncntr=0; - sprintf(str,"\1n\1hSBL: \1mPlease verify your BBS " + bbs.name[0] = 0; + fseek(stream, -(long)(sizeof(bbs_t)), SEEK_CUR); + fwrite(&bbs, sizeof(bbs_t), 1, stream); + fflush(stream); + } + else if (!(bbs.misc & FROM_SMB)) { /* Warn user */ + l = bbs.created; + if (l < bbs.updated) + l = bbs.updated; + if (l < bbs.verified) + l = bbs.verified; + if ((now - l) / (24L * 60L * 60L) >= (time_t) (del_days / 2)) { + bprintf("\r\n\1n\1hWarning \1y%s\r\n", bbs.user); + lncntr = 0; + sprintf(str, "\1n\1hSBL: \1mPlease verify your BBS " "entry for \1y%s\1m\r\n " "in the \1cSynchronet BBS List " "\1mor it will be deleted in \1i\1r%u " - "\1n\1h\1mdays.\r\n" + "\1n\1h\1mdays.\r\n" ,bbs.name - ,del_days-((now-l)/(24L*60L*60L))); - i=usernumber(bbs.user); - if(i) putsmsg(i,str); } } } } } + ,del_days - ((now - l) / (24L * 60L * 60L))); + i = usernumber(bbs.user); + if (i) + putsmsg(i, str); + } + } + } + } + } else - close(file); } + close(file); + } - if(maint) - return(0); + if (maint) + return (0); - strcpy(list_fmt,DEF_LIST_FMT); - while(1) { - aborted=0; + strcpy(list_fmt, DEF_LIST_FMT); + while (1) { + aborted = 0; attr(LIGHTGRAY); cls(); COMPILER_DESC(str); @@ -909,92 +976,94 @@ int main(int argc, char **argv) ,xsdk_ver ,str ,__DATE__ - ); - - #define SBL_INDENT " " - sprintf(str,SBL_INDENT"~List all systems (condensed)\r\n" - SBL_INDENT"~Change list format\r\n" - SBL_INDENT"~Extended information on all systems\r\n" - SBL_INDENT"~Turn screen pause %s\r\n" - SBL_INDENT"~Find text in BBS entries\r\n" - SBL_INDENT"~Generate sorted list\r\n" - SBL_INDENT"~Display sorted list\r\n" - SBL_INDENT"~New entry scan\r\n" - SBL_INDENT"~Add a BBS entry\r\n" - SBL_INDENT"~Update a BBS entry\r\n" - SBL_INDENT"~Verify a BBS entry\r\n" - SBL_INDENT"~Remove a BBS entry\r\n" - SBL_INDENT"~Quit back to BBS\r\n" - ,sbl_pause ? "OFF" : "ON"); + ); + +#define SBL_INDENT " " + sprintf(str, SBL_INDENT "~List all systems (condensed)\r\n" + SBL_INDENT "~Change list format\r\n" + SBL_INDENT "~Extended information on all systems\r\n" + SBL_INDENT "~Turn screen pause %s\r\n" + SBL_INDENT "~Find text in BBS entries\r\n" + SBL_INDENT "~Generate sorted list\r\n" + SBL_INDENT "~Display sorted list\r\n" + SBL_INDENT "~New entry scan\r\n" + SBL_INDENT "~Add a BBS entry\r\n" + SBL_INDENT "~Update a BBS entry\r\n" + SBL_INDENT "~Verify a BBS entry\r\n" + SBL_INDENT "~Remove a BBS entry\r\n" + SBL_INDENT "~Quit back to BBS\r\n" + ,sbl_pause ? "OFF" : "ON"); mnemonics(str); - if(SYSOP) - mnemonics(SBL_INDENT"~* Undelete entries\r\n"); + if (SYSOP) + mnemonics(SBL_INDENT "~* Undelete entries\r\n"); bputs("\r\n"); - l=filelength(fileno(stream)); - if(l>0) - bprintf(SBL_INDENT"\1n\1cThere are \1h%lu\1n\1c entries in the online BBS list " - "database.\r\n",l/(long)sizeof(bbs_t)); + l = filelength(fileno(stream)); + if (l > 0) + bprintf(SBL_INDENT "\1n\1cThere are \1h%lu\1n\1c entries in the online BBS list " + "database.\r\n", l / (long)sizeof(bbs_t)); - if(del_days) { - bprintf(SBL_INDENT"\1n\1cEntries are auto-deleted \1h%u\1n\1c days after " - "last update or verification.\r\n",del_days); - bputs(SBL_INDENT"Users are encouraged to \1hV\1n\1cerify (vouch for) any listed " - "systems they call.\r\n"); } + if (del_days) { + bprintf(SBL_INDENT "\1n\1cEntries are auto-deleted \1h%u\1n\1c days after " + "last update or verification.\r\n", del_days); + bputs(SBL_INDENT "Users are encouraged to \1hV\1n\1cerify (vouch for) any listed " + "systems they call.\r\n"); + } - nodesync(); /* Display any waiting messages */ + nodesync(); /* Display any waiting messages */ - bputs("\r\n"SBL_INDENT"\1y\1hWhich: \1w"); - switch(getkeys("CLGDEFSNAURTQV!*",0)) { + bputs("\r\n" SBL_INDENT "\1y\1hWhich: \1w"); + switch (getkeys("CLGDEFSNAURTQV!*", 0)) { case '!': - bprintf("\r\nsizeof(bbs_t)=%u\r\n",sizeof(bbs_t)); - bprintf("\r\noffsetof(verification_count=%x)\r\n",offsetof(bbs_t,verification_count)); + bprintf("\r\nsizeof(bbs_t)=%u\r\n", sizeof(bbs_t)); + bprintf("\r\noffsetof(verification_count=%x)\r\n", offsetof(bbs_t, verification_count)); pause(); break; case '*': cls(); - if(!SYSOP) + if (!SYSOP) break; - fseek(stream,0L,SEEK_SET); - while(!feof(stream) && !aborted) { - if(!fread(&bbs,sizeof(bbs_t),1,stream)) + fseek(stream, 0L, SEEK_SET); + while (!feof(stream) && !aborted) { + if (!fread(&bbs, sizeof(bbs_t), 1, stream)) break; - if(!bbs.name[0] && bbs.total_numbers>0) { - bbs.name[0]='?'; - bbs.verified=time(NULL); - sprintf(bbs.userverified,"%.25s",user_name); - if(yesno(bbs.name)) { + if (!bbs.name[0] && bbs.total_numbers > 0) { + bbs.name[0] = '?'; + bbs.verified = time(NULL); + sprintf(bbs.userverified, "%.25s", user_name); + if (yesno(bbs.name)) { bprintf("\1n\1gFirst char: \1h"); - bbs.name[0]=getkey(0); - bprintf("%s\r\n",bbs.name); - fseek(stream,-(long)sizeof(bbs_t),SEEK_CUR); - fwrite(&bbs,sizeof(bbs_t),1,stream); - fflush(stream); - } - } + bbs.name[0] = getkey(0); + bprintf("%s\r\n", bbs.name); + fseek(stream, -(long)sizeof(bbs_t), SEEK_CUR); + fwrite(&bbs, sizeof(bbs_t), 1, stream); + fflush(stream); + } + } } break; case 'L': cls(); - fseek(stream,0L,SEEK_SET); - i=0; - while(!feof(stream) && !aborted) { - if(!fread(&bbs,sizeof(bbs_t),1,stream)) + fseek(stream, 0L, SEEK_SET); + i = 0; + while (!feof(stream) && !aborted) { + if (!fread(&bbs, sizeof(bbs_t), 1, stream)) break; - if(!bbs.name[0] || bbs.total_numbers<1) + if (!bbs.name[0] || bbs.total_numbers < 1) continue; i++; - if(!short_bbs_info(bbs)) + if (!short_bbs_info(bbs)) break; - if(!sbl_pause) - lncntr=0; } - bprintf("\r\n\1n\1h%u systems listed.\r\n",i); + if (!sbl_pause) + lncntr = 0; + } + bprintf("\r\n\1n\1h%u systems listed.\r\n", i); #if 0 - if(kbhit()) + if (kbhit()) getch(); -#endif - if(lncntr) +#endif + if (lncntr) pause(); break; case 'C': @@ -1014,152 +1083,167 @@ int main(int argc, char **argv) bputs("\1h\1w(\1mC\1w) \1n\1mDate Entry was Created\r\n"); bputs("\1h\1w(\1mV\1w) \1n\1mDate Entry was Last Verified\r\n"); bputs("\1h\1w(\1mD\1w) \1n\1mDate Entry was Last Updated\r\n"); - bprintf("\r\n\1n\1gDefault Format: \1h%s",DEF_LIST_FMT); - bprintf("\r\n\1n\1gCurrent Format: \1h%s\r\n",list_fmt); + bprintf("\r\n\1n\1gDefault Format: \1h%s", DEF_LIST_FMT); + bprintf("\r\n\1n\1gCurrent Format: \1h%s\r\n", list_fmt); bprintf("\r\n\1y\1hNew Format: "); - if(getstr(tmp,10,K_UPPER|K_LINE)) { - if(!strchr(tmp,'P') || !strchr(tmp,'N')) { + if (getstr(tmp, 10, K_UPPER | K_LINE)) { + if (!strchr(tmp, 'P') || !strchr(tmp, 'N')) { bputs("\r\n\1h\1mP\1n\1mhone and \1hN\1n\1mame specifiers " - "must be present in format.\r\n\r\n"); - pause(); } + "must be present in format.\r\n\r\n"); + pause(); + } else - strcpy(list_fmt,tmp); } + strcpy(list_fmt, tmp); + } break; case 'E': - fseek(stream,0L,SEEK_SET); - while(!feof(stream) && !aborted) { - if(!fread(&bbs,sizeof(bbs_t),1,stream)) + fseek(stream, 0L, SEEK_SET); + while (!feof(stream) && !aborted) { + if (!fread(&bbs, sizeof(bbs_t), 1, stream)) break; - if(!bbs.name[0] || bbs.total_numbers<1) + if (!bbs.name[0] || bbs.total_numbers < 1) continue; - i=long_bbs_info(bbs); - if(bbs.name[0] && !i) + i = long_bbs_info(bbs); + if (bbs.name[0] && !i) break; #if VERIFICATION_MOD - if(i==2) { + if (i == 2) { bbs.verification_count++; - fseek(stream,-(int)sizeof(bbs_t),SEEK_CUR); - fwrite(&bbs,sizeof(bbs_t),1,stream); + fseek(stream, -(int)sizeof(bbs_t), SEEK_CUR); + fwrite(&bbs, sizeof(bbs_t), 1, stream); fflush(stream); - fseek(stream,-(int)sizeof(bbs_t),SEEK_CUR); + fseek(stream, -(int)sizeof(bbs_t), SEEK_CUR); } #endif - if(!sbl_pause) - lncntr=0; } + if (!sbl_pause) + lncntr = 0; + } break; - case 'F': /* Find text */ + case 'F': /* Find text */ cls(); bputs("\1y\1hText to search for: "); - if(!getstr(name,25,K_UPPER|K_LINE)) + if (!getstr(name, 25, K_UPPER | K_LINE)) break; - ch=yesno("\r\nDisplay extended information"); + ch = yesno("\r\nDisplay extended information"); - found=0; + found = 0; bputs("\1n\1h\r\nSearching...\r\n\r\n"); - fseek(stream,0L,SEEK_SET); - while(!feof(stream) && !aborted) { - if(!sbl_pause) - lncntr=0; - if(!fread(&bbs,sizeof(bbs_t),1,stream)) + fseek(stream, 0L, SEEK_SET); + while (!feof(stream) && !aborted) { + if (!sbl_pause) + lncntr = 0; + if (!fread(&bbs, sizeof(bbs_t), 1, stream)) break; - if(!bbs.name[0] || bbs.total_numbers<1) + if (!bbs.name[0] || bbs.total_numbers < 1) continue; - tmpbbs=bbs; + tmpbbs = bbs; strupr(tmpbbs.name); strupr(tmpbbs.user); strupr(tmpbbs.software); strupr(tmpbbs.userverified); strupr(tmpbbs.userupdated); strupr(tmpbbs.web_url); - for(i=0;i<DESC_LINES;i++) { + for (i = 0; i < DESC_LINES; i++) { strupr(tmpbbs.desc[i]); - if(strstr(tmpbbs.desc[i],name)) + if (strstr(tmpbbs.desc[i], name)) break; } - if(i<DESC_LINES - || strstr(tmpbbs.name,name) - || strstr(tmpbbs.user,name) - || strstr(tmpbbs.software,name) - || strstr(tmpbbs.userverified,name) - || strstr(tmpbbs.userupdated,name) - || strstr(tmpbbs.web_url,name) - ) { + if (i < DESC_LINES + || strstr(tmpbbs.name, name) + || strstr(tmpbbs.user, name) + || strstr(tmpbbs.software, name) + || strstr(tmpbbs.userverified, name) + || strstr(tmpbbs.userupdated, name) + || strstr(tmpbbs.web_url, name) + ) { found++; - if(ch && !long_bbs_info(bbs)) + if (ch && !long_bbs_info(bbs)) break; - if(!ch && !short_bbs_info(bbs)) + if (!ch && !short_bbs_info(bbs)) break; - continue; } + continue; + } - for(i=0;i<tmpbbs.total_sysops;i++) { + for (i = 0; i < tmpbbs.total_sysops; i++) { strupr(tmpbbs.sysop[i]); - if(strstr(tmpbbs.sysop[i],name)) - break; } - if(i<tmpbbs.total_sysops) { + if (strstr(tmpbbs.sysop[i], name)) + break; + } + if (i < tmpbbs.total_sysops) { found++; - if(ch && !long_bbs_info(bbs)) + if (ch && !long_bbs_info(bbs)) break; - if(!ch && !short_bbs_info(bbs)) + if (!ch && !short_bbs_info(bbs)) break; - continue; } + continue; + } - for(i=0;i<tmpbbs.total_networks;i++) { + for (i = 0; i < tmpbbs.total_networks; i++) { strupr(tmpbbs.network[i]); strupr(tmpbbs.address[i]); - if(strstr(tmpbbs.network[i],name) - || strstr(tmpbbs.address[i],name)) - break; } - if(i<tmpbbs.total_networks) { + if (strstr(tmpbbs.network[i], name) + || strstr(tmpbbs.address[i], name)) + break; + } + if (i < tmpbbs.total_networks) { found++; - if(ch && !long_bbs_info(bbs)) + if (ch && !long_bbs_info(bbs)) break; - if(!ch && !short_bbs_info(bbs)) + if (!ch && !short_bbs_info(bbs)) break; - continue; } + continue; + } - for(i=0;i<tmpbbs.total_terminals;i++) { + for (i = 0; i < tmpbbs.total_terminals; i++) { strupr(tmpbbs.terminal[i]); - if(strstr(tmpbbs.terminal[i],name)) - break; } - if(i<tmpbbs.total_terminals) { + if (strstr(tmpbbs.terminal[i], name)) + break; + } + if (i < tmpbbs.total_terminals) { found++; - if(ch && !long_bbs_info(bbs)) + if (ch && !long_bbs_info(bbs)) break; - if(!ch && !short_bbs_info(bbs)) + if (!ch && !short_bbs_info(bbs)) break; - continue; } + continue; + } - for(i=0;i<tmpbbs.total_numbers;i++) { + for (i = 0; i < tmpbbs.total_numbers; i++) { strupr(tmpbbs.number[i].modem.number); strupr(tmpbbs.number[i].modem.desc); strupr(tmpbbs.number[i].modem.location); - if(strstr(tmpbbs.number[i].modem.number,name) - || strstr(tmpbbs.number[i].modem.desc,name) - || strstr(tmpbbs.number[i].modem.location,name)) - break; } - if(i<tmpbbs.total_numbers) { + if (strstr(tmpbbs.number[i].modem.number, name) + || strstr(tmpbbs.number[i].modem.desc, name) + || strstr(tmpbbs.number[i].modem.location, name)) + break; + } + if (i < tmpbbs.total_numbers) { found++; - if(ch && !long_bbs_info(bbs)) + if (ch && !long_bbs_info(bbs)) break; - if(!ch && !short_bbs_info(bbs)) + if (!ch && !short_bbs_info(bbs)) break; - continue; } } - if(!ch || !found) { + continue; + } + } + if (!ch || !found) { CRLF; #if 0 - if(kbhit()) + if (kbhit()) getch(); -#endif - if(found) - bprintf("\1n\1h%u systems listed.\r\n",found); - pause(); } +#endif + if (found) + bprintf("\1n\1h%u systems listed.\r\n", found); + pause(); + } break; - case 'G': /* Generated sorted list */ + case 'G': /* Generated sorted list */ cls(); - if(!filelength(fileno(stream))) { + if (!filelength(fileno(stream))) { bprintf("No BBS list exists.\r\n"); pause(); - break; } + break; + } bputs("\1n\1c\1hSort Options:\1n\r\n\r\n"); bputs("\1h\1w(\1mN\1w) \1n\1mName of System\r\n"); bputs("\1h\1w(\1mS\1w) \1n\1mSoftware Used\r\n"); @@ -1176,122 +1260,132 @@ int main(int argc, char **argv) bputs("\1h\1w(\1mV\1w) \1n\1mDate Entry was Last Verified\r\n"); bputs("\1h\1w(\1mD\1w) \1n\1mDate Entry was Last Updated\r\n"); bprintf("\r\n\1y\1hSort by (\1wQ\1y=Quit): \1w"); - ch=getkeys("NSPBMYTUHLFCVDQ",0); - if(!ch || ch=='Q') + ch = getkeys("NSPBMYTUHLFCVDQ", 0); + if (!ch || ch == 'Q') break; cls(); bputs("\1n\1hSorting... \1m"); - fseek(stream,0L,SEEK_SET); - i=j=done=0; - sort_by_str=0; - sortstr=NULL; - sortint=NULL; - while(!feof(stream) && !done) { - if(!fread(&bbs,sizeof(bbs_t),1,stream)) + fseek(stream, 0L, SEEK_SET); + i = j = done = 0; + sort_by_str = 0; + sortstr = NULL; + sortint = NULL; + while (!feof(stream) && !done) { + if (!fread(&bbs, sizeof(bbs_t), 1, stream)) break; j++; - bprintf("\b\b\b\b%4u",j); - if(!bbs.name[0]) /* don't sort deleted entries */ + bprintf("\b\b\b\b%4u", j); + if (!bbs.name[0]) /* don't sort deleted + * entries */ continue; - if(bbs.total_numbers<1) /* don't sort corrupted entries */ + if (bbs.total_numbers < 1) /* don't sort corrupted + * entries */ continue; i++; - switch(ch) { + switch (ch) { case 'N': - sprintf(str,"%.30s",bbs.name); - sort_by_str=1; + sprintf(str, "%.30s", bbs.name); + sort_by_str = 1; break; case 'S': - sprintf(str,"%.30s",bbs.software); - sort_by_str=1; + sprintf(str, "%.30s", bbs.software); + sort_by_str = 1; break; case 'P': - sprintf(str,"%.30s",bbs.number[0].modem.number); - sort_by_str=1; + sprintf(str, "%.30s", bbs.number[0].modem.number); + sort_by_str = 1; break; case 'M': - sprintf(str,"%.30s",bbs.number[0].modem.desc); - sort_by_str=1; + sprintf(str, "%.30s", bbs.number[0].modem.desc); + sort_by_str = 1; break; case 'Y': - sprintf(str,"%.30s",bbs.sysop[0]); - sort_by_str=1; + sprintf(str, "%.30s", bbs.sysop[0]); + sort_by_str = 1; break; case 'L': - sprintf(str,"%.30s",bbs.number[0].modem.location); - sort_by_str=1; + sprintf(str, "%.30s", bbs.number[0].modem.location); + sort_by_str = 1; break; case 'B': - l=bbs.number[0].modem.max_rate; + l = bbs.number[0].modem.max_rate; break; case 'T': - l=bbs.nodes; + l = bbs.nodes; break; case 'U': - l=bbs.users; + l = bbs.users; break; case 'H': - l=bbs.megs; + l = bbs.megs; break; case 'F': - l=bbs.birth; + l = bbs.birth; break; case 'C': - l=bbs.created; + l = bbs.created; break; case 'V': - l=bbs.verified; + l = bbs.verified; break; case 'D': - l=bbs.updated; - break; } - if(sort_by_str) { - if((sortstr=(sortstr_t *)realloc(sortstr - ,sizeof(sortstr_t)*i))==NULL) { + l = bbs.updated; + break; + } + if (sort_by_str) { + if ((sortstr = (sortstr_t *) realloc(sortstr + ,sizeof(sortstr_t) * i)) == NULL) { bprintf("\r\n\7Memory allocation error\r\n"); free(sortstr); - done=1; - continue; } - strcpy(sortstr[i-1].str,str); - sortstr[i-1].offset=j-1; } + done = 1; + continue; + } + strcpy(sortstr[i - 1].str, str); + sortstr[i - 1].offset = j - 1; + } else { - if((sortint=(sortint_t *)realloc(sortint - ,sizeof(sortint_t)*i))==NULL) { + if ((sortint = (sortint_t *) realloc(sortint + ,sizeof(sortint_t) * i)) == NULL) { bprintf("\r\n\7Memory allocation error\r\n"); free(sortint); - done=1; - continue; } - sortint[i-1].i=l; - sortint[i-1].offset=j-1; } } + done = 1; + continue; + } + sortint[i - 1].i = l; + sortint[i - 1].offset = j - 1; + } + } - if(done) { + if (done) { pause(); - break; } + break; + } - if(sort_by_str) - qsort((void *)sortstr,i,sizeof(sortstr[0]) - ,(int(*)(const void *, const void *))sortstr_cmp); + if (sort_by_str) + qsort((void *)sortstr, i, sizeof(sortstr[0]) + ,(int (*) (const void *, const void *))sortstr_cmp); else - qsort((void *)sortint,i,sizeof(sortint[0]) - ,(int(*)(const void *, const void *))sortint_cmp); + qsort((void *)sortint, i, sizeof(sortint[0]) + ,(int (*) (const void *, const void *))sortint_cmp); bprintf("\r\n\r\n\1h\1gCreating index..."); - sprintf(str,"sort_%03d.ndx",node_num); - if((file=nopen(str,O_WRONLY|O_CREAT|O_TRUNC))==-1) { - bprintf("\r\n\7Error creating %s\r\n",str); - if(sort_by_str) + sprintf(str, "sort_%03d.ndx", node_num); + if ((file = nopen(str, O_WRONLY | O_CREAT | O_TRUNC)) == -1) { + bprintf("\r\n\7Error creating %s\r\n", str); + if (sort_by_str) free(sortstr); else free(sortint); pause(); - break; } - for(j=0;j<i;j++) - if(sort_by_str) - write(file,&sortstr[j].offset,2); + break; + } + for (j = 0; j < i; j++) + if (sort_by_str) + write(file, &sortstr[j].offset, 2); else - write(file,&sortint[j].offset,2); + write(file, &sortint[j].offset, 2); close(file); - if(sort_by_str) + if (sort_by_str) free(sortstr); else free(sortint); @@ -1300,250 +1394,281 @@ int main(int argc, char **argv) break; case 'D': cls(); - sprintf(str,"sort_%03d.ndx",node_num); - if((file=nopen(str,O_RDONLY))==-1) { + sprintf(str, "sort_%03d.ndx", node_num); + if ((file = nopen(str, O_RDONLY)) == -1) { bputs("\1n\1r\1hSorted list not generated.\r\n"); - pause(); } - ch=yesno("Display extended information"); + pause(); + } + ch = yesno("Display extended information"); cls(); - while(/* !eof(file) && not on unix */ !aborted) { - if(read(file,&i,2)!=2) + while ( /* !eof(file) && not on unix */ !aborted) { + if (read(file, &i, 2) != 2) break; - fseek(stream,(long)i*sizeof(bbs_t),SEEK_SET); - if(!sbl_pause) - lncntr=0; - if(!fread(&bbs,sizeof(bbs_t),1,stream)) + fseek(stream, (long)i * sizeof(bbs_t), SEEK_SET); + if (!sbl_pause) + lncntr = 0; + if (!fread(&bbs, sizeof(bbs_t), 1, stream)) break; - if(!bbs.name[0] || bbs.total_numbers<1) + if (!bbs.name[0] || bbs.total_numbers < 1) continue; - if(ch && !long_bbs_info(bbs)) + if (ch && !long_bbs_info(bbs)) break; - if(!ch && !short_bbs_info(bbs)) - break; } + if (!ch && !short_bbs_info(bbs)) + break; + } close(file); #if 0 - if(kbhit()) + if (kbhit()) getch(); -#endif - if(lncntr) +#endif + if (lncntr) pause(); break; - case 'N': /* New (updated) entry scan */ + case 'N': /* New (updated) entry scan */ cls(); bputs("\1y\1hLast update (MM/DD/YY): "); - if(!getstr(str,8,K_UPPER|K_LINE)) + if (!getstr(str, 8, K_UPPER | K_LINE)) break; - l=dstrtounix(str); - ch=yesno("\r\nDisplay extended information"); - found=0; + l = dstrtounix(str); + ch = yesno("\r\nDisplay extended information"); + found = 0; bputs("\1n\1h\r\nSearching...\r\n\r\n"); - fseek(stream,0L,SEEK_SET); - while(!feof(stream) && !aborted) { - if(!sbl_pause) - lncntr=0; - if(!fread(&bbs,sizeof(bbs_t),1,stream)) + fseek(stream, 0L, SEEK_SET); + while (!feof(stream) && !aborted) { + if (!sbl_pause) + lncntr = 0; + if (!fread(&bbs, sizeof(bbs_t), 1, stream)) break; - if(!bbs.name[0] || bbs.total_numbers<1) + if (!bbs.name[0] || bbs.total_numbers < 1) continue; - if(bbs.updated>=l || bbs.created>=l) { - if(ch && !long_bbs_info(bbs)) + if (bbs.updated >= l || bbs.created >= l) { + if (ch && !long_bbs_info(bbs)) break; - if(!ch && !short_bbs_info(bbs)) + if (!ch && !short_bbs_info(bbs)) break; found++; - continue; } } - if(!ch || !found) { + continue; + } + } + if (!ch || !found) { CRLF; - pause(); } + pause(); + } break; case 'A': cls(); - if((uint)user_level<add_ml) { + if ((uint) user_level < add_ml) { bprintf("\1h\1rYou have insufficient access.\r\n\r\n"); pause(); - break; } + break; + } bputs("\1g\1hAdding a BBS entry:\1n\r\n\r\n"); bputs("\1n\1gHit ENTER for unknown data items.\r\n\r\n"); - memset(&bbs,0,sizeof(bbs_t)); - if(!get_bbs_info(&bbs)) + memset(&bbs, 0, sizeof(bbs_t)); + if (!get_bbs_info(&bbs)) break; bputs("\1n\1h\r\nSearching for duplicates..."); - fseek(stream,0L,SEEK_SET); - i=0; + fseek(stream, 0L, SEEK_SET); + i = 0; dots(0); - while(!feof(stream) && !i) { + while (!feof(stream) && !i) { dots(1); - if(!fread(&tmpbbs,sizeof(bbs_t),1,stream)) + if (!fread(&tmpbbs, sizeof(bbs_t), 1, stream)) break; - if(!stricmp(tmpbbs.name,bbs.name)) i=1; } - if(i) { + if (!stricmp(tmpbbs.name, bbs.name)) + i = 1; + } + if (i) { bprintf("\7\1n\1h\1r\1i\r\n\r\n%s \1n\1h\1ralready exists!" "\r\n\r\n" ,bbs.name); pause(); - break; } + break; + } bputs("\1n\1h\r\nSaving..."); - fseek(stream,0L,SEEK_SET); + fseek(stream, 0L, SEEK_SET); dots(0); - while(!feof(stream)) { + while (!feof(stream)) { dots(1); - if(!fread(&ch,1,1,stream)) + if (!fread(&ch, 1, 1, stream)) + break; + if (!ch) { /* first byte is null */ + fseek(stream, -1L, SEEK_CUR); break; - if(!ch) { /* first byte is null */ - fseek(stream,-1L,SEEK_CUR); - break; } - fseek(stream,(long)sizeof(bbs_t)-1L,SEEK_CUR); } - bbs.created=time(NULL); - fwrite(&bbs,sizeof(bbs_t),1,stream); + } + fseek(stream, (long)sizeof(bbs_t) - 1L, SEEK_CUR); + } + bbs.created = time(NULL); + fwrite(&bbs, sizeof(bbs_t), 1, stream); fflush(stream); - if(notify_user && notify_user!=user_number) { - sprintf(str,"\1n\1hSBL: \1y%s \1madded \1c%s\1m " - "to the BBS List\r\n",user_name,bbs.name); - putsmsg(notify_user,str); } + if (notify_user && notify_user != user_number) { + sprintf(str, "\1n\1hSBL: \1y%s \1madded \1c%s\1m " + "to the BBS List\r\n", user_name, bbs.name); + putsmsg(notify_user, str); + } break; - case 'R': /* Remove an entry */ + case 'R': /* Remove an entry */ cls(); - if((uint)user_level<remove_ml) { + if ((uint) user_level < remove_ml) { bprintf("\1h\1rYou have insufficient access.\r\n\r\n"); pause(); - break; } + break; + } bprintf("\1y\1hRemove which system: "); - if(!getstr(name,25,K_LINE|K_UPPER)) + if (!getstr(name, 25, K_LINE | K_UPPER)) break; bputs("\1n\1h\r\nSearching..."); - fseek(stream,0L,SEEK_SET); - found=0; + fseek(stream, 0L, SEEK_SET); + found = 0; dots(0); - while(!feof(stream) && !aborted) { + while (!feof(stream) && !aborted) { dots(1); - if(!fread(&bbs,sizeof(bbs_t),1,stream)) + if (!fread(&bbs, sizeof(bbs_t), 1, stream)) break; - if(!stricmp(bbs.name,name) || partname(bbs.name,name)) { - found=1; - for(i=0;i<bbs.total_sysops && i<MAX_SYSOPS;i++) - if(!stricmp(bbs.sysop[i],user_name)) + if (!stricmp(bbs.name, name) || partname(bbs.name, name)) { + found = 1; + for (i = 0; i < bbs.total_sysops && i < MAX_SYSOPS; i++) + if (!stricmp(bbs.sysop[i], user_name)) break; - if(SYSOP || !stricmp(bbs.user,user_name) - || i<bbs.total_sysops) { - fseek(stream,-(long)(sizeof(bbs_t)),SEEK_CUR); - strcpy(tmp,bbs.name); - bbs.name[0]=0; - bbs.updated=time(NULL); - fwrite(&bbs,sizeof(bbs_t),1,stream); + if (SYSOP || !stricmp(bbs.user, user_name) + || i < bbs.total_sysops) { + fseek(stream, -(long)(sizeof(bbs_t)), SEEK_CUR); + strcpy(tmp, bbs.name); + bbs.name[0] = 0; + bbs.updated = time(NULL); + fwrite(&bbs, sizeof(bbs_t), 1, stream); fflush(stream); bprintf("\r\n\r\n\1m%s\1c deleted." ,tmp); - if(notify_user && notify_user!=user_number) { - sprintf(str,"\1n\1hSBL: \1y%s \1mremoved \1c%s\1m " - "from the BBS List\r\n",user_name,tmp); - putsmsg(notify_user,str); } } + if (notify_user && notify_user != user_number) { + sprintf(str, "\1n\1hSBL: \1y%s \1mremoved \1c%s\1m " + "from the BBS List\r\n", user_name, tmp); + putsmsg(notify_user, str); + } + } else bprintf("\r\n\r\n\1rYou did not create \1m%s\1n." ,bbs.name); - break; } } - if(!found) - bprintf("\r\n\r\n\1m%s\1c not found.",name); + break; + } + } + if (!found) + bprintf("\r\n\r\n\1m%s\1c not found.", name); CRLF; CRLF; pause(); break; case 'T': - sbl_pause=!sbl_pause; + sbl_pause = !sbl_pause; break; - case 'V': /* Verify an entry */ + case 'V': /* Verify an entry */ cls(); - if((uint)user_level<verify_ml) { + if ((uint) user_level < verify_ml) { bprintf("\1h\1rYou have insufficient access.\r\n\r\n"); pause(); - break; } + break; + } bprintf("\1y\1hVerify which system: "); - if(!getstr(name,25,K_LINE|K_UPPER)) + if (!getstr(name, 25, K_LINE | K_UPPER)) break; bputs("\1n\1h\r\nSearching..."); - fseek(stream,0L,SEEK_SET); - found=0; + fseek(stream, 0L, SEEK_SET); + found = 0; dots(0); - while(!feof(stream) && !aborted) { + while (!feof(stream) && !aborted) { dots(1); - if(!fread(&bbs,sizeof(bbs_t),1,stream)) + if (!fread(&bbs, sizeof(bbs_t), 1, stream)) break; - if(!stricmp(bbs.name,name) || partname(bbs.name,name)) { - found=1; - bbs.verified=time(NULL); - sprintf(bbs.userverified,"%.25s",user_name); - fseek(stream,-(long)(sizeof(bbs_t)),SEEK_CUR); - fwrite(&bbs,sizeof(bbs_t),1,stream); + if (!stricmp(bbs.name, name) || partname(bbs.name, name)) { + found = 1; + bbs.verified = time(NULL); + sprintf(bbs.userverified, "%.25s", user_name); + fseek(stream, -(long)(sizeof(bbs_t)), SEEK_CUR); + fwrite(&bbs, sizeof(bbs_t), 1, stream); fflush(stream); bprintf("\r\n\r\n\1m%s\1c verified. \1r\1h\1iThank you!" ,bbs.name); - sprintf(str,"\1n\1hSBL: \1y%s \1mverified \1c%s\1m " - "in the BBS List\r\n",user_name,bbs.name); - if(notify_user && notify_user!=user_number) - putsmsg(notify_user,str); - if(stricmp(bbs.user,user_name)) { - i=usernumber(bbs.user); - if(i && i!=(int)user_number) putsmsg(i,str); } - break; } } - if(!found) - bprintf("\r\n\r\n\1m%s\1c not found.",name); + sprintf(str, "\1n\1hSBL: \1y%s \1mverified \1c%s\1m " + "in the BBS List\r\n", user_name, bbs.name); + if (notify_user && notify_user != user_number) + putsmsg(notify_user, str); + if (stricmp(bbs.user, user_name)) { + i = usernumber(bbs.user); + if (i && i != (int)user_number) + putsmsg(i, str); + } + break; + } + } + if (!found) + bprintf("\r\n\r\n\1m%s\1c not found.", name); CRLF; CRLF; pause(); break; - case 'U': /* Update an entry */ + case 'U': /* Update an entry */ cls(); - if((uint)user_level<update_ml) { + if ((uint) user_level < update_ml) { bprintf("\1h\1rYou have insufficient access.\r\n\r\n"); pause(); - break; } + break; + } bprintf("\1y\1hUpdate which system: "); - if(!getstr(name,25,K_LINE|K_UPPER)) + if (!getstr(name, 25, K_LINE | K_UPPER)) break; bputs("\1n\1h\r\nSearching..."); - fseek(stream,0L,SEEK_SET); - found=0; + fseek(stream, 0L, SEEK_SET); + found = 0; dots(0); - while(!feof(stream) && !aborted) { + while (!feof(stream) && !aborted) { dots(1); - l=ftell(stream); - if(!fread(&bbs,sizeof(bbs_t),1,stream)) + l = ftell(stream); + if (!fread(&bbs, sizeof(bbs_t), 1, stream)) + break; + if (!stricmp(bbs.name, name) || partname(bbs.name, name)) { + found = 1; break; - if(!stricmp(bbs.name,name) || partname(bbs.name,name)) { - found=1; - break; } } - if(found) { - for(i=0;i<bbs.total_sysops && i<MAX_SYSOPS;i++) - if(!bbs.sysop[i][0] || !stricmp(bbs.sysop[i],user_name)) + } + } + if (found) { + for (i = 0; i < bbs.total_sysops && i < MAX_SYSOPS; i++) + if (!bbs.sysop[i][0] || !stricmp(bbs.sysop[i], user_name)) break; - if(SYSOP || !stricmp(bbs.user,user_name) - || i<bbs.total_sysops) { + if (SYSOP || !stricmp(bbs.user, user_name) + || i < bbs.total_sysops) { CRLF; CRLF; - if(get_bbs_info(&bbs)) { - bbs.misc&=~FROM_SMB; - bbs.updated=time(NULL); - sprintf(bbs.userupdated,"%.25s",user_name); - fseek(stream,l,SEEK_SET); - fwrite(&bbs,sizeof(bbs_t),1,stream); + if (get_bbs_info(&bbs)) { + bbs.misc &= ~FROM_SMB; + bbs.updated = time(NULL); + sprintf(bbs.userupdated, "%.25s", user_name); + fseek(stream, l, SEEK_SET); + fwrite(&bbs, sizeof(bbs_t), 1, stream); fflush(stream); - bprintf("\r\n\1h\1m%s\1c updated.",bbs.name); - if(notify_user && notify_user!=user_number) { - sprintf(str,"\1n\1hSBL: \1y%s \1mupdated \1c%s\1m " - "in the BBS List\r\n",user_name,bbs.name); - putsmsg(notify_user,str); } } } + bprintf("\r\n\1h\1m%s\1c updated.", bbs.name); + if (notify_user && notify_user != user_number) { + sprintf(str, "\1n\1hSBL: \1y%s \1mupdated \1c%s\1m " + "in the BBS List\r\n", user_name, bbs.name); + putsmsg(notify_user, str); + } + } + } else bprintf("\r\n\r\n\1h\1rYou did not create \1m%s\1n." - ,bbs.name); } + ,bbs.name); + } else - bprintf("\r\n\r\n\1h\1m%s\1c not found.",name); + bprintf("\r\n\r\n\1h\1m%s\1c not found.", name); CRLF; CRLF; pause(); break; case 'Q': - return(0); } } - return(-1); + return (0); + } + } + return (-1); } /* End of SBL.C */ -- GitLab