@@ -1,7 +1,7 @@ /* - * Copyright (c) 2008-2022 Jonathan Schleifer + * Copyright (c) 2008-2024 Jonathan Schleifer * * All rights reserved. * * This file is part of ObjFW. It may be distributed under the terms of the * Q Public License 1.0, which can be found in the file LICENSE.QPL included in @@ -15,11 +15,11 @@ #include "config.h" #import "OFString+PathAdditions.h" #import "OFArray.h" -#import "OFFileURIHandler.h" +#import "OFFileIRIHandler.h" #import "OFOutOfRangeException.h" int _OFString_PathAdditions_reference; @@ -253,10 +253,13 @@ return [ret autorelease]; } - (OFString *)stringByAppendingPathComponent: (OFString *)component { + if (self.length == 0) + return component; + if ([self hasSuffix: @"/"] || [self hasSuffix: @":"]) return [self stringByAppendingString: component]; else { OFMutableString *ret = [[self mutableCopy] autorelease]; @@ -291,14 +294,14 @@ } - (bool)of_isDirectoryPath { return ([self hasSuffix: @"/"] || [self hasSuffix: @":"] || - [OFFileURIHandler of_directoryExistsAtPath: self]); + [OFFileIRIHandler of_directoryExistsAtPath: self]); } -- (OFString *)of_pathToURIPathWithPercentEncodedHost: +- (OFString *)of_pathToIRIPathWithPercentEncodedHost: (OFString **)percentEncodedHost { OFArray OF_GENERIC(OFString *) *components = self.pathComponents; OFMutableString *ret = [OFMutableString string]; @@ -317,11 +320,11 @@ [ret makeImmutable]; return ret; } -- (OFString *)of_URIPathToPathWithPercentEncodedHost: +- (OFString *)of_IRIPathToPathWithPercentEncodedHost: (OFString *)percentEncodedHost { OFString *path = self; if (path.length > 1 && [path hasSuffix: @"/"]) @@ -351,10 +354,10 @@ } return [OFString pathWithComponents: components]; } -- (OFString *)of_pathComponentToURIPathComponent +- (OFString *)of_pathComponentToIRIPathComponent { return self; } @end