327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
|
of_url_verify_escaped(OFString *string, OFCharacterSet *characterSet)
{
void *pool = objc_autoreleasePoolPush();
characterSet = [[[OFInvertedCharacterSetWithoutPercent alloc]
initWithCharacterSet: characterSet] autorelease];
if ([string indexOfCharacterFromSet: characterSet] != OF_NOT_FOUND)
@throw [OFInvalidFormatException exception];
objc_autoreleasePoolPop(pool);
}
@implementation OFCharacterSet (URLCharacterSets)
+ (OFCharacterSet *)URLSchemeAllowedCharacterSet
|
|
|
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
|
of_url_verify_escaped(OFString *string, OFCharacterSet *characterSet)
{
void *pool = objc_autoreleasePoolPush();
characterSet = [[[OFInvertedCharacterSetWithoutPercent alloc]
initWithCharacterSet: characterSet] autorelease];
if ([string indexOfCharacterFromSet: characterSet] != OFNotFound)
@throw [OFInvalidFormatException exception];
objc_autoreleasePoolPop(pool);
}
@implementation OFCharacterSet (URLCharacterSets)
+ (OFCharacterSet *)URLSchemeAllowedCharacterSet
|
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
|
(URL->_URLEncodedPath != nil
? URL->_URLEncodedPath
: @"/")];
OFRange range = [path
rangeOfString: @"/"
options: OF_STRING_SEARCH_BACKWARDS];
if (range.location == OF_NOT_FOUND)
@throw [OFInvalidFormatException
exception];
range.location++;
range.length = path.length - range.location;
[path replaceCharactersInRange: range
|
|
|
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
|
(URL->_URLEncodedPath != nil
? URL->_URLEncodedPath
: @"/")];
OFRange range = [path
rangeOfString: @"/"
options: OF_STRING_SEARCH_BACKWARDS];
if (range.location == OFNotFound)
@throw [OFInvalidFormatException
exception];
range.location++;
range.length = path.length - range.location;
[path replaceCharactersInRange: range
|