This is RZSimpleString.m in view mode; [Download] [Up]
/*
* RZSimpleString - a lightweight, archivable, immutable string class
*
* You may freely copy, distribute and reuse the code in this example.
* This code is provided AS IS without warranty of any kind, expressed
* or implied, as to its fitness for any particular use.
*
* Copyright 1995 Ralph Zazula (rzazula@next.com). All Rights Reserved.
*
*/
#import "RZSimpleString.h"
#import <appkit/nextstd.h> // for NX_FREE
#import <objc/hashtable.h> // for NXCopyStringBuffer
@implementation RZSimpleString
- init
{
[self error:"use -initWith:, not -init"];
return [self notImplemented:_cmd];
}
- initWith:(const char *)format, ...
{
va_list args;
static char buf[1024];
if(self = [super init]) {
va_start(args, format);
vsprintf(buf, format, args);
data = buf ? NXCopyStringBuffer(buf) : NULL;
}
return self;
}
- free
{
if(data) {
NX_FREE(data);
data = NULL;
}
return [super free];
}
- (const char *)string
{
return data;
}
- write:(NXTypedStream *)ts
{
[super write:ts];
NXWriteTypes(ts, "*", &data);
return self;
}
- read:(NXTypedStream *)ts
{
[super read:ts];
NXReadTypes(ts, "*", &data);
return self;
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.