199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
|
}
objc_autoreleasePoolPop(pool);
return @".";
}
components = [components objectsInRange:
OFMakeRange(0, components.count - 1)];
ret = [OFString pathWithComponents: components];
[ret retain];
objc_autoreleasePoolPop(pool);
return [ret autorelease];
}
|
|
|
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
|
}
objc_autoreleasePoolPop(pool);
return @".";
}
components = [components objectsInRange:
OFRangeMake(0, components.count - 1)];
ret = [OFString pathWithComponents: components];
[ret retain];
objc_autoreleasePoolPop(pool);
return [ret autorelease];
}
|
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
|
if ([component isEqual: @".."] && parent != nil &&
![parent isEqual: @".."] &&
![parent hasSuffix: @":"] &&
![parent hasSuffix: @":\\"] &&
![parent hasSuffix: @"://"] &&
(![parent hasPrefix: @"\\"] || i != 1)) {
[array removeObjectsInRange:
OFMakeRange(i - 1, 2)];
done = false;
break;
}
}
}
|
|
|
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
|
if ([component isEqual: @".."] && parent != nil &&
![parent isEqual: @".."] &&
![parent hasSuffix: @":"] &&
![parent hasSuffix: @":\\"] &&
![parent hasSuffix: @"://"] &&
(![parent hasPrefix: @"\\"] || i != 1)) {
[array removeObjectsInRange:
OFRangeMake(i - 1, 2)];
done = false;
break;
}
}
}
|
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
|
if (components.count < 2)
@throw [OFInvalidFormatException exception];
*URLEncodedHost = [[components objectAtIndex: 1]
stringByURLEncodingWithAllowedCharacters:
[OFCharacterSet URLHostAllowedCharacterSet]];
path = [OFString pathWithComponents: [components
objectsInRange: OFMakeRange(2, components.count - 2)]];
}
path = [path stringByReplacingOccurrencesOfString: @"\\"
withString: @"/"];
path = [path stringByPrependingString: @"/"];
return path;
|
|
|
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
|
if (components.count < 2)
@throw [OFInvalidFormatException exception];
*URLEncodedHost = [[components objectAtIndex: 1]
stringByURLEncodingWithAllowedCharacters:
[OFCharacterSet URLHostAllowedCharacterSet]];
path = [OFString pathWithComponents: [components
objectsInRange: OFRangeMake(2, components.count - 2)]];
}
path = [path stringByReplacingOccurrencesOfString: @"\\"
withString: @"/"];
path = [path stringByPrependingString: @"/"];
return path;
|