@@ -34,11 +34,11 @@ static struct { Class isa; } placeholder; -static OFCharacterSet *URLQueryPartAllowedCharacterSet = nil; +static OFCharacterSet *URIQueryPartAllowedCharacterSet = nil; @interface OFDictionary () - (OFString *) of_JSONRepresentationWithOptions: (OFJSONRepresentationOptions)options depth: (size_t)depth; @@ -56,12 +56,12 @@ - (instancetype)initWithDictionary: (OFDictionary *)dictionary; @end OF_DIRECT_MEMBERS -@interface OFURLQueryPartAllowedCharacterSet: OFCharacterSet -+ (OFCharacterSet *)URLQueryPartAllowedCharacterSet; +@interface OFURIQueryPartAllowedCharacterSet: OFCharacterSet ++ (OFCharacterSet *)URIQueryPartAllowedCharacterSet; @end @implementation OFDictionaryPlaceholder - (instancetype)init { @@ -139,23 +139,23 @@ { OF_DEALLOC_UNSUPPORTED } @end -@implementation OFURLQueryPartAllowedCharacterSet +@implementation OFURIQueryPartAllowedCharacterSet + (void)initialize { - if (self != [OFURLQueryPartAllowedCharacterSet class]) + if (self != [OFURIQueryPartAllowedCharacterSet class]) return; - URLQueryPartAllowedCharacterSet = - [[OFURLQueryPartAllowedCharacterSet alloc] init]; + URIQueryPartAllowedCharacterSet = + [[OFURIQueryPartAllowedCharacterSet alloc] init]; } -+ (OFCharacterSet *)URLQueryPartAllowedCharacterSet ++ (OFCharacterSet *)URIQueryPartAllowedCharacterSet { - return URLQueryPartAllowedCharacterSet; + return URIQueryPartAllowedCharacterSet; } - (instancetype)autorelease { return self; @@ -637,18 +637,18 @@ objc_autoreleasePoolPop(pool); return ret; } -- (OFString *)stringByURLEncoding +- (OFString *)URIQueryString { OFMutableString *ret = [OFMutableString string]; void *pool = objc_autoreleasePoolPush(); OFEnumerator *keyEnumerator = [self keyEnumerator]; OFEnumerator *objectEnumerator = [self objectEnumerator]; - OFCharacterSet *allowed = [OFURLQueryPartAllowedCharacterSet - URLQueryPartAllowedCharacterSet]; + OFCharacterSet *allowed = [OFURIQueryPartAllowedCharacterSet + URIQueryPartAllowedCharacterSet]; bool first = true; OFObject *key, *object; while ((key = [keyEnumerator nextObject]) != nil && (object = [objectEnumerator nextObject]) != nil) { @@ -656,14 +656,16 @@ first = false; else [ret appendString: @"&"]; [ret appendString: [key.description - stringByURLEncodingWithAllowedCharacters: allowed]]; + stringByAddingPercentEncodingWithAllowedCharacters: + allowed]]; [ret appendString: @"="]; [ret appendString: [object.description - stringByURLEncodingWithAllowedCharacters: allowed]]; + stringByAddingPercentEncodingWithAllowedCharacters: + allowed]]; } [ret makeImmutable]; objc_autoreleasePoolPop(pool);