|
|
1.1 ! root 1: static char sccsid[] = "@(#)symln.c 2.4"; ! 2: ! 3: #include <stdio.h> ! 4: #include "basic.h" ! 5: ! 6: main() ! 7: { ! 8: short cchStrCret0, cchStrData, cchStrText; ! 9: short cchStrLine, lnLast, ln; ! 10: FLAGT fText; ! 11: char *dotptr, *strLine, str2[200], str[200]; ! 12: char *strCret0, *strText, *strData; ! 13: ! 14: char *strrchr(); ! 15: ! 16: strLine = "// line "; ! 17: cchStrLine = strlen(strLine); ! 18: strText = " .text"; ! 19: cchStrText = strlen(strText); ! 20: strData = " .data"; ! 21: cchStrData = strlen(strData); ! 22: strCret0 = " jpr cret0"; ! 23: cchStrCret0 = strlen(strCret0); ! 24: ln = -1; ! 25: lnLast = -2; ! 26: ! 27: fText = true; /* this is the state the assembler starts in */ ! 28: while (gets(str) != NULL) { ! 29: if (!fText) { ! 30: if (strncmp(str, strText, cchStrText) == 0) { ! 31: fText = true; /* we are back in text mode */ ! 32: } /* if */ ! 33: puts(str); ! 34: } ! 35: else if (strncmp(str, strLine, cchStrLine) == 0) { ! 36: dotptr = strrchr(str, '.'); ! 37: if (dotptr == 0 OR dotptr[1] != 'h') { ! 38: ln = atoi(&str[cchStrLine]); ! 39: if (ln != lnLast) { ! 40: sprintf(str, "~_lN%d:",ln); ! 41: lnLast = ln; ! 42: puts(str); ! 43: } /* if */ ! 44: } /* if */ ! 45: } ! 46: else if (strncmp(str, strCret0, cchStrCret0) == 0) { ! 47: ln = lnLast + 1; ! 48: sprintf(str2, "~_lN%d:\n~_lE%d:", ln, ln); ! 49: lnLast = ln; ! 50: puts(str2); ! 51: puts(str); ! 52: } ! 53: else if (strncmp(str, strData, cchStrData) == 0) { ! 54: fText = false; ! 55: puts(str); ! 56: } ! 57: else { ! 58: puts(str); ! 59: } /* if */ ! 60: } /* while */ ! 61: exit(0); ! 62: } /* main */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.