File:  [Power 6/32 Unix Tahoe 4.2BSD] / cci / usr / src / bin / cdb / symln.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Sun Jul 28 12:24:19 2019 UTC (7 years ago) by root
Branches: bsd, MAIN
CVS tags: v12b, v121, HEAD
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 */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.