Annotation of sbbs/sbbs2/xfer_sec.c, revision 1.1

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: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.