diff pkg-src/tree-nx/String.h @ 163:0132846995bd r20-3b8

Import from CVS: tag r20-3b8
author cvs
date Mon, 13 Aug 2007 09:43:35 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkg-src/tree-nx/String.h	Mon Aug 13 09:43:35 2007 +0200
@@ -0,0 +1,92 @@
+//
+//	String.h -- a generic class to simplify manipulation of (char *)'s
+//		Written by Don Yacktman (c) 1993 by Don Yacktman.
+//				Version 1.1.  All rights reserved.
+//
+//		You may use and copy this class freely as long as you
+//		comply with the following terms:
+//			(1) If you use this class in an application which you
+//				intend to sell commercially, as shareware, or otherwise,
+//				you may only do so with express written permission
+//				of the author.  Use in applications which will
+//				be distributed free of charge is encouraged.
+//			(2) You must include the source code to this object and
+//				all accompanying documentation with your application,
+//				or provide it to users if requested, free of charge.
+//			(3) Do not remove the author's name or any of the
+//				copyright notices
+//
+
+#import <appkit/appkit.h>
+
+@interface String:Object
+{
+	 char *buffer;
+	 NXStringOrderTable *orderTable;
+	 int length, _length;
+}
+
+// basic allocation, deallocation methods
+- init;
+- initString:(const char *)aString;
+- allocateBuffer:(int)size;
+- allocateBuffer:(int)size fromZone:(NXZone *)zone;
+- read:(NXTypedStream *)stream;
+- write:(NXTypedStream *)stream;
+- freeString;
+- free;
+
+// strcpy(), strlen() covers 
+- copyFromZone:(NXZone *)zone; // a -copy message calls this.
+- setString:(const char *)aString;
+- setString:(const char *)aString fromZone:(NXZone *)zone;
+- setStringValue:sender;
+- setStringValue:sender fromZone:(NXZone *)zone;
+- (const char *)stringValue;
+- (int)length;
+
+// strcat(), strncat() covers
+- concatenate:sender;
+- concatenate:sender n:(int)n;
+- concatenate:sender fromZone:(NXZone *)zone;
+- concatenate:sender n:(int)n fromZone:(NXZone *)zone;
+- cat:(const char *)aString;
+- cat:(const char *)aString n:(int)n;
+- cat:(const char *)aString fromZone:(NXZone *)zone;
+- cat:(const char *)aString n:(int)n fromZone:(NXZone *)zone;
+
+// index(), rindex() covers
+- (const char *)rindex:(char)aChar;
+- (const char *)index:(char)aChar;
+
+// strcmp(), strncmp(), strcasecmp(), strncasecmp() covers
+- setStringOrderTable:(NXStringOrderTable *)table;
+- (NXStringOrderTable *)stringOrderTable;
+- (BOOL)isEqual:anObject;
+- (int)compareTo:sender;
+- (int)compareTo:sender n:(int)n;
+- (int)compareTo:sender caseSensitive:(BOOL)sense;
+- (int)compareTo:sender n:(int)n caseSensitive:(BOOL)sense;
+- (int)cmp:(const char *)aString;
+- (int)cmp:(const char *)aString n:(int)n;
+- (int)casecmp:(const char *)aString;
+- (int)casecmp:(const char *)aString n:(int)n;
+- (const char *)strstr:(const char *)subString;
+
+// like BASIC's left$(), right$(), and mid$(); all return a new instance.
+- left:(int)count;
+- right:(int)count;
+- midFrom:(int)start to:(int)end;
+- midFrom:(int)start length:(int)len;
+- left:(int)count fromZone:(NXZone *)zone;
+- right:(int)count fromZone:(NXZone *)zone;
+- midFrom:(int)start to:(int)end fromZone:(NXZone *)zone;
+- midFrom:(int)start length:(int)len fromZone:(NXZone *)zone;
+- subStringRight:subString;
+- subStringLeft:subString;
+
+// private methods: do not use these!
+- _unhookBuffer;
+
+
+@end