@@ -14,11 +14,10 @@ #include #include #include #import "OFString.h" -#import "OFMutableString.h" #import "OFAutoreleasePool.h" #import "OFExceptions.h" #import "OFMacros.h" @implementation OFString @@ -30,11 +29,11 @@ + stringWithCString: (const char*)str { return [[[OFMutableString alloc] initWithCString: str] autorelease]; } -+ stringWithFormat: (const char*)fmt, ... ++ stringWithFormat: (OFString*)fmt, ... { id ret; va_list args; va_start(args, fmt); @@ -43,11 +42,11 @@ va_end(args); return ret; } -+ stringWithFormat: (const char*)fmt ++ stringWithFormat: (OFString*)fmt andArguments: (va_list)args { return [[[OFMutableString alloc] initWithFormat: fmt andArguments: args] autorelease]; } @@ -125,18 +124,18 @@ { @throw [OFNotImplementedException newWithClass: isa andSelector: _cmd]; } -- appendWithFormatCString: (const char*)fmt, ... +- appendWithFormat: (OFString*)fmt, ... { @throw [OFNotImplementedException newWithClass: isa andSelector: _cmd]; } -- appendWithFormatCString: (const char*)fmt - andArguments: (va_list)args +- appendWithFormat: (OFString*)fmt + andArguments: (va_list)args { @throw [OFNotImplementedException newWithClass: isa andSelector: _cmd]; } @@ -156,22 +155,23 @@ { @throw [OFNotImplementedException newWithClass: isa andSelector: _cmd]; } -- (OFArray*)splitWithDelimiter: (const char*)delimiter +- (OFArray*)splitWithDelimiter: (OFString*)delimiter { OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; OFArray *array = nil; - size_t delim_len = strlen(delimiter); + const char *delim = [delimiter cString]; + size_t delim_len = [delimiter length]; size_t i, last; array = [OFArray array]; for (i = 0, last = 0; i <= length; i++) { if (OF_UNLIKELY(i == length || - !memcmp(string + i, delimiter, delim_len))) { + !memcmp(string + i, delim, delim_len))) { OFString *str; char *tmp; /* * We can't use [self allocWithSize:] here as