Add some requests 10.6 methods ... untested.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33326 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
rfm 2011-06-17 11:45:28 +00:00
parent 4389bc18a3
commit 074a57a018
5 changed files with 511 additions and 268 deletions

View file

@ -23,12 +23,84 @@
*/
#ifndef GNUSTEP
#import "common.h"
#import "GNUstepBase/NSURL+GNUstepBase.h"
@implementation NSURL (GNUstepBaseAdditions)
- (id) initWithScheme: (NSString*)scheme
user: (NSString*)user
password: (NSString*)password
host: (NSString*)host
port: (NSNumber*)port
fullPath: (NSString*)fullPath
parameterString: (NSString*)parameterString
query: (NSString*)query
fragment: (NSString*)fragment
{
NSMutableString *urlString;
NSString *s;
urlString = [scheme mutableCopy];
[urlString appendString: @"://"];
if ([user length] > 0 || [password length] > 0)
{
if (nil == (s = user)) s = @"";
[urlString appendString:
[s stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]];
[urlString appendString: @":"];
if (nil == (s = password)) s = @"";
[urlString appendString:
[s stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]];
[urlString appendString: @"@"];
}
if ([host length] > 0)
{
[urlString appendString:
[s stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]];
}
if ([port intValue] > 0)
{
[urlString appendString: @":"];
[urlString appendFormat: @"%u", [port intValue]];
}
if (nil == (s = fullPath)) s = @"";
if ([s hasPrefix: @"/"] == NO)
{
[urlString appendString: @"/"];
}
[urlString appendString:
[s stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]];
if ([parameterString length] > 0)
{
[urlString appendString: @";"];
[urlString appendString: parameterString];
}
if ([query length] > 0)
{
[urlString appendString: @"?"];
[urlString appendString: query];
}
if ([fragment length] > 0)
{
[urlString appendString: @"#"];
[urlString appendString: fragment];
}
self = [self initWithString: urlString];
[urlString release];
return self;
}
@end
#ifndef GNUSTEP
@implementation NSURL (GNUstepBase)
/* For efficiency this is built in to the main library.
*/
- (NSString*) fullPath
{
NSRange r;
@ -50,6 +122,6 @@
return s;
}
@end
#endif