︙ | | | ︙ | |
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
{
void *pool = objc_autoreleasePoolPush();
OFString *ret, *fileName;
size_t pos;
fileName = self.lastPathComponent;
pos = [fileName rangeOfString: @"."
options: OF_STRING_SEARCH_BACKWARDS].location;
if (pos == OF_NOT_FOUND || pos == 0) {
objc_autoreleasePoolPop(pool);
return @"";
}
ret = [fileName substringFromIndex: pos + 1];
[ret retain];
|
|
|
|
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
{
void *pool = objc_autoreleasePoolPush();
OFString *ret, *fileName;
size_t pos;
fileName = self.lastPathComponent;
pos = [fileName rangeOfString: @"."
options: OFStringSearchBackwards].location;
if (pos == OFNotFound || pos == 0) {
objc_autoreleasePoolPop(pool);
return @"";
}
ret = [fileName substringFromIndex: pos + 1];
[ret retain];
|
︙ | | | ︙ | |
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
|
}
objc_autoreleasePoolPop(pool);
return @"";
}
components = [components objectsInRange:
of_range(0, components.count - 1)];
ret = [OFString pathWithComponents: components];
[ret retain];
objc_autoreleasePoolPop(pool);
return [ret autorelease];
}
|
|
|
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
|
}
objc_autoreleasePoolPop(pool);
return @"";
}
components = [components objectsInRange:
OFRangeMake(0, components.count - 1)];
ret = [OFString pathWithComponents: components];
[ret retain];
objc_autoreleasePoolPop(pool);
return [ret autorelease];
}
|
︙ | | | ︙ | |
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
|
return [[self copy] autorelease];
pool = objc_autoreleasePoolPush();
components = [[self.pathComponents mutableCopy] autorelease];
fileName = components.lastObject;
pos = [fileName rangeOfString: @"."
options: OF_STRING_SEARCH_BACKWARDS].location;
if (pos == OF_NOT_FOUND || pos == 0) {
objc_autoreleasePoolPop(pool);
return [[self copy] autorelease];
}
fileName = [fileName substringToIndex: pos];
[components replaceObjectAtIndex: components.count - 1
withObject: fileName];
|
|
|
|
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
|
return [[self copy] autorelease];
pool = objc_autoreleasePoolPush();
components = [[self.pathComponents mutableCopy] autorelease];
fileName = components.lastObject;
pos = [fileName rangeOfString: @"."
options: OFStringSearchBackwards].location;
if (pos == OFNotFound || pos == 0) {
objc_autoreleasePoolPop(pool);
return [[self copy] autorelease];
}
fileName = [fileName substringToIndex: pos];
[components replaceObjectAtIndex: components.count - 1
withObject: fileName];
|
︙ | | | ︙ | |
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
|
done = false;
break;
}
if ([component isEqual: @"/"] &&
parent != nil && ![parent isEqual: @"/"]) {
[array removeObjectsInRange:
of_range(i - 1, 2)];
done = false;
break;
}
}
}
|
|
|
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
|
done = false;
break;
}
if ([component isEqual: @"/"] &&
parent != nil && ![parent isEqual: @"/"]) {
[array removeObjectsInRange:
OFRangeMake(i - 1, 2)];
done = false;
break;
}
}
}
|
︙ | | | ︙ | |
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
|
count--;
i--;
continue;
}
if ([component isEqual: @".."])
[components replaceObjectAtIndex: i
withObject: @"/"];
}
return [OFString pathWithComponents: components];
}
- (OFString *)of_pathComponentToURLPathComponent
{
return self;
}
@end
|
|
<
|
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
|
count--;
i--;
continue;
}
if ([component isEqual: @".."])
[components replaceObjectAtIndex: i withObject: @"/"];
}
return [OFString pathWithComponents: components];
}
- (OFString *)of_pathComponentToURLPathComponent
{
return self;
}
@end
|