|
|
Power 6/32 Unix version 1.2b
static char sccsid[] = "@(#)symln.c 2.4";
#include <stdio.h>
#include "basic.h"
main()
{
short cchStrCret0, cchStrData, cchStrText;
short cchStrLine, lnLast, ln;
FLAGT fText;
char *dotptr, *strLine, str2[200], str[200];
char *strCret0, *strText, *strData;
char *strrchr();
strLine = "// line ";
cchStrLine = strlen(strLine);
strText = " .text";
cchStrText = strlen(strText);
strData = " .data";
cchStrData = strlen(strData);
strCret0 = " jpr cret0";
cchStrCret0 = strlen(strCret0);
ln = -1;
lnLast = -2;
fText = true; /* this is the state the assembler starts in */
while (gets(str) != NULL) {
if (!fText) {
if (strncmp(str, strText, cchStrText) == 0) {
fText = true; /* we are back in text mode */
} /* if */
puts(str);
}
else if (strncmp(str, strLine, cchStrLine) == 0) {
dotptr = strrchr(str, '.');
if (dotptr == 0 OR dotptr[1] != 'h') {
ln = atoi(&str[cchStrLine]);
if (ln != lnLast) {
sprintf(str, "~_lN%d:",ln);
lnLast = ln;
puts(str);
} /* if */
} /* if */
}
else if (strncmp(str, strCret0, cchStrCret0) == 0) {
ln = lnLast + 1;
sprintf(str2, "~_lN%d:\n~_lE%d:", ln, ln);
lnLast = ln;
puts(str2);
puts(str);
}
else if (strncmp(str, strData, cchStrData) == 0) {
fText = false;
puts(str);
}
else {
puts(str);
} /* if */
} /* while */
exit(0);
} /* main */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.