home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
CPM
/
BDSC
/
BDSC-3
/
STRIPC.CQ
/
STRIPC.C
Wrap
Text File
|
2000-06-30
|
2KB
|
72 lines
/*
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 <infile> <outfile>\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");
}