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.