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

1.1     ! root        1: /* GENETEXT.C */
        !             2: 
        !             3: /* Developed 1990-1997 by Rob Swindell; PO Box 501, Yorba Linda, CA 92885 */
        !             4: 
        !             5: /* Creates the file ETEXT.C which has the encrypted text strings for use in */
        !             6: /* Synchronet */
        !             7: 
        !             8: #include <stdio.h>
        !             9: 
        !            10: void cvtusc(char *str)
        !            11: {
        !            12:     int i;
        !            13: 
        !            14: for(i=0;str[i];i++)
        !            15:        if(str[i]=='_')
        !            16:                str[i]=' ';
        !            17: }
        !            18: 
        !            19: void main()
        !            20: {
        !            21:        unsigned char str[129],bits,len;
        !            22:        unsigned int i,j;
        !            23:     unsigned long l,m;
        !            24:        FILE *in,*cout,*hout;
        !            25: 
        !            26: if((in=fopen("ETEXT.DAT","rb"))==NULL) {
        !            27:        printf("can't open ETEXT.DAT\n");
        !            28:        return; }
        !            29: 
        !            30: if((cout=fopen("ETEXT.C","wb"))==NULL) {
        !            31:        printf("can't create ETEXT.C\n");
        !            32:        return; }
        !            33: 
        !            34: if((hout=fopen("ETEXT.H","wb"))==NULL) {
        !            35:        printf("can't create ETEXT.H\n");
        !            36:     return; }
        !            37: 
        !            38: fprintf(cout,"/* ETEXT.C */\r\n\r\n#include \"etext.h\"\r\n\r\n");
        !            39: fprintf(hout,"/* ETEXT.H */\r\n\r\n");
        !            40: while(!feof(in)) {
        !            41:        if(!fgets(str,127,in))
        !            42:                break;
        !            43:        str[strlen(str)-3]=0;   /* chop off :crlf */
        !            44:        if(!str[0])
        !            45:                break;
        !            46:        fprintf(hout,"extern unsigned long %s[];\r\n",str);
        !            47:        fprintf(cout,"unsigned long %s[]={ ",str);
        !            48:        if(!fgets(str,127,in))
        !            49:                break;
        !            50:        str[strlen(str)-2]=0;   /* chop off crlf */
        !            51:        if(!str[0])
        !            52:         break;
        !            53:        cvtusc(str);
        !            54:        len=strlen(str);
        !            55:        l=len^0x49;
        !            56:        bits=7;
        !            57:        for(i=0,j=1;i<len;i++) {
        !            58:                m=(unsigned long)(str[i]^(i^0x2c));
        !            59:                l|=(m<<bits);
        !            60:                bits+=7;
        !            61:                if(bits>=32) {
        !            62:                        fprintf(cout,"%luUL,",l);
        !            63:                        j++;
        !            64:                        l=0UL;
        !            65:                        bits-=32;
        !            66:                        if(bits)
        !            67:                                l=(unsigned long)(str[i]^(i^0x2c))>>(7-bits); } }
        !            68:        fprintf(cout,"%luUL };\r\n",l); }
        !            69: }

unix.superglobalmegacorp.com

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