Personal tools
You are here: Home Projects C++ Cfront releases Release 1.0 Source cfront lib stream streambuf.c
Document Actions

streambuf.c

by Paul McJones last modified 2007-02-02 09:33

Click here to get the file

Size 1 kB - File type text/x-csrc

File contents

/* @(#) streambuf.c 1.2 1/27/86 17:48:04 */
/*ident	"@(#)cfront:lib/stream/streambuf.c	1.2"*/
#include "stream.h"

/*
	Allocate some space for the buffer.
	Returns:	EOF on error
			0 on success
*/
int streambuf.allocate()
{
	if (base == NULL) {
		if ((base = new char[BUFSIZE]) != NULL) {
			pptr = gptr = base;
			eptr = base + BUFSIZE;
			alloc = 1;
			return 0;
		} else
			return EOF;
	}
	return 0;
}

/*
	Come here on a put to a full buffer.  Allocate the buffer if 
	it is uninitialized.
	Returns:	EOF on error
			the argument on success
*/
virtual int streambuf.overflow(int c)
{
	if (allocate() == EOF) return EOF;
	if (c != EOF) *pptr++ = c;
	return c&0377;
}

/*
	Fill a buffer.
	Returns:	EOF on error or end of input
			next character on success
*/
virtual int streambuf.underflow()
{
	return EOF;
}
« March 2024 »
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
 

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: