This is MOStringDebugging.m in view mode; [Download] [Up]
// MOStringDebugging.m
//
// by Mike Ferris
// Part of MOKit
// Copyright 1993, all rights reserved.
// ABOUT MOKit
// by Mike Ferris (mike@lorax.com)
//
// MOKit is a collection of useful and general objects. Permission is
// granted by the author to use MOKit in your own programs in any way
// you see fit. All other rights pertaining to the kit are reserved by the
// author including the right to sell these objects as objects, as part
// of a LIBRARY, or as SOURCE CODE. In plain English, I wish to retain
// rights to these objects as objects, but allow the use of the objects
// as pieces in a fully functional program. Permission is also granted to
// redistribute the source code of MOKit for FREE as long as this copyright
// notice is left intact and unchanged. NO WARRANTY is expressed or implied.
// The author will under no circumstances be held responsible for ANY
// consequences from the use of these objects. Since you don't have to pay
// for them, and full source is provided, I think this is perfectly fair.
#import "MOKit/MOString.h"
extern char *MOBuildStringFromFormatV(const char *formatStr,
va_list param_list);
@implementation MOString(Debugging)
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// =-=-=-=-=-=-=-=-=-=-=-=-=-=- Debug printing -=-=-=-=-=-=-=-=-=-=-=-=-=-=
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- buildInstanceImageIn:(char *)buf
// Build a nice representation of all our instance vars in buf.
{
sprintf(buf, "\tstr = '%s' (%#x)\n\tuStr = '%s' (%#x)\n"
"\tlen = %lu\n\tisUnique = %s, shouldFree = %s\n",
str, (unsigned int)str, uStr,
(unsigned int)uStr, len, (isUnique?"YES":"NO"),
(shouldFree?"YES":"NO"));
return self;
}
- printForDebugger:(NXStream *)stream
// Overriden to use our nice instance printer as well as what it used to do.
{
char buf[1000];
[super printForDebugger:stream];
[self buildInstanceImageIn:buf];
NXWrite(stream, buf, strlen(buf));
return self;
}
- printToStdErr:(const char *)label
// Prints a nice representation of our string to the stderr labeled with
// the given label.
{
char buf[1000];
fprintf(stderr, "%s <%s:%#x>\n", label, [[self class] name],
(unsigned int)self);
[self buildInstanceImageIn:buf];
fprintf(stderr, "%s", buf);
return self;
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.