Annotation of sbbs/sbbs2/uti/utilstrd.c, revision 1.1.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.