mirror of
https://github.com/gnustep/libs-base.git
synced 2025-05-20 12:16:40 +00:00
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:
parent
4389bc18a3
commit
074a57a018
5 changed files with 511 additions and 268 deletions
|
@ -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
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue