/* * from simtel20 and CICA format to: * Remote Access / Maximus / TubFile / Opus / QuickBbs / SuperBbs */ #if 0 1234567890123456789012345678901 [Simtel] 4DOSANN.ZIP B 6864 910819 4DOS runs on DOS 5.0 and Norton DOS info 1234567890123456789012345678901 [CICA] diskindx.txt 901031 Cumulative Index of the WRK Disks (below) diskroot.zip 920610 Windows Resource Kit 4/3/92 ----------> AD-FEBBS.ZIP Great Demo for Febbs made by OUNO-Soft. #endif #include #include #include #include #define CICA struct data { char filename[15]; long filesize; int year; int month; int day; char description[900]; }; int pastheader = 0; struct data line; void readline(void) { char buf[1000]; char workbuf[1000]; static char datebuf[5] = "12"; char *r; if (NULL == gets(buf)) exit(0); /* wait for header */ if (! pastheader) { #ifdef CICA if (0 == strlen(buf)) ++pastheader; #else if (strstr(buf, "================")) ++pastheader; #endif return; } line.filename[0] = 0; line.description[0] = 0; if (strlen(buf) == 0) { fprintf(stderr, "zero length line\n"); return; } if (strlen(buf) < 31) { fprintf(stderr, "warning: line too short:\n%s\n", buf); } strcpy(workbuf, buf); r = strtok(buf, "\r\n\t "); if (! r) { fprintf(stderr, "unknown line:\n%s\n", buf); return; } strcpy(line.filename, r); r += strlen(r) + 1; /* skip name */ while (isspace(*r)) /* skip white */ ++r; #ifndef CICA ++r; /* skip file type */ while (isspace(*r)) /* skip white */ ++r; r = strtok(r, "\r\n\t "); if (! r) { fprintf(stderr, "unknown line:\n%s\n", buf); line.filename[0] = 0; return; } line.filesize = atol(r); r += strlen(r) + 1; while (isspace(*r)) /* skip white */ ++r; #endif datebuf[0] = *r; ++r; datebuf[1] = *r; ++r; line.year = atoi(datebuf); datebuf[0] = *r; ++r; datebuf[1] = *r; ++r; line.month = atoi(datebuf); datebuf[0] = *r; ++r; datebuf[1] = *r; ++r; line.day = atoi(datebuf); while (isspace(*r)) /* skip white */ ++r; if (*r) strcpy(line.description, r); } void writeline(void) { if (! line.filename[0]) return; #if 0 9600TEXT.ZIP A pair of US Robotics text files about HST modems. #endif printf("%s %s\n", line.filename, line.description); } void _Cdecl main(void) { while (1) { readline(); writeline(); } }