DataMuseum.dk

Presents historical artifacts from the history of:

Commodore CBM-900

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Commodore CBM-900

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦832355814⟧ TextFile

    Length: 980 (0x3d4)
    Types: TextFile
    Notes: UNIX file
    Names: »output.c«

Derivation

└─⟦f27320a65⟧ Bits:30001972 Commodore 900 hard disk image with partial source code
    └─⟦f4b8d8c84⟧ UNIX V7 Filesystem
        └─ ⟦this⟧ »cmd/bc/output.c« 

TextFile

#include <stdio.h>
#include "bc.h"


/*
 *	The int left is equal to the number of columns left on the
 *	output line.
 */

static int	left = LINELEN;


/*
 *	Pstring is used to print a string onto the standard output,
 *	maintaining the number of characters left on the line in
 *	left.  `field' is the minimum number of characters to be used.
 *	Padding is zeros on the left.
 */

pstring(str, field)
register char	*str;
int		field;
{
	register int	len;

	len = strlen(str);
	if (field < len)
		field = len;
	if (left < field && field <= LINELEN) {
		printf("\\\n");
		left = LINELEN;
	}
	for (field -= len; field != 0; --field) {
		putchar('0');
		if (--left == 0) {
			left = LINELEN;
			printf("\\\n");
		}
	}
	for (; left < len; len -= left) {
		printf("%.*s\\\n", left, str);
		str += left;
		left = LINELEN;
	}
	printf("%s", str);
	left -= len;
}


/*
 *	Pnewln prints out a newline on standard output, updateing
 *	left.
 */

pnewln()
{
	putchar('\n');
	left = LINELEN;
}