File:  [Research Unix] / researchv9 / jerq / src / lib / mj / put.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 17:21:59 2018 UTC (8 years, 1 month ago) by root
Branches: belllabs, MAIN
CVS tags: researchv9-SUN3_old, researchv9-SUN3, HEAD
researchv9-SUN3(old)

#include <jerq.h>
#include <jerqio.h>
#define _SYSWRITE	3

putchar(c)
{
	putc(c,stdout);
}

putc(c,f)
register FILE *f;
{
	register i = 0;

	if (f->base == NULL)
	{
		f->cp = f->base = alloc(BUFSIZ);
		if (f->base == NULL)
			return(-1);
		f->count = BUFSIZ;
	}
	*f->cp++ = c;
	if (--f->count == 0 || ((c == '\n') && isatty(f)))
		i = fflush(f);
	return(i);
}

fflush(f)
register FILE *f;
{
	register int n, r;

	if ((f->flag & _IOWRT) && ((n = f->cp - f->base) > 0))
		r = _write(fileno(f),f->base,n);
	f->cp = f->base;
	f->count = BUFSIZ;
	return((r == n) - 1);
}

puts(s)
register char *s;
{
	fputs(s,stdout);
}

fputs(s,f)
register char *s;
register FILE *f;
{
	register int c;
	while (c = *s++)
		putc(c,f);
}

_write(fd,buf,n)
char *buf;
{
	tag(_SYSWRITE);
	jputshort(fd);
	jputbuf(buf,n);
	return(jgetshort());
}


unix.superglobalmegacorp.com

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