@@ -1158,105 +1158,10 @@ objc_autoreleasePoolPop(pool); return array; } -- (OFArray *)pathComponents -{ - OFMutableArray *ret; - void *pool; - size_t i, last = 0, pathCStringLength = _s->cStringLength; - - ret = [OFMutableArray array]; - - if (pathCStringLength == 0) - return ret; - - pool = objc_autoreleasePoolPush(); - - if (OF_IS_PATH_DELIMITER(_s->cString[pathCStringLength - 1])) - pathCStringLength--; - - for (i = 0; i < pathCStringLength; i++) { - if (OF_IS_PATH_DELIMITER(_s->cString[i])) { - [ret addObject: - [OFString stringWithUTF8String: _s->cString + last - length: i - last]]; - last = i + 1; - } - } - [ret addObject: [OFString stringWithUTF8String: _s->cString + last - length: i - last]]; - - [ret makeImmutable]; - - objc_autoreleasePoolPop(pool); - - return ret; -} - -- (OFString *)lastPathComponent -{ - size_t pathCStringLength = _s->cStringLength; - ssize_t i; - - if (pathCStringLength == 0) - return @""; - - if (OF_IS_PATH_DELIMITER(_s->cString[pathCStringLength - 1])) - pathCStringLength--; - - if (pathCStringLength == 0) - return @""; - - if (pathCStringLength - 1 > SSIZE_MAX) - @throw [OFOutOfRangeException exception]; - - for (i = pathCStringLength - 1; i >= 0; i--) { - if (OF_IS_PATH_DELIMITER(_s->cString[i])) { - i++; - break; - } - } - - /* - * Only one component, but the trailing delimiter might have been - * removed, so return a new string anyway. - */ - if (i < 0) - i = 0; - - return [OFString stringWithUTF8String: _s->cString + i - length: pathCStringLength - i]; -} - -- (OFString *)stringByDeletingLastPathComponent -{ - size_t pathCStringLength = _s->cStringLength; - - if (pathCStringLength == 0) - return @""; - - if (OF_IS_PATH_DELIMITER(_s->cString[pathCStringLength - 1])) - pathCStringLength--; - - if (pathCStringLength == 0) - return [OFString stringWithUTF8String: _s->cString - length: 1]; - - for (size_t i = pathCStringLength - 1; i >= 1; i--) - if (OF_IS_PATH_DELIMITER(_s->cString[i])) - return [OFString stringWithUTF8String: _s->cString - length: i]; - - if (OF_IS_PATH_DELIMITER(_s->cString[0])) - return [OFString stringWithUTF8String: _s->cString - length: 1]; - - return OF_PATH_CURRENT_DIRECTORY; -} - - (const of_unichar_t *)characters { OFObject *object = [[[OFObject alloc] init] autorelease]; of_unichar_t *ret; size_t i, j;