mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-23 00:41:02 +00:00
Implementation of NSURLComponents
This commit is contained in:
parent
8771837ff8
commit
3bdaaefc82
3 changed files with 207 additions and 170 deletions
|
@ -670,8 +670,8 @@ GS_NSURLComponents_IVARS;
|
|||
- (void) setPassword: (NSString *)password;
|
||||
- (NSString *) path;
|
||||
- (void) setPath: (NSString *)path;
|
||||
- (NSString *) port;
|
||||
- (void) setPort: (NSString *)port;
|
||||
- (NSNumber *) port;
|
||||
- (void) setPort: (NSNumber *)port;
|
||||
- (NSString *) query;
|
||||
- (void) setQuery: (NSString *)query;
|
||||
#if OS_API_VERSION(MAC_OS_X_VERSION_10_10, GS_API_LATEST)
|
||||
|
@ -692,8 +692,6 @@ GS_NSURLComponents_IVARS;
|
|||
- (void) setPercentEncodedPassword: (NSString *)password;
|
||||
- (NSString *) percentEncodedPath;
|
||||
- (void) setPercentEncodedPath: (NSString *)path;
|
||||
- (NSString *) percentEncodedPort;
|
||||
- (void) setPercentEncodedPort: (NSString *)port;
|
||||
- (NSString *) percentEncodedQuery;
|
||||
- (void) setPercentEncodedQuery: (NSString *)query;
|
||||
#if OS_API_VERSION(MAC_OS_X_VERSION_10_10, GS_API_LATEST)
|
||||
|
@ -712,9 +710,6 @@ GS_NSURLComponents_IVARS;
|
|||
- (NSRange) rangeOfPath;
|
||||
- (NSRange) rangeOfPort;
|
||||
- (NSRange) rangeOfQuery;
|
||||
#if OS_API_VERSION(MAC_OS_X_VERSION_10_10, GS_API_LATEST)
|
||||
- (NSRange) rangeOfQueryItems;
|
||||
#endif
|
||||
- (NSRange) rangeOfScheme;
|
||||
- (NSRange) rangeOfUser;
|
||||
|
||||
|
|
|
@ -1,114 +0,0 @@
|
|||
/* Definition of class NSURLComponents
|
||||
Copyright (C) 2019 Free Software Foundation, Inc.
|
||||
|
||||
Written by: Gregory Casamento <greg.casamento@gmail.com>
|
||||
Date: July 2019
|
||||
|
||||
This file is part of the GNUstep Library.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free
|
||||
Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02111 USA.
|
||||
*/
|
||||
|
||||
#ifndef _NSURLComponents_h_GNUSTEP_BASE_INCLUDE
|
||||
#define _NSURLComponents_h_GNUSTEP_BASE_INCLUDE
|
||||
#import <GNUstepBase/GSVersionMacros.h>
|
||||
|
||||
#import <Foundation/NSObject.h>
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
@class NSString, NSDictionary, NSArray;
|
||||
|
||||
#if OS_API_VERSION(MAC_OS_X_VERSION_10_9, GS_API_LATEST)
|
||||
|
||||
@interface NSURLComponents : NSObject <NSCopying>
|
||||
{
|
||||
#if GS_EXPOSE(NSURLComponents)
|
||||
#endif
|
||||
#if GS_NONFRAGILE
|
||||
# if defined(GS_NSURLComponents_IVARS)
|
||||
@public
|
||||
GS_NSURLComponents_IVARS;
|
||||
# endif
|
||||
#else
|
||||
/* Pointer to private additional data used to avoid breaking ABI
|
||||
* when we don't have the non-fragile ABI available.
|
||||
* Use this mechanism rather than changing the instance variable
|
||||
* layout (see Source/GSInternal.h for details).
|
||||
*/
|
||||
@private id _internal GS_UNUSED_IVAR;
|
||||
#endif
|
||||
}
|
||||
// Creating URL components...
|
||||
+ (instancetype) componentsWithString:(NSString *)URLString;
|
||||
+ (instancetype) componentsWithURL:(NSURL *)url
|
||||
resolvingAgainstBaseURL:(BOOL)resolve;
|
||||
- (instancetype) init;
|
||||
- (instancetype)initWithString:(NSString *)URLString;
|
||||
|
||||
- (instancetype)initWithURL:(NSURL *)url
|
||||
resolvingAgainstBaseURL:(BOOL)resolve;
|
||||
|
||||
// Getting the URL
|
||||
- (NSString *) string;
|
||||
- (void) setString: (NSString *)urlString;
|
||||
- (NSURL *) URL;
|
||||
- (void) setURL: (NSURL *)url;
|
||||
- (NSURL *)URLRelativeToURL: (NSURL *)baseURL;
|
||||
|
||||
// Accessing Components in Native Format
|
||||
- (NSString *) fragment;
|
||||
- (void) setFragment: (NSString *)fragment;
|
||||
- (NSString *) host;
|
||||
- (void) setHost: (NSString *)host;
|
||||
- (NSString *) password;
|
||||
- (void) setPassword: (NSString *)password;
|
||||
- (NSString *) path;
|
||||
- (void) setPath: (NSString *)path;
|
||||
- (NSString *) port;
|
||||
- (void) setPort: (NSString *)port;
|
||||
- (NSString *) query;
|
||||
- (void) setQuery: (NSString *)query;
|
||||
- (NSArray *) queryItems;
|
||||
- (void) setQueryItems: (NSArray *)queryItems;
|
||||
- (NSString *) scheme;
|
||||
- (void) setScheme: (NSString *)scheme;
|
||||
- (NSString *) user;
|
||||
- (void) setUser: (NSString *)user;
|
||||
|
||||
// Locating components of the URL string representation
|
||||
- (NSRange) rangeOfFragment;
|
||||
- (NSRange) rangeOfHost;
|
||||
- (NSRange) rangeOfPassword;
|
||||
- (NSRange) rangeOfPath;
|
||||
- (NSRange) rangeOfPort;
|
||||
- (NSRange) rangeOfQuery;
|
||||
- (NSRange) rangeOfQueryItems;
|
||||
- (NSRange) rangeOfScheme;
|
||||
- (NSRange) rangeOfUser;
|
||||
|
||||
@end
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* GS_API_MACOSX */
|
||||
|
||||
#endif /* _NSURLComponents_h_GNUSTEP_BASE_INCLUDE */
|
||||
|
254
Source/NSURL.m
254
Source/NSURL.m
|
@ -36,6 +36,41 @@ function may be incorrect
|
|||
* I've put 2 functions to make tests. You can add your own tests
|
||||
* Some functions are not implemented
|
||||
*/
|
||||
|
||||
#define GS_NSURLQueryItem_IVARS \
|
||||
NSString *_name; \
|
||||
NSString *_value;
|
||||
|
||||
#define GS_NSURLComponents_IVARS \
|
||||
NSURL *_url; \
|
||||
NSString *_fragment; \
|
||||
NSString *_host; \
|
||||
NSString *_password; \
|
||||
NSString *_path; \
|
||||
NSNumber *_port; \
|
||||
NSString *_query; \
|
||||
NSArray *_queryItems; \
|
||||
NSString *_scheme; \
|
||||
NSString *_user; \
|
||||
NSString *_percentEncodedFragment; \
|
||||
NSString *_percentEncodedHost; \
|
||||
NSString *_percentEncodedPassword; \
|
||||
NSString *_percentEncodedPath; \
|
||||
NSNumber *_percentEncodedPort; \
|
||||
NSString *_percentEncodedQuery; \
|
||||
NSArray *_percentEncodedQueryItems; \
|
||||
NSString *_percentEncodedScheme; \
|
||||
NSString *_percentEncodedUser; \
|
||||
NSRange _rangeOfFragment; \
|
||||
NSRange _rangeOfHost; \
|
||||
NSRange _rangeOfPassword; \
|
||||
NSRange _rangeOfPath; \
|
||||
NSRange _rangeOfPort; \
|
||||
NSRange _rangeOfQuery; \
|
||||
NSRange _rangeOfQueryItems; \
|
||||
NSRange _rangeOfScheme; \
|
||||
NSRange _rangeOfUser;
|
||||
|
||||
#import "common.h"
|
||||
#define EXPOSE_NSURL_IVARS 1
|
||||
#import "Foundation/NSArray.h"
|
||||
|
@ -52,9 +87,14 @@ function may be incorrect
|
|||
#import "Foundation/NSURL.h"
|
||||
#import "Foundation/NSURLHandle.h"
|
||||
#import "Foundation/NSValue.h"
|
||||
#import "Foundation/NSCharacterSet.h"
|
||||
#import "Foundation/NSString.h"
|
||||
|
||||
#import "GNUstepBase/NSURL+GNUstepBase.h"
|
||||
|
||||
#define GSInternal NSURLComponentsInternal
|
||||
#include "GSInternal.h"
|
||||
GS_PRIVATE_INTERNAL(NSURLComponents)
|
||||
|
||||
NSString * const NSURLErrorDomain = @"NSURLErrorDomain";
|
||||
NSString * const NSErrorFailingURLStringKey = @"NSErrorFailingURLStringKey";
|
||||
|
@ -2159,54 +2199,167 @@ static NSUInteger urlAlign;
|
|||
return nil;
|
||||
}
|
||||
|
||||
- (id) initWithCoder: (NSCoder *)acoder
|
||||
{
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (void) encodeWithCoder: (NSCoder *)acoder
|
||||
{
|
||||
}
|
||||
|
||||
- (id) copyWithZone: (NSZone *)zone
|
||||
{
|
||||
return nil;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation NSURLComponents
|
||||
|
||||
// Creating URL components...
|
||||
+ (instancetype) componentsWithString:(NSString *)URLString
|
||||
+ (instancetype) componentsWithString:(NSString *)urlString
|
||||
{
|
||||
return nil;
|
||||
return [[NSURLComponents alloc] initWithString: urlString];
|
||||
}
|
||||
|
||||
+ (instancetype) componentsWithURL:(NSURL *)url
|
||||
resolvingAgainstBaseURL:(BOOL)resolve
|
||||
{
|
||||
return nil;
|
||||
return [[NSURLComponents alloc] initWithURL: url
|
||||
resolvingAgainstBaseURL: resolve];
|
||||
}
|
||||
|
||||
- (instancetype) init
|
||||
{
|
||||
return nil;
|
||||
self = [super init];
|
||||
if (self != nil)
|
||||
{
|
||||
GS_CREATE_INTERNAL(NSURLComponents);
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (instancetype)initWithString:(NSString *)URLString
|
||||
{
|
||||
return nil;
|
||||
self = [self init];
|
||||
if (self != nil)
|
||||
{
|
||||
[self setString: URLString];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (instancetype)initWithURL:(NSURL *)url
|
||||
resolvingAgainstBaseURL:(BOOL)resolve
|
||||
{
|
||||
return nil;
|
||||
NSURL *tempURL = url;
|
||||
self = [self init];
|
||||
if (self != nil)
|
||||
{
|
||||
if (resolve)
|
||||
{
|
||||
tempURL = [url absoluteURL];
|
||||
}
|
||||
[self setURL: tempURL];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void) dealloc
|
||||
{
|
||||
RELEASE(internal->_url);
|
||||
RELEASE(internal->_fragment);
|
||||
RELEASE(internal->_host);
|
||||
RELEASE(internal->_password);
|
||||
RELEASE(internal->_path);
|
||||
RELEASE(internal->_port);
|
||||
RELEASE(internal->_query);
|
||||
RELEASE(internal->_queryItems);
|
||||
RELEASE(internal->_scheme);
|
||||
RELEASE(internal->_user);
|
||||
RELEASE(internal->_percentEncodedFragment);
|
||||
RELEASE(internal->_percentEncodedHost);
|
||||
RELEASE(internal->_percentEncodedPassword);
|
||||
RELEASE(internal->_percentEncodedPath);
|
||||
RELEASE(internal->_percentEncodedPort);
|
||||
RELEASE(internal->_percentEncodedQuery);
|
||||
RELEASE(internal->_percentEncodedQueryItems);
|
||||
RELEASE(internal->_percentEncodedScheme);
|
||||
RELEASE(internal->_percentEncodedUser);
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (id) copyWithZone: (NSZone *)zone
|
||||
{
|
||||
return [[NSURLComponents allocWithZone: zone] initWithURL: [self URL]
|
||||
resolvingAgainstBaseURL: NO];
|
||||
}
|
||||
|
||||
// Getting the URL
|
||||
- (NSString *) string
|
||||
{
|
||||
return nil;
|
||||
return [internal->_url absoluteString];
|
||||
}
|
||||
|
||||
- (void) setString: (NSString *)urlString
|
||||
{
|
||||
NSURL *url = [NSURL URLWithString: urlString];
|
||||
[self setURL: url];
|
||||
}
|
||||
|
||||
- (NSURL *) URL
|
||||
{
|
||||
return nil;
|
||||
return internal->_url;
|
||||
}
|
||||
|
||||
- (void) setURL: (NSURL *)url
|
||||
{
|
||||
ASSIGN(_url, url);
|
||||
|
||||
// components...
|
||||
[self setFragment: [url fragment]];
|
||||
[self setHost: [url host]];
|
||||
[self setPassword: [url password]];
|
||||
[self setPath: [url path]];
|
||||
[self setPort: [url port]];
|
||||
[self setQuery: [url query]];
|
||||
[self setScheme: [url scheme]];
|
||||
[self setUser: [url user]];
|
||||
|
||||
// Percent encoded portions...
|
||||
[self setPercentEncodedFragment:
|
||||
[[url fragment] stringByAddingPercentEncodingWithAllowedCharacters:
|
||||
[NSCharacterSet URLFragmentAllowedCharacterSet]]];
|
||||
[self setPercentEncodedHost:
|
||||
[[url host] stringByAddingPercentEncodingWithAllowedCharacters:
|
||||
[NSCharacterSet URLHostAllowedCharacterSet]]];
|
||||
[self setPercentEncodedPassword:
|
||||
[[url password] stringByAddingPercentEncodingWithAllowedCharacters:
|
||||
[NSCharacterSet URLPasswordAllowedCharacterSet]]];;
|
||||
[self setPercentEncodedPath:
|
||||
[[url path] stringByAddingPercentEncodingWithAllowedCharacters:
|
||||
[NSCharacterSet URLPathAllowedCharacterSet]]];
|
||||
[self setPercentEncodedQuery:
|
||||
[[url query] stringByAddingPercentEncodingWithAllowedCharacters:
|
||||
[NSCharacterSet URLQueryAllowedCharacterSet]]];
|
||||
[self setPercentEncodedScheme:
|
||||
[[url scheme] stringByAddingPercentEncodingWithAllowedCharacters:
|
||||
[NSCharacterSet URLPathAllowedCharacterSet]]];
|
||||
[self setPercentEncodedUser:
|
||||
[[url user] stringByAddingPercentEncodingWithAllowedCharacters:
|
||||
[NSCharacterSet URLUserAllowedCharacterSet]]];;
|
||||
|
||||
// Find ranges
|
||||
_rangeOfFragment = [[url absoluteString] rangeOfString: internal->_fragment];
|
||||
_rangeOfHost = [[url absoluteString] rangeOfString: internal->_host];
|
||||
_rangeOfPassword = [[url absoluteString] rangeOfString: internal->_password];
|
||||
_rangeOfPath = [[url absoluteString] rangeOfString: internal->_path];
|
||||
_rangeOfPort = [[url absoluteString] rangeOfString: [internal->_port stringValue]];
|
||||
_rangeOfQuery = [[url absoluteString] rangeOfString: internal->_query];
|
||||
_rangeOfScheme = [[url absoluteString] rangeOfString: internal->_scheme];
|
||||
_rangeOfUser = [[url absoluteString] rangeOfString: internal->_user];
|
||||
}
|
||||
|
||||
- (NSURL *)URLRelativeToURL: (NSURL *)baseURL
|
||||
|
@ -2217,211 +2370,214 @@ static NSUInteger urlAlign;
|
|||
// Accessing Components in Native Format
|
||||
- (NSString *) fragment
|
||||
{
|
||||
return nil;
|
||||
return internal->_fragment;
|
||||
}
|
||||
|
||||
- (void) setFragment: (NSString *)fragment
|
||||
{
|
||||
ASSIGN(internal->_fragment, fragment);
|
||||
}
|
||||
|
||||
- (NSString *) host
|
||||
{
|
||||
return nil;
|
||||
return internal->_host;
|
||||
}
|
||||
|
||||
- (void) setHost: (NSString *)host
|
||||
{
|
||||
ASSIGN(internal->_host, host);
|
||||
}
|
||||
|
||||
- (NSString *) password
|
||||
{
|
||||
return nil;
|
||||
return internal->_password;
|
||||
}
|
||||
|
||||
- (void) setPassword: (NSString *)password
|
||||
{
|
||||
ASSIGN(internal->_password, password);
|
||||
}
|
||||
|
||||
- (NSString *) path
|
||||
{
|
||||
return nil;
|
||||
return internal->_path;
|
||||
}
|
||||
|
||||
- (void) setPath: (NSString *)path
|
||||
{
|
||||
ASSIGN(internal->_path, path);
|
||||
}
|
||||
|
||||
- (NSString *) port
|
||||
- (NSNumber *) port
|
||||
{
|
||||
return nil;
|
||||
return internal->_port;
|
||||
}
|
||||
|
||||
- (void) setPort: (NSString *)port
|
||||
- (void) setPort: (NSNumber *)port
|
||||
{
|
||||
ASSIGN(internal->_port, port);
|
||||
}
|
||||
|
||||
- (NSString *) query
|
||||
{
|
||||
return nil;
|
||||
return internal->_query;
|
||||
}
|
||||
|
||||
- (void) setQuery: (NSString *)query
|
||||
{
|
||||
ASSIGN(internal->_query, query);
|
||||
}
|
||||
|
||||
- (NSArray *) queryItems
|
||||
{
|
||||
return nil;
|
||||
return internal->_queryItems;
|
||||
}
|
||||
|
||||
- (void) setQueryItems: (NSArray *)queryItems
|
||||
{
|
||||
ASSIGN(internal->_queryItems, queryItems);
|
||||
}
|
||||
|
||||
- (NSString *) scheme
|
||||
{
|
||||
return nil;
|
||||
return internal->_scheme;
|
||||
}
|
||||
|
||||
- (void) setScheme: (NSString *)scheme
|
||||
{
|
||||
ASSIGN(internal->_scheme, scheme);
|
||||
}
|
||||
|
||||
- (NSString *) user
|
||||
{
|
||||
return nil;
|
||||
return internal->_user;
|
||||
}
|
||||
|
||||
- (void) setUser: (NSString *)user
|
||||
{
|
||||
ASSIGN(internal->_user, user);
|
||||
}
|
||||
|
||||
// Accessing Components in PercentEncoded Format
|
||||
- (NSString *) percentEncodedFragment
|
||||
{
|
||||
return nil;
|
||||
return internal->_percentEncodedFragment;
|
||||
}
|
||||
|
||||
- (void) setPercentEncodedFragment: (NSString *)fragment
|
||||
{
|
||||
ASSIGN(internal->_percentEncodedFragment, fragment);
|
||||
}
|
||||
|
||||
- (NSString *) percentEncodedHost
|
||||
{
|
||||
return nil;
|
||||
return internal->_percentEncodedHost;
|
||||
}
|
||||
|
||||
- (void) setPercentEncodedHost: (NSString *)host
|
||||
{
|
||||
ASSIGN(internal->_percentEncodedHost, host);
|
||||
}
|
||||
|
||||
- (NSString *) percentEncodedPassword
|
||||
{
|
||||
return nil;
|
||||
return internal->_percentEncodedPassword;
|
||||
}
|
||||
|
||||
- (void) setPercentEncodedPassword: (NSString *)password
|
||||
{
|
||||
ASSIGN(internal->_percentEncodedPassword, password);
|
||||
}
|
||||
|
||||
- (NSString *) percentEncodedPath
|
||||
{
|
||||
return nil;
|
||||
return internal->_percentEncodedPath;
|
||||
}
|
||||
|
||||
- (void) setPercentEncodedPath: (NSString *)path
|
||||
{
|
||||
}
|
||||
|
||||
- (NSString *) percentEncodedPort
|
||||
{
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (void) setPercentEncodedPort: (NSString *)port
|
||||
{
|
||||
ASSIGN(internal->_percentEncodedPath, path);
|
||||
}
|
||||
|
||||
- (NSString *) percentEncodedQuery
|
||||
{
|
||||
return nil;
|
||||
return internal->_percentEncodedQuery;
|
||||
}
|
||||
|
||||
- (void) setPercentEncodedQuery: (NSString *)query
|
||||
{
|
||||
ASSIGN(internal->_percentEncodedQuery, query);
|
||||
}
|
||||
|
||||
- (NSArray *) percentEncodedQueryItems
|
||||
{
|
||||
return nil;
|
||||
return internal->_percentEncodedQueryItems;
|
||||
}
|
||||
|
||||
- (void) setPercentEncodedQueryItems: (NSArray *)queryItems
|
||||
{
|
||||
ASSIGN(internal->_percentEncodedQueryItems, queryItems);
|
||||
}
|
||||
|
||||
- (NSString *) percentEncodedScheme
|
||||
{
|
||||
return nil;
|
||||
return internal->_percentEncodedScheme;
|
||||
}
|
||||
|
||||
- (void) setPercentEncodedScheme: (NSString *)scheme
|
||||
{
|
||||
ASSIGN(internal->_percentEncodedScheme, scheme);
|
||||
}
|
||||
|
||||
- (NSString *) percentEncodedUser
|
||||
{
|
||||
return nil;
|
||||
return internal->_percentEncodedUser;;
|
||||
}
|
||||
|
||||
- (void) setPercentEncodedUser: (NSString *)user
|
||||
{
|
||||
ASSIGN(internal->_percentEncodedUser, user);
|
||||
}
|
||||
|
||||
// Locating components of the URL string representation
|
||||
- (NSRange) rangeOfFragment
|
||||
{
|
||||
return NSMakeRange(0,0);
|
||||
return internal->_rangeOfFragment;
|
||||
}
|
||||
|
||||
- (NSRange) rangeOfHost
|
||||
{
|
||||
return NSMakeRange(0,0);
|
||||
return internal->_rangeOfHost;
|
||||
}
|
||||
|
||||
- (NSRange) rangeOfPassword
|
||||
{
|
||||
return NSMakeRange(0,0);
|
||||
return internal->_rangeOfPassword;
|
||||
}
|
||||
|
||||
- (NSRange) rangeOfPath
|
||||
{
|
||||
return NSMakeRange(0,0);
|
||||
return internal->_rangeOfPath;
|
||||
}
|
||||
|
||||
- (NSRange) rangeOfPort
|
||||
{
|
||||
return NSMakeRange(0,0);
|
||||
return internal->_rangeOfPort;
|
||||
}
|
||||
|
||||
- (NSRange) rangeOfQuery
|
||||
{
|
||||
return NSMakeRange(0,0);
|
||||
}
|
||||
|
||||
- (NSRange) rangeOfQueryItems
|
||||
{
|
||||
return NSMakeRange(0,0);
|
||||
return internal->_rangeOfQuery;
|
||||
}
|
||||
|
||||
- (NSRange) rangeOfScheme
|
||||
{
|
||||
return NSMakeRange(0,0);
|
||||
return internal->_rangeOfScheme;
|
||||
}
|
||||
|
||||
- (NSRange) rangeOfUser
|
||||
{
|
||||
return NSMakeRange(0,0);
|
||||
return internal->_rangeOfUser;
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
Loading…
Reference in a new issue