Changeset 5102
- Timestamp:
- 12/10/07 23:14:21 (7 months ago)
- Files:
-
- WiredAdditions/trunk/NSString-WIAdditions.m (modified) (1 diff)
- WiredAdditions/trunk/NSWindowController-WIAdditions.m (modified) (2 diffs)
- WiredAdditions/trunk/WIURL.h (modified) (2 diffs)
- WiredAdditions/trunk/WIURL.m (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
WiredAdditions/trunk/NSString-WIAdditions.m
r5002 r5102 152 152 153 153 while(![scanner isAtEnd]) { 154 [scanner scanUpToCharactersFromSet:set intoString: NULL];155 [scanner scanUpToCharactersFromSet:invertedSet intoString: &string];156 154 [scanner scanUpToCharactersFromSet:set intoString:&string]; 155 [scanner scanUpToCharactersFromSet:invertedSet intoString:NULL]; 156 157 157 if([string length] > 0) 158 158 [components addObject:string]; WiredAdditions/trunk/NSWindowController-WIAdditions.m
r4464 r5102 44 44 45 45 - (IBAction)submitSheet:(id)sender { 46 [NSApp endSheet:[sender window] returnCode:NS AlertDefaultReturn];46 [NSApp endSheet:[sender window] returnCode:NSOKButton]; 47 47 } 48 48 … … 50 50 51 51 - (IBAction)cancelSheet:(id)sender { 52 [NSApp endSheet:[sender window] returnCode:NS AlertAlternateReturn];52 [NSApp endSheet:[sender window] returnCode:NSCancelButton]; 53 53 } 54 54 WiredAdditions/trunk/WIURL.h
r4952 r5102 34 34 NSString *_password; 35 35 NSString *_path; 36 NSString *_query; 36 37 } 37 38 … … 66 67 - (NSString *)pathExtension; 67 68 - (NSString *)lastPathComponent; 69 - (void)setQuery:(NSString *)query; 70 - (NSString *)query; 71 - (NSDictionary *)queryParameters; 68 72 69 73 @end WiredAdditions/trunk/WIURL.m
r5013 r5102 66 66 67 67 + (id)URLWithString:(NSString *)string scheme:(NSString *)defaultScheme { 68 NSString *scheme, *auth, *user, *password, *path ;68 NSString *scheme, *auth, *user, *password, *path, *query; 69 69 WIURL *url; 70 70 NSRange range; … … 131 131 [url setUser:user]; 132 132 [url setPassword:password]; 133 [url setPath:path]; 133 134 range = [path rangeOfString:@"?"]; 135 136 if(range.location == NSNotFound) { 137 [url setPath:path]; 138 } else { 139 query = [path substringFromIndex:range.location + 1]; 140 path = [path substringToIndex:range.location]; 141 142 [url setPath:path]; 143 [url setQuery:query]; 144 } 134 145 135 146 return url; … … 215 226 [_password release]; 216 227 [_path release]; 228 [_query release]; 217 229 218 230 [super dealloc]; … … 230 242 [url setPassword:[self password]]; 231 243 [url setPath:[self path]]; 244 [url setQuery:[self query]]; 232 245 233 246 return url; … … 247 260 WIDecode(coder, _password); 248 261 WIDecode(coder, _path); 262 WIDecode(coder, _query); 249 263 250 264 return self; … … 260 274 WIEncode(coder, _password); 261 275 WIEncode(coder, _path); 276 WIEncode(coder, _query); 262 277 } 263 278 … … 308 323 [string appendString:[[self path] stringByAddingURLPercentEscapes]]; 309 324 325 if([[self query] length] > 0) 326 [string appendFormat:@"?%@", [[self query] stringByAddingURLPercentEscapes]]; 327 310 328 return [string autorelease]; 311 329 } … … 331 349 [string appendString:[[self path] length] > 0 ? [self path] : @"/"]; 332 350 351 if([[self query] length] > 0) 352 [string appendFormat:@"?%@", [self query]]; 353 333 354 return [string autorelease]; 334 355 } … … 470 491 } 471 492 493 494 495 - (void)setQuery:(NSString *)value { 496 [value retain]; 497 [_query release]; 498 499 _query = value; 500 } 501 502 503 504 - (NSString *)query { 505 return _query; 506 } 507 508 509 510 - (NSDictionary *)queryParameters { 511 NSEnumerator *enumerator; 512 NSMutableDictionary *dictionary; 513 NSArray *parameters, *sides; 514 NSString *string; 515 516 dictionary = [NSMutableDictionary dictionary]; 517 parameters = [[self query] componentsSeparatedByCharactersFromSet:[NSCharacterSet characterSetWithCharactersInString:@"&;"]]; 518 enumerator = [parameters objectEnumerator]; 519 520 while((string = [enumerator nextObject])) { 521 sides = [string componentsSeparatedByString:@"="]; 522 523 if([sides count] == 2) 524 [dictionary setObject:[sides objectAtIndex:1] forKey:[sides objectAtIndex:0]]; 525 } 526 527 return dictionary; 528 } 529 472 530 @end
