Annotation of sbbs/sbbs2/smm/makemsg.c, revision 1.1.1.1

1.1       root        1: /* MAKEMSG.C */
                      2: 
                      3: /* Developed 1990-1997 by Rob Swindell; PO Box 501, Yorba Linda, CA 92885 */
                      4: 
                      5: #include <dos.h>
                      6: #include <stdio.h>
                      7: #include <time.h>
                      8: #include "gen_defs.h"
                      9: 
                     10: /****************************************************************************/
                     11: /* Converts a date string in format MM/DD/YY into unix time format                     */
                     12: /****************************************************************************/
                     13: time_t dstrtounix(char *str)
                     14: {
                     15:        struct date date;
                     16:        struct time curtime;
                     17: 
                     18: if(!strcmp(str,"00/00/00") || !str[0])
                     19:        return(NULL);
                     20: curtime.ti_hour=curtime.ti_min=curtime.ti_sec=0;
                     21: if(str[6]<'7')
                     22:        date.da_year=2000+((str[6]&0xf)*10)+(str[7]&0xf);
                     23: else
                     24:        date.da_year=1900+((str[6]&0xf)*10)+(str[7]&0xf);
                     25: date.da_mon=((str[0]&0xf)*10)+(str[1]&0xf);
                     26: date.da_day=((str[3]&0xf)*10)+(str[4]&0xf);
                     27: return(dostounix(&date,&curtime));
                     28: }
                     29: 
                     30: uchar cryptchar(uchar ch, ulong seed)
                     31: {
                     32: if(ch==1)
                     33:        return(0xfe);
                     34: if(ch<0x20 || ch&0x80) /* Ctrl chars and ex-ASCII are not xlated */
                     35:        return(ch);
                     36: return(ch^(seed&0x1f));
                     37: }
                     38: 
                     39: int main(int argc, char **argv)
                     40: {
                     41:        char str[256];
                     42:        FILE *in,*out;
                     43:        int i,j;
                     44:        long l;
                     45: 
                     46: if(argc<4) {
                     47:        printf("usage: makemsg infile outfile mm/dd/yy\n");
                     48:        exit(1); }
                     49: 
                     50: if((in=fopen(argv[1],"rb"))==NULL) {
                     51:        printf("error opening %s\n",argv[1]);
                     52:        exit(1); }
                     53: 
                     54: if((out=fopen(argv[2],"wb"))==NULL) {
                     55:        printf("error opening %s\n",argv[2]);
                     56:        exit(1); }
                     57: 
                     58: l=dstrtounix(argv[3]);
                     59: if(!l) {
                     60:        printf("Invalid date %s\n",argv[3]);
                     61:        exit(1); }
                     62: fprintf(out,"%lx\r\n",l^0x305F6C81UL);
                     63: i=ftell(out);
                     64: while(!feof(in)) {
                     65:        if(!fgets(str,128,in))
                     66:                break;
                     67:        for(j=0;str[j];j++,i++)
                     68:                fputc(cryptchar(str[j],l^(i&7)),out); }
                     69: return(0);
                     70: }

unix.superglobalmegacorp.com

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