Index: src/OFCString.h ================================================================== --- src/OFCString.h +++ src/OFCString.h @@ -15,13 +15,15 @@ #import "OFString.h" @interface OFCString: OFString { char *string; + size_t length; } - initWithCString: (char*)str; - (char*)cString; +- (size_t)length; - (OFString*)clone; - (int)compareTo: (OFString*)str; - (OFString*)append: (OFString*)str; @end Index: src/OFCString.m ================================================================== --- src/OFCString.m +++ src/OFCString.m @@ -16,11 +16,11 @@ #import "OFCString.h" #import "OFExceptions.h" @implementation OFCString -- initWithCString: (const char*)str +- initWithCString: (char*)str { if ((self = [super init])) { if (str == NULL) { length = 0; string = NULL; @@ -35,10 +35,15 @@ - (char*)cString { return string; } + +- (size_t)length +{ + return length; +} - (OFString*)clone { return [OFString newWithCString: string]; } Index: src/OFConstCString.h ================================================================== --- src/OFConstCString.h +++ src/OFConstCString.h @@ -12,12 +12,14 @@ #import "OFString.h" @interface OFConstCString: OFString { const char *string; + size_t length; } - initWithConstCString: (const char*)str; - (const char*)cString; +- (size_t)length; - (OFString*)clone; - (int)compareTo: (OFString*)str; @end Index: src/OFConstCString.m ================================================================== --- src/OFConstCString.m +++ src/OFConstCString.m @@ -31,10 +31,15 @@ - (const char*)cString { return string; } + +- (size_t)length +{ + return length; +} - (OFString*)clone { return [OFString newWithConstCString: string]; } Index: src/OFConstWideCString.h ================================================================== --- src/OFConstWideCString.h +++ src/OFConstWideCString.h @@ -14,12 +14,14 @@ #import "OFString.h" @interface OFConstWideCString: OFString { const wchar_t *string; + size_t length; } - initWithConstWideCString: (const wchar_t*)wstr; - (const wchar_t*)wcString; +- (size_t)length; - (OFString*)clone; - (int)compareTo: (OFString*)str; @end Index: src/OFConstWideCString.m ================================================================== --- src/OFConstWideCString.m +++ src/OFConstWideCString.m @@ -31,10 +31,15 @@ - (const wchar_t*)wcString { return string; } + +- (size_t)length +{ + return length; +} - (OFString*)clone { return [OFString newWithConstWideCString: string]; } Index: src/OFExceptions.m ================================================================== --- src/OFExceptions.m +++ src/OFExceptions.m @@ -8,10 +8,12 @@ * Q Public License 1.0, which can be found in the file LICENSE included in * the packaging of this file. */ #import "config.h" + +#import #import #import #import "OFExceptions.h" Index: src/OFString.h ================================================================== --- src/OFString.h +++ src/OFString.h @@ -12,14 +12,10 @@ #import #import #import "OFObject.h" @interface OFString: OFObject -{ - size_t length; -} - + newWithConstCString: (const char*)str; + newWithConstWideCString: (const wchar_t*)str; + newWithCString: (char*)str; + newWithWideCString: (wchar_t*)str; Index: src/OFString.m ================================================================== --- src/OFString.m +++ src/OFString.m @@ -56,11 +56,13 @@ return NULL; } - (size_t)length { - return length; + [[OFNotImplementedException newWithObject: self + andSelector: @selector(length)] raise]; + return 0; } - (OFString*)setTo: (OFString*)str { [self free]; Index: src/OFWideCString.h ================================================================== --- src/OFWideCString.h +++ src/OFWideCString.h @@ -15,13 +15,15 @@ #import "OFString.h" @interface OFWideCString: OFString { wchar_t *string; + size_t length; } - initWithWideCString: (wchar_t*)str; - (wchar_t*)wcString; +- (size_t)length; - (OFString*)clone; - (int)compareTo: (OFString*)str; - (OFString*)append: (OFString*)str; @end Index: src/OFWideCString.m ================================================================== --- src/OFWideCString.m +++ src/OFWideCString.m @@ -37,10 +37,15 @@ - (wchar_t*)wcString { return string; } + +- (size_t)length +{ + return length; +} - (OFString*)clone { return [OFString newWithWideCString: string]; }