Annotation of sbbs/sbbs2/uti/utilstrd.c, revision 1.1

1.1     ! root        1: /* UTILSTRD.C */
        !             2: 
        !             3: /* Developed 1990-1997 by Rob Swindell; PO Box 501, Yorba Linda, CA 92885 */
        !             4: 
        !             5: #include "sbbs.h"
        !             6: #include "uti.h"
        !             7: 
        !             8: #define READ   1
        !             9: #define WRITE  2
        !            10: 
        !            11: int main(int argc, char **argv)
        !            12: {
        !            13:        char    *p,str[256],name[256],mode=0;
        !            14:        int     i,file;
        !            15:        uint    usernumber;
        !            16:        time_t  ptr;
        !            17:        FILE    *stream;
        !            18: 
        !            19: PREPSCREEN;
        !            20: 
        !            21: printf("Synchronet UTILSTRD v%s\n",VER);
        !            22: 
        !            23: if(argc<4)
        !            24:        exit(1);
        !            25: 
        !            26: if(!stricmp(argv[1],"READ"))
        !            27:     mode=READ;
        !            28: else if(!stricmp(argv[1],"WRITE"))
        !            29:     mode=WRITE;
        !            30: if(!mode)
        !            31:     exit(1);
        !            32: 
        !            33: uti_init("UTILSTRD",argc,argv);
        !            34: 
        !            35: if(mode==READ) {
        !            36:        if((file=nopen(argv[2],O_CREAT|O_TRUNC|O_WRONLY))==-1)
        !            37:                exit(2); }
        !            38: else {
        !            39:        if((file=nopen(argv[2],O_RDONLY))==-1)
        !            40:                exit(2); }
        !            41: 
        !            42: if((stream=fdopen(file,"wb"))==NULL)
        !            43:        exit(2);
        !            44: 
        !            45: 
        !            46: strcpy(name,argv[3]);          /* build the user name */
        !            47: for(i=4;i<argc;i++) {
        !            48:        strcat(name," ");
        !            49:        strcat(name,argv[i]); }
        !            50: 
        !            51: sprintf(str,"%sUSER\\NAME.DAT",data_dir);
        !            52: if((file=nopen(str,O_RDONLY))==-1)
        !            53:        exit(8);
        !            54: 
        !            55: usernumber=1;
        !            56: while(!eof(file)) {
        !            57:        read(file,str,LEN_ALIAS+2);
        !            58:        str[25]=0;
        !            59:        p=strchr(str,3);
        !            60:        if(p) *p=0;
        !            61:        if(!stricmp(str,name))
        !            62:                break;
        !            63:        usernumber++; }
        !            64: if(stricmp(str,name)) {
        !            65:        printf("Username '%s' not found.\n",name);
        !            66:        exit(9); }
        !            67: close(file);
        !            68: 
        !            69: sprintf(str,"%sUSER\\PTRS\\%4.4u.IXB",data_dir,usernumber);
        !            70: if((file=nopen(str,mode==READ ? O_RDONLY : O_WRONLY|O_CREAT))==-1)
        !            71:        exit(10);
        !            72: for(i=0;i<total_subs;i++) {
        !            73:        lseek(file,((long)sub[i]->ptridx)*10L,SEEK_SET);
        !            74:        if(mode==READ) {
        !            75:                read(file,&ptr,4);
        !            76:                fprintf(stream,"%lu\r\n",ptr); }
        !            77:        else {
        !            78:                fgets(str,81,stream);
        !            79:                ptr=atol(str);
        !            80:                write(file,&ptr,4); } }
        !            81: close(file);
        !            82: printf("\nDone.\n");
        !            83: bail(0);
        !            84: return(0);
        !            85: }
        !            86: 

unix.superglobalmegacorp.com

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