From 70329aa2f3033eb1a3b98d9484cb93790280c288 Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Mon, 17 Sep 2001 00:55:14 +0000 Subject: [PATCH] Calculates and displays number of sub-boards scanned for new messages. --- src/sbbs3/scansubs.cpp | 67 ++++++++++++++++++++++++++++-------------- 1 file changed, 45 insertions(+), 22 deletions(-) diff --git a/src/sbbs3/scansubs.cpp b/src/sbbs3/scansubs.cpp index 8acc334ff1..7053c7e956 100644 --- a/src/sbbs3/scansubs.cpp +++ b/src/sbbs3/scansubs.cpp @@ -45,6 +45,7 @@ void sbbs_t::scansubs(long mode) char ch,str[256]; char tmp[512]; uint i=0,found=0; + ulong subs_scanned=0; mnemonics(text[SubGroupOrAll]); ch=(char)getkeys("SGA\r",0); @@ -58,12 +59,15 @@ void sbbs_t::scansubs(long mode) if(!getstr(str,40,K_LINE|K_UPPER)) return; if(i) { /* if titles only */ - if(ch=='S') + if(ch=='S') { found=searchsub(usrsub[curgrp][cursub[curgrp]],str); - else if(ch=='G') - for(i=0;i<usrsubs[curgrp] && !msgabort();i++) + subs_scanned++; + } else if(ch=='G') + for(i=0;i<usrsubs[curgrp] && !msgabort();i++) { found=searchsub(usrsub[curgrp][i],str); - sprintf(tmp,"Searched messages for '%s'",str); + subs_scanned++; + } + sprintf(tmp,"Searched %lu sub-boards for '%s'",subs_scanned,str); logline(nulstr,tmp); if(!found) CRLF; @@ -82,22 +86,27 @@ void sbbs_t::scansubs(long mode) if(useron.misc&(RIP|WIP) && !(useron.misc&EXPERT)) { menu("msgscan"); } i=scanposts(usrsub[curgrp][cursub[curgrp]],mode,str); + subs_scanned++; bputs(text[MessageScan]); if(i) bputs(text[MessageScanAborted]); - else bputs(text[MessageScanComplete]); + else bprintf(text[MessageScanComplete],subs_scanned); return; } if(ch=='G') { if(useron.misc&(RIP|WIP) && !(useron.misc&EXPERT)) { menu("msgscan"); } - for(i=0;i<usrsubs[curgrp] && !msgabort();i++) + for(i=0;i<usrsubs[curgrp] && !msgabort();i++) { if(((mode&SCAN_NEW && (sub_cfg[usrsub[curgrp][i]]&SUB_CFG_NSCAN || cfg.sub[usrsub[curgrp][i]]->misc&SUB_FORCED)) || (mode&SCAN_TOYOU && sub_cfg[usrsub[curgrp][i]]&SUB_CFG_SSCAN) - || mode&SCAN_FIND) - && scanposts(usrsub[curgrp][i],mode,str)) break; + || mode&SCAN_FIND)) { + if(scanposts(usrsub[curgrp][i],mode,str)) + break; + subs_scanned++; + } + } bputs(text[MessageScan]); - if(i==usrsubs[curgrp]) bputs(text[MessageScanComplete]); + if(i==usrsubs[curgrp]) bprintf(text[MessageScanComplete],subs_scanned); else bputs(text[MessageScanAborted]); return; } @@ -112,6 +121,7 @@ void sbbs_t::scanallsubs(long mode) char str[256]; char tmp[512]; uint i,j,found=0; + ulong subs_scanned=0; if(/* action==NODE_MAIN && */ mode&(SCAN_FIND|SCAN_TOYOU)) { i=yesno(text[DisplayTitlesOnlyQ]); @@ -121,45 +131,58 @@ void sbbs_t::scanallsubs(long mode) return; if(i) { /* if titles only */ for(i=0;i<usrgrps;i++) { - for(j=0;j<usrsubs[i] && !msgabort();j++) + for(j=0;j<usrsubs[i] && !msgabort();j++) { found=searchsub(usrsub[i][j],str); + subs_scanned++; + } if(j<usrsubs[i]) - break; } + break; + } if(!found) CRLF; - sprintf(tmp,"Searched messages for '%s'",str); + sprintf(tmp,"Searched %lu sub-boards for '%s'",subs_scanned,str); logline(nulstr,tmp); return; } } else if(mode&SCAN_TOYOU && i) { for(i=0;i<usrgrps;i++) { - for(j=0;j<usrsubs[i] && !msgabort();j++) + for(j=0;j<usrsubs[i] && !msgabort();j++) found=searchsub_toyou(usrsub[i][j]); if(j<usrsubs[i]) - break; } + break; + } if(!found) CRLF; - return; } } + return; + } + } if(useron.misc&(RIP|WIP) && !(useron.misc&EXPERT)) { menu("msgscan"); } for(i=0;i<usrgrps;i++) { - for(j=0;j<usrsubs[i] && !msgabort();j++) + for(j=0;j<usrsubs[i] && !msgabort();j++) { if(((mode&SCAN_NEW && sub_cfg[usrsub[i][j]]&SUB_CFG_NSCAN) || cfg.sub[usrsub[i][j]]->misc&SUB_FORCED || mode&SCAN_FIND - || (mode&SCAN_TOYOU && sub_cfg[usrsub[i][j]]&SUB_CFG_SSCAN)) - && scanposts(usrsub[i][j],mode,str)) break; + || (mode&SCAN_TOYOU && sub_cfg[usrsub[i][j]]&SUB_CFG_SSCAN))) { + if(scanposts(usrsub[i][j],mode,str)) + break; + subs_scanned++; + } + } if(j<usrsubs[i]) - break; } + break; + } bputs(text[MessageScan]); if(i<usrgrps) { bputs(text[MessageScanAborted]); - return; } - bputs(text[MessageScanComplete]); + return; + } + bprintf(text[MessageScanComplete],subs_scanned); if(mode&SCAN_NEW && !(mode&(SCAN_BACK|SCAN_TOYOU)) && useron.misc&ANFSCAN && !(useron.rest&FLAG('T'))) { xfer_cmds++; - scanalldirs(FL_ULTIME); } + scanalldirs(FL_ULTIME); + } } void sbbs_t::new_scan_ptr_cfg() -- GitLab