ftp.nice.ch/pub/next/text/tex/apps/Bibliography.1.2a.s.tar.gz#/Bibliography.1.2a/BufferClass.m

This is BufferClass.m in view mode; [Download] [Up]


//	Copyright H. Giesen, University of Koblenz-Landau 1996


#import "BufferClass.h"

@implementation BufferClass


- (char*)buffer;
{
	return buffer;
}


- (void) clear
{
	if( buffer ) buffer[0] = '\0';
}


- (void) setLength:(int)len
{
	if( buffer==NULL ) return;
	buffer[ (len<size-1) ? len : size-1 ] = '\0';
}


- free
{
	if( buffer ) free( buffer );
	return [super free];
}


- init
{
	buffer = NULL;
	size = 0;
	return [super init];
}


- initBufferSize:(int)aSize
{
	buffer = (unsigned char *)malloc( aSize );
	size = aSize;
	return [super init];
}


- (unsigned int)size
{
	return size;
}


- (void) validateBuffer:(int)aSize
{
	int	newSize = ((aSize + 511)/512)*512;
	if( newSize==0 ) newSize = 512;	// this can happen !
	if( buffer ){
		if( size >= aSize ) return;
		buffer = realloc( buffer, newSize );
		size = newSize;
	}
	else{
		buffer = (unsigned char *)malloc( newSize );
		size = newSize;
	}
}


- setMinSizeTo:(int)minSize
{
	[self validateBuffer:minSize];
	return self;
}


- setText:(const char *)aString
{
	int len = strlen( aString );
	[self validateBuffer:len];
	strcpy( buffer, aString );
	return self;
}


- setText:(const char *)aString length:(int)len
{
	return self;
}



@end

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.