|
|
1.1 ! root 1: #line 1 "XFER_SEC.C" ! 2: ! 3: /* Developed 1990-1997 by Rob Swindell; PO Box 501, Yorba Linda, CA 92885 */ ! 4: ! 5: /*****************************************************/ ! 6: /* This file contains the single function xfer_sec() */ ! 7: /*****************************************************/ ! 8: ! 9: #include "sbbs.h" ! 10: ! 11: void xfer_cfg_cmd(); ! 12: void xfer_ext_cmd(char ch); ! 13: void xfer_str_cmd(char *str); ! 14: ! 15: void scandirs(char mode); ! 16: ! 17: extern char no_rip_menu; ! 18: ! 19: /****************************************************************************/ ! 20: /* Used to scan single or multiple directories. 'mode' is the scan type. */ ! 21: /****************************************************************************/ ! 22: void scandirs(char mode) ! 23: { ! 24: char ch,str[256]; ! 25: int s; ! 26: uint i,k; ! 27: ! 28: if(!usrlibs) return; ! 29: mnemonics(text[DirLibOrAll]); ! 30: ch=getkeys("DLA\r",0); ! 31: if(sys_status&SS_ABORT || ch==CR) { ! 32: lncntr=0; ! 33: return; } ! 34: if(ch!='A') { ! 35: if(mode&FL_ULTIME) { /* New file scan */ ! 36: bprintf(text[NScanHdr],timestr(&ns_time)); ! 37: str[0]=0; } ! 38: else if(mode==FL_NO_HDR) { /* Search for a string */ ! 39: if(!getfilespec(tmp)) ! 40: return; ! 41: padfname(tmp,str); } ! 42: else if(mode==FL_FINDDESC) { /* Find text in description */ ! 43: if(!noyes(text[SearchExtendedQ])) ! 44: mode=FL_EXFIND; ! 45: if(sys_status&SS_ABORT) { ! 46: lncntr=0; ! 47: return; } ! 48: bputs(text[SearchStringPrompt]); ! 49: if(!getstr(str,40,K_LINE|K_UPPER)) { ! 50: lncntr=0; ! 51: return; } } } ! 52: if(ch=='D') { ! 53: if((s=listfiles(usrdir[curlib][curdir[curlib]],str,0,mode))==-1) ! 54: return; ! 55: bputs("\r\1>"); ! 56: if(s>1) ! 57: bprintf(text[NFilesListed],s); ! 58: else if(!s && !(mode&FL_ULTIME)) ! 59: bputs(text[FileNotFound]); ! 60: return; } ! 61: if(ch=='L') { ! 62: k=0; ! 63: for(i=0;i<usrdirs[curlib] && !msgabort();i++) { ! 64: attr(LIGHTGRAY); ! 65: outchar('.'); ! 66: if(i && !(i%5)) ! 67: bputs("\b\b\b\b\b \b\b\b\b\b"); ! 68: if(mode&FL_ULTIME /* New-scan */ ! 69: && (lib[usrlib[curlib]]->offline_dir==usrdir[curlib][i] ! 70: || dir[usrdir[curlib][i]]->misc&DIR_NOSCAN)) ! 71: continue; ! 72: else if((s=listfiles(usrdir[curlib][i],str,0,mode))==-1) ! 73: return; ! 74: else k+=s; } ! 75: bputs("\r\1>"); ! 76: if(k>1) ! 77: bprintf(text[NFilesListed],k); ! 78: else if(!k && !(mode&FL_ULTIME)) ! 79: bputs(text[FileNotFound]); ! 80: return; } ! 81: ! 82: scanalldirs(mode); ! 83: } ! 84: ! 85: /****************************************************************************/ ! 86: /* Scan all directories in all libraries for files */ ! 87: /****************************************************************************/ ! 88: void scanalldirs(char mode) ! 89: { ! 90: char str[256]; ! 91: int s; ! 92: uint i,j,k,d; ! 93: ! 94: if(!usrlibs) return; ! 95: k=0; ! 96: if(mode&FL_ULTIME) { /* New file scan */ ! 97: bprintf(text[NScanHdr],timestr(&ns_time)); ! 98: str[0]=0; } ! 99: else if(mode==FL_NO_HDR) { /* Search for a string */ ! 100: if(!getfilespec(tmp)) ! 101: return; ! 102: padfname(tmp,str); } ! 103: else if(mode==FL_FINDDESC) { /* Find text in description */ ! 104: if(!noyes(text[SearchExtendedQ])) ! 105: mode=FL_EXFIND; ! 106: if(sys_status&SS_ABORT) { ! 107: lncntr=0; ! 108: return; } ! 109: bputs(text[SearchStringPrompt]); ! 110: if(!getstr(str,40,K_LINE|K_UPPER)) { ! 111: lncntr=0; ! 112: return; } } ! 113: for(i=d=0;i<usrlibs;i++) { ! 114: for(j=0;j<usrdirs[i] && !msgabort();j++,d++) { ! 115: attr(LIGHTGRAY); ! 116: outchar('.'); ! 117: if(d && !(d%5)) ! 118: bputs("\b\b\b\b\b \b\b\b\b\b"); ! 119: if(mode&FL_ULTIME /* New-scan */ ! 120: && (lib[usrlib[i]]->offline_dir==usrdir[i][j] ! 121: || dir[usrdir[i][j]]->misc&DIR_NOSCAN)) ! 122: continue; ! 123: else if((s=listfiles(usrdir[i][j],str,0,mode))==-1) ! 124: return; ! 125: else k+=s; } ! 126: if(j<usrdirs[i]) /* aborted */ ! 127: break; } ! 128: bputs("\r\1>"); ! 129: if(k>1) ! 130: bprintf(text[NFilesListed],k); ! 131: else if(!k && !(mode&FL_ULTIME)) ! 132: bputs(text[FileNotFound]); ! 133: } ! 134:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.