diff --git a/src/sbbs3/bat_xfer.cpp b/src/sbbs3/bat_xfer.cpp index 71d9c1865dbb1a8773737bee6636d508743a7a44..830fd4ea3518cff2711771a1289c40b6d3f032ca 100644 --- a/src/sbbs3/bat_xfer.cpp +++ b/src/sbbs3/bat_xfer.cpp @@ -8,7 +8,7 @@ * @format.tab-size 4 (Plain Text/Source Code File Header) * * @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) * * * - * Copyright 2009 Rob Swindell - http://www.synchro.net/copyright.html * + * Copyright 2011 Rob Swindell - http://www.synchro.net/copyright.html * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License * @@ -186,13 +186,13 @@ void sbbs_t::batchmenu() break; case 'C': if(batup_total) { - if(!noyes(text[ClearUploadQueueQ])) { + if(text[ClearUploadQueueQ][0]==0 || !noyes(text[ClearUploadQueueQ])) { batup_total=0; bputs(text[UploadQueueCleared]); } } if(batdn_total) { - if(!noyes(text[ClearDownloadQueueQ])) { + if(text[ClearDownloadQueueQ][0]==0 || !noyes(text[ClearDownloadQueueQ])) { for(i=0;i<batdn_total;i++) { f.dir=batdn_dir[i]; f.datoffset=batdn_offset[i]; diff --git a/src/sbbs3/chat.cpp b/src/sbbs3/chat.cpp index 2dbb520eca576e703a3301c3f0e6ef7da1c5cdef..d16c17b18fb07f855ee59db6e6464948ff4b438c 100644 --- a/src/sbbs3/chat.cpp +++ b/src/sbbs3/chat.cpp @@ -658,8 +658,8 @@ void sbbs_t::chatsection() no_rip_menu=1; if(sysop_page()) break; - if(cfg.total_gurus && chk_ar(cfg.guru[0]->ar,&useron,&client)) { - sprintf(str,text[ChatWithGuruInsteadQ],cfg.guru[0]->name); + if(cfg.total_gurus && chk_ar(cfg.guru[0]->ar,&useron,&client) && text[ChatWithGuruInsteadQ][0]) { + SAFEPRINTF(str,text[ChatWithGuruInsteadQ],cfg.guru[0]->name); if(!yesno(str)) break; } diff --git a/src/sbbs3/download.cpp b/src/sbbs3/download.cpp index e4e64b3771a3531ff5f5a66c44644a04694bdfa0..5d3e3c3e3d6162bb49c66df465ef13dff5af2517 100644 --- a/src/sbbs3/download.cpp +++ b/src/sbbs3/download.cpp @@ -8,7 +8,7 @@ * @format.tab-size 4 (Plain Text/Source Code File Header) * * @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) * * * - * Copyright 2010 Rob Swindell - http://www.synchro.net/copyright.html * + * Copyright 2011 Rob Swindell - http://www.synchro.net/copyright.html * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License * @@ -206,11 +206,13 @@ int sbbs_t::protocol(prot_t* prot, enum XFER_TYPE type sprintf(protlog,"%sPROTOCOL.LOG",cfg.node_dir); remove(protlog); /* Deletes the protocol log */ if(useron.misc&AUTOHANG) - autohang=1; - else + autohang=true; + else if(text[HangUpAfterXferQ][0]) autohang=yesno(text[HangUpAfterXferQ]); + else + autohang=false; if(sys_status&SS_ABORT || !online) { /* if ctrl-c or hangup */ - autohang=0; + autohang=false; return(-1); } bputs(text[StartXferNow]); diff --git a/src/sbbs3/email.cpp b/src/sbbs3/email.cpp index 05d9206ed2e40899832ba356ce8ab3a10eeebea1..bf4e995460d9171d9970dd48a9c0e68b1829df7d 100644 --- a/src/sbbs3/email.cpp +++ b/src/sbbs3/email.cpp @@ -8,7 +8,7 @@ * @format.tab-size 4 (Plain Text/Source Code File Header) * * @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) * * * - * Copyright 2010 Rob Swindell - http://www.synchro.net/copyright.html * + * Copyright 2011 Rob Swindell - http://www.synchro.net/copyright.html * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License * @@ -92,7 +92,7 @@ bool sbbs_t::email(int usernumber, const char *top, const char *subj, long mode) if(l&NETMAIL && cfg.sys_misc&SM_FWDTONET) { getuserrec(&cfg,usernumber,U_NETMAIL,LEN_NETMAIL,str); bprintf(text[UserNetMail],str); - if(yesno(text[ForwardMailQ])) /* Forward to netmail address */ + if(text[ForwardMailQ][0]==0 || yesno(text[ForwardMailQ])) /* Forward to netmail address */ return(netmail(str,subj,mode)); } bprintf(text[Emailing],username(&cfg,usernumber,tmp),usernumber); diff --git a/src/sbbs3/execfile.cpp b/src/sbbs3/execfile.cpp index 921c8f68893807bf4f2f7290c8abf7c7ea7e6b9c..dc5774211b6ac492236d73e9234520b4ce0d71b9 100644 --- a/src/sbbs3/execfile.cpp +++ b/src/sbbs3/execfile.cpp @@ -8,7 +8,7 @@ * @format.tab-size 4 (Plain Text/Source Code File Header) * * @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) * * * - * Copyright 2009 Rob Swindell - http://www.synchro.net/copyright.html * + * Copyright 2011 Rob Swindell - http://www.synchro.net/copyright.html * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License * @@ -353,7 +353,7 @@ int sbbs_t::exec_file(csi_t *csi) csi->logic=LOGIC_TRUE; return(0); case CS_FILE_DOWNLOAD_BATCH: - if(batdn_total && yesno(text[DownloadBatchQ])) { + if(batdn_total && (text[DownloadBatchQ][0]==0 || yesno(text[DownloadBatchQ]))) { start_batch_download(); csi->logic=LOGIC_TRUE; } diff --git a/src/sbbs3/execfunc.cpp b/src/sbbs3/execfunc.cpp index 0961a61404d21c49d7469b9050464eb8cba88769..1ae2b1ece5d77a334f01648062abf0aae0feddaa 100644 --- a/src/sbbs3/execfunc.cpp +++ b/src/sbbs3/execfunc.cpp @@ -110,7 +110,7 @@ int sbbs_t::exec_function(csi_t *csi) xtrn_sec(); return(0); case CS_LOGOFF: - if(!noyes(text[LogOffQ])) { + if(text[LogOffQ][0]==0 || !noyes(text[LogOffQ])) { if(cfg.logoff_mod[0]) exec_bin(cfg.logoff_mod,csi); user_event(EVENT_LOGOFF); @@ -276,7 +276,7 @@ int sbbs_t::exec_function(csi_t *csi) if(fexist(str)) { bputs(text[ErrorLogHdr]); printfile(str,0); - if(!noyes(text[DeleteErrorLogQ])) + if(text[DeleteErrorLogQ][0] && !noyes(text[DeleteErrorLogQ])) remove(str); } else @@ -287,7 +287,7 @@ int sbbs_t::exec_function(csi_t *csi) break; } if(i<=cfg.sys_nodes || criterrs) { - if(!noyes(text[ClearErrCounter])) { + if(text[ClearErrCounter][0]==0 || !noyes(text[ClearErrCounter])) { for(i=1;i<=cfg.sys_nodes;i++) { if(getnodedat(i,&node,true)==0) { node.errors=0; @@ -322,7 +322,7 @@ int sbbs_t::exec_function(csi_t *csi) if(fexist(str)) { printfile(str,0); CRLF; - if(!noyes(text[DeleteGuruLogQ])) + if(text[DeleteGuruLogQ][0] && !noyes(text[DeleteGuruLogQ])) remove(str); } return(0); diff --git a/src/sbbs3/logon.cpp b/src/sbbs3/logon.cpp index 3758711c0c1627bdcfb7813ce829a4234c8bb36b..1030901a1bd7f5879375a784998c157c039d9159 100644 --- a/src/sbbs3/logon.cpp +++ b/src/sbbs3/logon.cpp @@ -79,12 +79,12 @@ bool sbbs_t::logon() useron.rows=0; useron.misc&=~(ANSI|RIP|WIP|NO_EXASCII|COLOR|HTML); useron.misc|=autoterm; - if(!(useron.misc&ANSI) && yesno(text[AnsiTerminalQ])) + if(!(useron.misc&ANSI) && text[AnsiTerminalQ][0] && yesno(text[AnsiTerminalQ])) useron.misc|=ANSI; if(useron.misc&(RIP|WIP|HTML) - || (useron.misc&ANSI && yesno(text[ColorTerminalQ]))) + || (useron.misc&ANSI && text[ColorTerminalQ][0] && yesno(text[ColorTerminalQ]))) useron.misc|=COLOR; - if(!yesno(text[ExAsciiTerminalQ])) + if(text[ExAsciiTerminalQ][0] && !yesno(text[ExAsciiTerminalQ])) useron.misc|=NO_EXASCII; for(i=0;i<cfg.total_xedits;i++) if(!stricmp(cfg.xedit[i]->code,cfg.new_xedit) @@ -344,7 +344,10 @@ bool sbbs_t::logon() break; } if(cfg.uq&UQ_PHONE && !useron.phone[0]) { - i=yesno(text[CallingFromNorthAmericaQ]); + if(text[CallingFromNorthAmericaQ][0]) + i=yesno(text[CallingFromNorthAmericaQ]); + else + i=0; while(online) { bputs(text[EnterYourPhoneNumber]); if(i) { @@ -514,13 +517,13 @@ bool sbbs_t::logon() sys_status&=~SS_PAUSEON; /* Turn off the pause override flag */ if(online==ON_REMOTE) rioctl(IOSM|ABORT); /* Turn abort ability on */ - if(mailw) { + if(text[ReadYourMailNowQ][0] && mailw) { if(yesno(text[ReadYourMailNowQ])) readmail(useron.number,MAIL_YOUR); } - if(usrgrps && useron.misc&ASK_NSCAN && yesno(text[NScanAllGrpsQ])) + if(usrgrps && useron.misc&ASK_NSCAN && text[NScanAllGrpsQ][0] && yesno(text[NScanAllGrpsQ])) scanallsubs(SCAN_NEW); - if(usrgrps && useron.misc&ASK_SSCAN && yesno(text[SScanAllGrpsQ])) + if(usrgrps && useron.misc&ASK_SSCAN && text[SScanAllGrpsQ][0] && yesno(text[SScanAllGrpsQ])) scanallsubs(SCAN_TOYOU); return(true); } diff --git a/src/sbbs3/newuser.cpp b/src/sbbs3/newuser.cpp index 633c21c2d4186455ca8da48398c0c772a09876a5..12210116fcaf4e3382eec9fdafe4d8c70868e298 100644 --- a/src/sbbs3/newuser.cpp +++ b/src/sbbs3/newuser.cpp @@ -160,14 +160,14 @@ BOOL sbbs_t::newuser() while(online) { - if(autoterm || yesno(text[AutoTerminalQ])) { + if(autoterm || (text[AutoTerminalQ][0] && yesno(text[AutoTerminalQ]))) { useron.misc|=AUTOTERM; useron.misc|=autoterm; } else useron.misc&=~AUTOTERM; if(!(useron.misc&AUTOTERM)) { - if(yesno(text[AnsiTerminalQ])) + if(text[AnsiTerminalQ][0] && yesno(text[AnsiTerminalQ])) useron.misc|=ANSI; else useron.misc&=~ANSI; @@ -175,14 +175,14 @@ BOOL sbbs_t::newuser() if(useron.misc&ANSI) { useron.rows=0; /* Auto-rows */ - if(useron.misc&(RIP|WIP|HTML) || yesno(text[ColorTerminalQ])) + if(useron.misc&(RIP|WIP|HTML) || text[ColorTerminalQ][0]==0 || yesno(text[ColorTerminalQ])) useron.misc|=COLOR; else useron.misc&=~COLOR; } else useron.rows=24; - if(!yesno(text[ExAsciiTerminalQ])) + if(text[ExAsciiTerminalQ][0] && !yesno(text[ExAsciiTerminalQ])) useron.misc|=NO_EXASCII; else useron.misc&=~NO_EXASCII; @@ -204,7 +204,7 @@ BOOL sbbs_t::newuser() if (!check_name(&cfg,useron.alias) || (!(cfg.uq&UQ_ALIASES) && !strchr(useron.alias,' '))) { bputs(text[YouCantUseThatName]); - if(!yesno(text[ContinueQ])) + if(text[ContinueQ][0] && !yesno(text[ContinueQ])) return(FALSE); continue; } @@ -222,7 +222,7 @@ BOOL sbbs_t::newuser() bputs(text[YouCantUseThatName]); else break; - if(!yesno(text[ContinueQ])) + if(text[ContinueQ][0] && !yesno(text[ContinueQ])) return(FALSE); } } @@ -246,7 +246,7 @@ BOOL sbbs_t::newuser() bputs(text[YouCantUseThatName]); else break; - if(!yesno(text[ContinueQ])) + if(text[ContinueQ][0] && !yesno(text[ContinueQ])) return(FALSE); } if(!online) return(FALSE); @@ -274,8 +274,11 @@ BOOL sbbs_t::newuser() } if(!online) return(FALSE); if(cfg.uq&UQ_PHONE) { - usa=yesno(text[CallingFromNorthAmericaQ]); - while(online) { + if(text[CallingFromNorthAmericaQ][0]) + usa=yesno(text[CallingFromNorthAmericaQ]); + else + usa=false; + while(online && text[EnterYourPhoneNumber][0]) { bputs(text[EnterYourPhoneNumber]); if(!usa) { if(getstr(useron.phone,LEN_PHONE @@ -309,11 +312,11 @@ BOOL sbbs_t::newuser() && !trashcan(useron.netmail,"email")) break; } - if(useron.netmail[0] && cfg.sys_misc&SM_FWDTONET && yesno(text[ForwardMailQ])) + if(useron.netmail[0] && cfg.sys_misc&SM_FWDTONET && text[ForwardMailQ][0] && yesno(text[ForwardMailQ])) useron.misc|=NETMAIL; else useron.misc&=~NETMAIL; - if(yesno(text[UserInfoCorrectQ])) + if(text[UserInfoCorrectQ][0]==0 || yesno(text[UserInfoCorrectQ])) break; } if(!online) return(FALSE); @@ -345,7 +348,7 @@ BOOL sbbs_t::newuser() if(i<cfg.total_xedits) useron.xedit=i+1; - if(cfg.total_xedits && cfg.uq&UQ_XEDIT) { + if(cfg.total_xedits && cfg.uq&UQ_XEDIT && text[UseExternalEditorQ][0]) { if(yesno(text[UseExternalEditorQ])) { for(i=0;i<cfg.total_xedits;i++) uselect(1,i,text[ExternalEditorHeading],cfg.xedit[i]->name,cfg.xedit[i]->ar); @@ -377,7 +380,7 @@ BOOL sbbs_t::newuser() bprintf(text[YourPasswordIs],useron.pass); - if(cfg.sys_misc&SM_PWEDIT && yesno(text[NewPasswordQ])) + if(cfg.sys_misc&SM_PWEDIT && text[NewPasswordQ][0] && yesno(text[NewPasswordQ])) while(online) { bputs(text[NewPassword]); getstr(str,LEN_PASS,K_UPPER|K_LINE); diff --git a/src/sbbs3/readmail.cpp b/src/sbbs3/readmail.cpp index c10f64c2664be85a584f4040062216a992aee51e..582018a4eabd0a9dc2003f1b1f9f3551f2f64654 100644 --- a/src/sbbs3/readmail.cpp +++ b/src/sbbs3/readmail.cpp @@ -8,7 +8,7 @@ * @format.tab-size 4 (Plain Text/Source Code File Header) * * @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) * * * - * Copyright 2010 Rob Swindell - http://www.synchro.net/copyright.html * + * Copyright 2011 Rob Swindell - http://www.synchro.net/copyright.html * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License * @@ -251,7 +251,7 @@ void sbbs_t::readmail(uint usernumber, int which) else { sprintf(str3,text[DownloadAttachedFileQ] ,tp,ultoac(length,tmp)); - if(length>0L && yesno(str3)) { + if(length>0L && text[DownloadAttachedFileQ][0] && yesno(str3)) { { /* Remote User */ xfer_prot_menu(XFER_DOWNLOAD); mnemonics(text[ProtocolOrQuit]); diff --git a/src/sbbs3/readmsgs.cpp b/src/sbbs3/readmsgs.cpp index 47317f6edfe9d04e5f66554b7a4f41dd1ef43547..743f6a447b7d596897cdcb35e9386d5183d15950 100644 --- a/src/sbbs3/readmsgs.cpp +++ b/src/sbbs3/readmsgs.cpp @@ -350,6 +350,7 @@ int sbbs_t::scanposts(uint subnum, long mode, const char *find) char find_buf[128]; char tmp[128]; int i; + int quit=0; uint usub,ugrp,reads=0; uint lp=0; long org_mode=mode; @@ -687,13 +688,8 @@ int sbbs_t::scanposts(uint subnum, long mode, const char *find) l=getkeys(str,smb.msgs); if(l&0x80000000L) { if((long)l==-1) { /* ctrl-c */ - if(msg.total_hfields) - smb_freemsgmem(&msg); - if(post) - free(post); - smb_close(&smb); - smb_stack(&smb,SMB_STACK_POP); - return(1); + quit=1; + break; } smb.curmsg=(l&~0x80000000L)-1; do_find=false; @@ -723,7 +719,7 @@ int sbbs_t::scanposts(uint subnum, long mode, const char *find) domsg=1; break; case 'B': /* Skip sub-board */ - if(mode&SCAN_NEW && !noyes(text[RemoveFromNewScanQ])) + if(mode&SCAN_NEW && text[RemoveFromNewScanQ][0] && !noyes(text[RemoveFromNewScanQ])) subscan[subnum].cfg&=~SUB_CFG_NSCAN; if(msg.total_hfields) smb_freemsgmem(&msg); @@ -829,7 +825,7 @@ int sbbs_t::scanposts(uint subnum, long mode, const char *find) bputs(text[SearchStringPrompt]); if(!getstr(find_buf,40,K_LINE|K_UPPER|K_EDIT|K_AUTODEL)) break; - if(yesno(text[DisplaySubjectsOnlyQ])) + if(text[DisplaySubjectsOnlyQ][0] && yesno(text[DisplaySubjectsOnlyQ])) searchposts(subnum,post,(long)i,smb.msgs,find_buf); else { smb.curmsg=i; @@ -909,13 +905,9 @@ int sbbs_t::scanposts(uint subnum, long mode, const char *find) } break; case 'Q': /* Quit */ - if(msg.total_hfields) - smb_freemsgmem(&msg); - if(post) - free(post); - smb_close(&smb); - smb_stack(&smb,SMB_STACK_POP); - return(1); + quit=1; + done=1; + break; case 'T': /* List titles of next ten messages */ domsg=0; if(!smb.msgs) @@ -1153,17 +1145,21 @@ int sbbs_t::scanposts(uint subnum, long mode, const char *find) smb_freemsgmem(&msg); if(post) free(post); - if(!(org_mode&(SCAN_CONST|SCAN_TOYOU|SCAN_FIND)) && !(cfg.sub[subnum]->misc&SUB_PONLY) - && reads && chk_ar(cfg.sub[subnum]->post_ar,&useron,&client) + if(!quit + && !(org_mode&(SCAN_CONST|SCAN_TOYOU|SCAN_FIND)) && !(cfg.sub[subnum]->misc&SUB_PONLY) + && reads && chk_ar(cfg.sub[subnum]->post_ar,&useron,&client) && text[Post][0] && !(useron.rest&FLAG('P'))) { sprintf(str,text[Post],cfg.grp[cfg.sub[subnum]->grp]->sname ,cfg.sub[subnum]->lname); if(!noyes(str)) postmsg(subnum,0,0); } + if(!(org_mode&(SCAN_CONST|SCAN_TOYOU|SCAN_FIND)) + && !(subscan[subnum].cfg&SUB_CFG_NSCAN) && text[AddSubToNewScanQ][0] && yesno(text[AddSubToNewScanQ])) + subscan[subnum].cfg|=SUB_CFG_NSCAN; smb_close(&smb); smb_stack(&smb,SMB_STACK_POP); - return(0); + return(quit); } /****************************************************************************/ diff --git a/src/sbbs3/scandirs.cpp b/src/sbbs3/scandirs.cpp index 2b2f68123f2c84fa968178c5e4cbd4b98a2d5a35..49396779f172b43b534cc0704431e306e6df3919 100644 --- a/src/sbbs3/scandirs.cpp +++ b/src/sbbs3/scandirs.cpp @@ -8,7 +8,7 @@ * @format.tab-size 4 (Plain Text/Source Code File Header) * * @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) * * * - * Copyright 2009 Rob Swindell - http://www.synchro.net/copyright.html * + * Copyright 2011 Rob Swindell - http://www.synchro.net/copyright.html * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License * @@ -65,7 +65,7 @@ void sbbs_t::scandirs(long mode) padfname(tmp,str); } else if(mode==FL_FINDDESC) { /* Find text in description */ - if(!noyes(text[SearchExtendedQ])) + if(text[SearchExtendedQ][0] && !noyes(text[SearchExtendedQ])) mode=FL_EXFIND; if(sys_status&SS_ABORT) { lncntr=0; @@ -136,7 +136,7 @@ void sbbs_t::scanalldirs(long mode) padfname(tmp,str); } else if(mode==FL_FINDDESC) { /* Find text in description */ - if(!noyes(text[SearchExtendedQ])) + if(text[SearchExtendedQ][0] && !noyes(text[SearchExtendedQ])) mode=FL_EXFIND; if(sys_status&SS_ABORT) { lncntr=0; diff --git a/src/sbbs3/scansubs.cpp b/src/sbbs3/scansubs.cpp index 566cf828aec33b7223e512e73690613486a75269..17599439ce78b7a817e1d8f8e6774168aca29f55 100644 --- a/src/sbbs3/scansubs.cpp +++ b/src/sbbs3/scansubs.cpp @@ -8,7 +8,7 @@ * @format.tab-size 4 (Plain Text/Source Code File Header) * * @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) * * * - * Copyright 2009 Rob Swindell - http://www.synchro.net/copyright.html * + * Copyright 2011 Rob Swindell - http://www.synchro.net/copyright.html * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License * @@ -53,7 +53,7 @@ void sbbs_t::scansubs(long mode) return; if(ch!='A' && mode&(SCAN_FIND|SCAN_TOYOU)) { - if(yesno(text[DisplaySubjectsOnlyQ])) i=1; + if(text[DisplaySubjectsOnlyQ][0] && yesno(text[DisplaySubjectsOnlyQ])) i=1; if(mode&SCAN_FIND) { bputs(text[SearchStringPrompt]); if(!getstr(str,40,K_LINE|K_UPPER)) @@ -133,7 +133,10 @@ void sbbs_t::scanallsubs(long mode) ulong subs_scanned=0; if(/* action==NODE_MAIN && */ mode&(SCAN_FIND|SCAN_TOYOU)) { - i=yesno(text[DisplaySubjectsOnlyQ]); + if(text[DisplaySubjectsOnlyQ][0]) + i=yesno(text[DisplaySubjectsOnlyQ]); + else + i=0; if(mode&SCAN_FIND) { bputs(text[SearchStringPrompt]); if(!getstr(str,40,K_LINE|K_UPPER)) diff --git a/src/sbbs3/str.cpp b/src/sbbs3/str.cpp index f075b623d098b54ee2296544d403166d524a2336..fb020ce872628a775fefa54c0647e0f1e9299c99 100644 --- a/src/sbbs3/str.cpp +++ b/src/sbbs3/str.cpp @@ -8,7 +8,7 @@ * @format.tab-size 4 (Plain Text/Source Code File Header) * * @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) * * * - * Copyright 2010 Rob Swindell - http://www.synchro.net/copyright.html * + * Copyright 2011 Rob Swindell - http://www.synchro.net/copyright.html * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License * @@ -778,7 +778,7 @@ bool sbbs_t::chkpass(char *passwd, user_t* user, bool unique) /****************************************************************************/ void sbbs_t::subinfo(uint subnum) { - char str[256]; + char str[MAX_PATH+1]; bputs(text[SubInfoHdr]); bprintf(text[SubInfoLongName],cfg.sub[subnum]->lname); @@ -791,7 +791,7 @@ void sbbs_t::subinfo(uint subnum) bprintf(text[SubInfoFidoNet] ,cfg.sub[subnum]->origline ,smb_faddrtoa(&cfg.sub[subnum]->faddr,str)); - sprintf(str,"%s%s.msg",cfg.sub[subnum]->data_dir,cfg.sub[subnum]->code); + SAFEPRINTF2(str,"%s%s.msg",cfg.sub[subnum]->data_dir,cfg.sub[subnum]->code); if(fexist(str) && yesno(text[SubInfoViewFileQ])) printfile(str,0); } @@ -801,7 +801,7 @@ void sbbs_t::subinfo(uint subnum) /****************************************************************************/ void sbbs_t::dirinfo(uint dirnum) { - char str[256]; + char str[MAX_PATH+1]; bputs(text[DirInfoHdr]); bprintf(text[DirInfoLongName],cfg.dir[dirnum]->lname); @@ -809,7 +809,7 @@ void sbbs_t::dirinfo(uint dirnum) if(cfg.dir[dirnum]->exts[0]) bprintf(text[DirInfoAllowedExts],cfg.dir[dirnum]->exts); bprintf(text[DirInfoMaxFiles],cfg.dir[dirnum]->maxfiles); - sprintf(str,"%s%s.msg",cfg.dir[dirnum]->data_dir,cfg.dir[dirnum]->code); + SAFEPRINTF2(str,"%s%s.msg",cfg.dir[dirnum]->data_dir,cfg.dir[dirnum]->code); if(fexist(str) && yesno(text[DirInfoViewFileQ])) printfile(str,0); } @@ -855,22 +855,25 @@ void sbbs_t::sys_info() bprintf(text[SiSysFaddr],smb_faddrtoa(&cfg.faddr[i],tmp)); if(cfg.sys_psname[0]) /* PostLink/PCRelay */ bprintf(text[SiSysPsite],cfg.sys_psname,cfg.sys_psnum); - bprintf(text[SiSysLocation],cfg.sys_location); - bprintf(text[SiSysop],cfg.sys_op); + if(cfg.sys_location[0]) + bprintf(text[SiSysLocation],cfg.sys_location); + if(cfg.sys_op[0]) + bprintf(text[SiSysop],cfg.sys_op); bprintf(text[SiSysNodes],cfg.sys_nodes); // bprintf(text[SiNodeNumberName],cfg.node_num,cfg.node_name); - bprintf(text[SiNodePhone],cfg.node_phone); + if(cfg.node_phone[0]) + bprintf(text[SiNodePhone],cfg.node_phone); bprintf(text[SiTotalLogons],ultoac(stats.logons,tmp)); bprintf(text[SiLogonsToday],ultoac(stats.ltoday,tmp)); bprintf(text[SiTotalTime],ultoac(stats.timeon,tmp)); bprintf(text[SiTimeToday],ultoac(stats.ttoday,tmp)); ver(); - if(yesno(text[ViewSysInfoFileQ])) { + if(text[ViewSysInfoFileQ][0] && yesno(text[ViewSysInfoFileQ])) { CLS; sprintf(tmp,"%ssystem.msg", cfg.text_dir); printfile(tmp,0); } - if(yesno(text[ViewLogonMsgQ])) { + if(text[ViewLogonMsgQ][0] && yesno(text[ViewLogonMsgQ])) { CLS; menu("logon"); } diff --git a/src/sbbs3/writemsg.cpp b/src/sbbs3/writemsg.cpp index d348a795d2567753ed81b76d0fe851f49e07d784..0419eb1ace0d7308cfc77b7938a157dbc1a7eb3c 100644 --- a/src/sbbs3/writemsg.cpp +++ b/src/sbbs3/writemsg.cpp @@ -8,7 +8,7 @@ * @format.tab-size 4 (Plain Text/Source Code File Header) * * @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) * * * - * Copyright 2010 Rob Swindell - http://www.synchro.net/copyright.html * + * Copyright 2011 Rob Swindell - http://www.synchro.net/copyright.html * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License * @@ -891,7 +891,7 @@ ulong sbbs_t::msgeditor(char *buf, const char *top, char *title) else if(toupper(strin[1])=='L') { /* list message */ if(line==lines) free(str[line]); - if(lines) + if(lines && text[WithLineNumbersQ][0]) i=!noyes(text[WithLineNumbersQ]); else i=0;