/* STRIPC.C Written by Leor Zolman, 3/82 This program takes an assembly language source file as input, and writes out the same file stripped of comments. Everything between a semicolon and the end of the line is stripped, plus the tabs before the semicolon. If a line contains an odd number of single quote (') characters before the first semicolon, then the line is left intact. */ #include "bdscio.h" char ibuf[BUFSIZ], obuf[BUFSIZ]; main(argc,argv) char **argv; { char iname[30], oname[30]; char linbuf[200]; int i,j,k; if (argc != 3) exit(puts("usage: stripc \n")); if (!strcmp(argv[1],argv[2])) exit(puts("Names must be distinct\n")); strcpy(iname,argv[1]); strcpy(oname,argv[2]); strcat(iname,".ASM"); strcat(oname,".ASM"); if (fopen(iname,ibuf) == ERROR) exit(puts("\7Can't open input file\n")); if (fcreat(oname,obuf) == ERROR) exit(puts("\7Can't create output file\n")); while (fgets(linbuf,ibuf)) { if ((i = index(linbuf,";")) != ERROR) { if (!i) { *linbuf = '\0'; } else { if (index(linbuf,"'") < i) { k = 0; /* quote count */ for (j = 0; j < i; j++) if (linbuf[j] == '\'') k++; if (k & 1) goto lineout; } while (i && isspace(linbuf[i-1])) i--; linbuf[i++] = '\n'; linbuf[i] = '\0'; } } lineout: if (fputs(linbuf,obuf) == ERROR) exit(puts("\7Error writing output file")); putchar('.'); } putc(CPMEOF,obuf); fflush(obuf); fclose(obuf); fclose(ibuf); puts("All done.\n"); }  .