@@ -442,10 +442,36 @@ @throw [OFOutOfRangeException newWithClass: isa]; return [OFString stringWithCString: string + start andLength: end - start]; } + +- (OFString*)stringByAppendingString: (OFString*)str +{ + return [[OFMutableString stringWithString: self] appendString: str]; +} + +- (BOOL)hasPrefix: (OFString*)prefix +{ + size_t len = [prefix length]; + + if (len > length) + return NO; + + return (memcmp(string, [prefix cString], len) ? NO : YES); +} + +- (BOOL)hasSuffix: (OFString*)suffix +{ + size_t len = [suffix length]; + + if (len > length) + return NO; + + return (memcmp(string + (length - len), [suffix cString], len) + ? NO : YES); +} - (OFArray*)splitWithDelimiter: (OFString*)delimiter { OFAutoreleasePool *pool; OFArray *array;