adium / adium
Adium is a free instant messaging application for Mac OS X that can connect to AIM, MSN, Jabber, Yahoo, and more. This is the current development repository of Adium from version 1.4 onwards.
| commit 3104: | 45c784536ad3 |
| parent 3103: | 48e7afaa1ce5 |
| branch: | default |
Changed (Δ320 bytes):
Frameworks/AutoHyperlinks Framework/Source/AHHyperlinkScanner.m (2 lines added, 2 lines removed)
Frameworks/AutoHyperlinks Framework/Source/AHMarkedHyperlink.h (7 lines added, 10 lines removed)
Frameworks/AutoHyperlinks Framework/Source/AHMarkedHyperlink.m (48 lines added, 65 lines removed)
Up to file-list Frameworks/AutoHyperlinks Framework/Source/AHHyperlinkScanner.m:
317 |
317 |
} |
318 |
318 |
|
319 |
319 |
//make a marked link |
320 |
markedLink = [ |
|
320 |
markedLink = [AHMarkedHyperlink hyperlinkWithString:_scanString |
|
321 |
321 |
withValidationStatus:validStatus |
322 |
322 |
parentString:m_scanString |
323 |
andRange:scannedRange] |
|
323 |
andRange:scannedRange]; |
|
324 |
324 |
return [markedLink URL]? markedLink : nil; |
325 |
325 |
} |
326 |
326 |
Up to file-list Frameworks/AutoHyperlinks Framework/Source/AHMarkedHyperlink.h:
32 |
32 |
NSRange linkRange; |
33 |
33 |
NSURL *linkURL; |
34 |
34 |
NSString *pString; |
35 |
AH_URI_VERIFICATION_STATUS |
|
35 |
AH_URI_VERIFICATION_STATUS urlStatus; |
|
36 |
36 |
} |
37 |
37 |
|
38 |
@property(assign) NSRange range; |
|
39 |
@property(retain) NSURL *URL; |
|
40 |
@property(retain) NSString *parentString; |
|
41 |
@property(assign) AH_URI_VERIFICATION_STATUS validationStatus; |
|
42 |
||
43 |
+ (id)hyperlinkWithString:(NSString *)inString withValidationStatus:(AH_URI_VERIFICATION_STATUS)status parentString:(NSString *)pInString andRange:(NSRange)inRange; |
|
38 |
44 |
-(id)initWithString:(NSString *)inString withValidationStatus:(AH_URI_VERIFICATION_STATUS)status parentString:(NSString *)pInString andRange:(NSRange)inRange; |
39 |
-(NSString *)parentString; |
|
40 |
-(NSRange)range; |
|
41 |
-(NSURL *)URL; |
|
42 |
-(AH_URI_VERIFICATION_STATUS)validationStatus; |
|
43 |
45 |
|
44 |
-(void)setRange:(NSRange)inRange; |
|
45 |
-(void)setURL:(NSURL *)inURL; |
|
46 |
46 |
-(void)setURLFromString:(NSString *)inString; |
47 |
-(void)setValidationStatus:(AH_URI_VERIFICATION_STATUS)status; |
|
48 |
-(void)setParentString:(NSString *)pInString; |
|
49 |
||
50 |
47 |
|
51 |
48 |
@end |
Up to file-list Frameworks/AutoHyperlinks Framework/Source/AHMarkedHyperlink.m:
29 |
29 |
|
30 |
30 |
@implementation AHMarkedHyperlink |
31 |
31 |
|
32 |
@synthesize range = linkRange, URL = linkURL, parentString = pString, validationStatus = urlStatus; |
|
32 |
33 |
#pragma mark init and dealloc |
33 |
34 |
|
35 |
+ (id)hyperlinkWithString:(NSString *)inString |
|
36 |
withValidationStatus:(AH_URI_VERIFICATION_STATUS)status |
|
37 |
parentString:(NSString *)pInString |
|
38 |
andRange:(NSRange)inRange |
|
39 |
{ |
|
40 |
return [[[[self class] alloc] initWithString:inString |
|
41 |
withValidationStatus:status |
|
42 |
parentString:pInString |
|
43 |
andRange:inRange] autorelease]; |
|
44 |
} |
|
45 |
||
34 |
46 |
// one really big init method that does it all... |
35 |
- (id)initWithString:(NSString *)inString |
|
47 |
- (id)initWithString:(NSString *)inString |
|
48 |
withValidationStatus:(AH_URI_VERIFICATION_STATUS)status |
|
49 |
parentString:(NSString *)pInString |
|
50 |
andRange:(NSRange)inRange |
|
36 |
51 |
{ |
37 |
52 |
if((self = [self init])) { |
38 |
53 |
[self setURLFromString:inString]; |
39 |
linkRange = inRange; |
|
40 |
[self setParentString:pInString]; |
|
41 |
|
|
54 |
self.range = inRange; |
|
55 |
self.parentString = pInString; |
|
56 |
self.validationStatus = status; |
|
42 |
57 |
} |
43 |
58 |
|
44 |
59 |
return self; |
47 |
62 |
- (id)init |
48 |
63 |
{ |
49 |
64 |
if((self = [super init])){ |
50 |
linkURL = nil; |
|
51 |
pString = nil; |
|
65 |
self.range = NSMakeRange(0, 0); |
|
66 |
self.validationStatus = 0; |
|
67 |
self.parentString = nil; |
|
68 |
self.URL = nil; |
|
52 |
69 |
} |
53 |
||
70 |
||
54 |
71 |
return self; |
55 |
72 |
} |
56 |
73 |
|
57 |
74 |
- (void)dealloc |
58 |
75 |
{ |
59 |
[linkURL release]; |
|
60 |
[pString release]; |
|
76 |
self.range = NSMakeRange(0, 0); |
|
77 |
self.validationStatus = 0; |
|
78 |
self.parentString = nil; |
|
79 |
self.URL = nil; |
|
61 |
80 |
|
62 |
81 |
[super dealloc]; |
63 |
82 |
} |
64 |
83 |
|
65 |
#pragma mark Accessors |
|
66 |
||
67 |
- (NSRange)range |
|
68 |
{ |
|
69 |
return linkRange; |
|
70 |
} |
|
71 |
||
72 |
- (NSString *)parentString |
|
73 |
{ |
|
74 |
return pString; |
|
75 |
} |
|
76 |
||
77 |
- (NSURL *)URL |
|
78 |
{ |
|
79 |
return linkURL; |
|
80 |
} |
|
81 |
||
82 |
- (AH_URI_VERIFICATION_STATUS)validationStatus |
|
83 |
{ |
|
84 |
return urlStatus; |
|
85 |
} |
|
86 |
||
87 |
84 |
#pragma mark Transformers |
88 |
85 |
|
89 |
- (void)setRange:(NSRange)inRange |
|
90 |
{ |
|
91 |
linkRange = inRange; |
|
92 |
} |
|
93 |
||
94 |
- (void)setURL:(NSURL *)inURL |
|
95 |
{ |
|
96 |
if(linkURL != inURL){ |
|
97 |
[linkURL release]; |
|
98 |
linkURL = [inURL retain]; |
|
99 |
} |
|
100 |
} |
|
101 |
||
102 |
86 |
- (void)setURLFromString:(NSString *)inString |
103 |
87 |
{ |
104 |
88 |
NSString *linkString, *preString; |
114 |
98 |
NULL, |
115 |
99 |
kCFStringEncodingUTF8); // kCFStringEncodingISOLatin1 ); |
116 |
100 |
|
117 |
[linkURL release]; |
|
118 |
linkURL = [[NSURL alloc] initWithString:linkString]; |
|
101 |
self.URL = [[NSURL alloc] initWithString:linkString]; |
|
119 |
102 |
|
120 |
103 |
[linkString release]; |
121 |
104 |
if(preString) [preString release]; |
138 |
121 |
|
139 |
122 |
- (id)copyWithZone:(NSZone *)zone |
140 |
123 |
{ |
141 |
AHMarkedHyperlink *newLink = [[[self class] allocWithZone:zone] initWithString:[[self URL] absoluteString] |
|
142 |
withValidationStatus:[self validationStatus] |
|
143 |
parentString:[self parentString] |
|
144 |
andRange:[self range]]; |
|
124 |
AHMarkedHyperlink *newLink = [[[self class] allocWithZone:zone] initWithString:[self.URL absoluteString] |
|
125 |
withValidationStatus:self.validationStatus |
|
126 |
parentString:self.parentString |
|
127 |
andRange:self.range]; |
|
145 |
128 |
return newLink; |
146 |
129 |
} |
147 |
130 |
|
149 |
132 |
- (BOOL)doesContain:(id)object |
150 |
133 |
{ |
151 |
134 |
if([object isKindOfClass:[NSURL class]]) |
152 |
return [(NSURL *)object isEqualTo: |
|
135 |
return [(NSURL *)object isEqualTo:self.URL]? YES : NO; |
|
153 |
136 |
if([object isKindOfClass:[NSString class]]) |
154 |
return [(NSString *)object isEqualTo: |
|
137 |
return [(NSString *)object isEqualTo:self.parentString]? YES : NO; |
|
155 |
138 |
|
156 |
139 |
return NO; |
157 |
140 |
} |
158 |
141 |
|
159 |
142 |
- (BOOL)isLike:(NSString *)aString |
160 |
143 |
{ |
161 |
return [[[self parentString] substringWithRange:[self range]] isLike:aString] || |
|
162 |
[[[self URL] absoluteString] isLike:aString]; |
|
144 |
return [[self.parentString substringWithRange:self.range] isLike:aString] || |
|
145 |
[[self.URL absoluteString] isLike:aString]; |
|
163 |
146 |
} |
164 |
147 |
|
165 |
148 |
- (BOOL)isCaseInsensitiveLike:(NSString *)aString |
166 |
149 |
{ |
167 |
return [[[self parentString] substringWithRange:[self range]] isCaseInsensitiveLike:aString] || |
|
168 |
[[[self URL] absoluteString] isCaseInsensitiveLike:aString]; |
|
150 |
return [[self.parentString substringWithRange:self.range] isCaseInsensitiveLike:aString] || |
|
151 |
[[self.URL absoluteString] isCaseInsensitiveLike:aString]; |
|
169 |
152 |
} |
170 |
153 |
|
171 |
154 |
- (BOOL)isEqualTo:(id)object |
172 |
155 |
{ |
173 |
156 |
if([object isKindOfClass:[AHMarkedHyperlink class]] && |
174 |
[(AHMarkedHyperlink *) object validationStatus] == [self validationStatus] && |
|
175 |
[(AHMarkedHyperlink *)object range].location == [self range].location && |
|
176 |
[(AHMarkedHyperlink *)object range].length == [self range].length && |
|
177 |
[[(AHMarkedHyperlink *)object parentString] isEqualTo:[self parentString]] && |
|
178 |
|
|
157 |
((AHMarkedHyperlink *)object).validationStatus == self.validationStatus && |
|
158 |
((AHMarkedHyperlink *)object).range.location == self.range.location && |
|
159 |
((AHMarkedHyperlink *)object).range.length == self.range.length && |
|
160 |
[((AHMarkedHyperlink *)object).parentString isEqualTo:self.parentString] && |
|
161 |
[((AHMarkedHyperlink *)object).URL isEqualTo:self.URL]) |
|
179 |
162 |
return YES; |
180 |
163 |
return NO; |
181 |
164 |
} |
183 |
166 |
- (BOOL)isGreaterThan:(id)object |
184 |
167 |
{ |
185 |
168 |
if([object isKindOfClass:[AHMarkedHyperlink class]]) |
186 |
return [[[object parentString] substringWithRange:[object range]] |
|
187 |
isGreaterThan:[[self parentString] substringWithRange:[self range]]]? YES : NO; |
|
169 |
return [[((AHMarkedHyperlink *)object).parentString substringWithRange:((AHMarkedHyperlink *)object).range] |
|
170 |
isGreaterThan:[self.parentString substringWithRange:self.range]]? YES : NO; |
|
188 |
171 |
return NO; |
189 |
172 |
} |
190 |
173 |
|
191 |
174 |
- (BOOL)isLessThan:(id)object |
192 |
175 |
{ |
193 |
176 |
if([object isKindOfClass:[NSURL class]]) |
194 |
return [(NSURL *)object isLessThan: |
|
177 |
return [(NSURL *)object isLessThan:self.URL]? YES : NO; |
|
195 |
178 |
if([object isKindOfClass:[NSString class]]) |
196 |
return [(NSString *)object isLessThan: |
|
179 |
return [(NSString *)object isLessThan:self.parentString]? YES : NO; |
|
197 |
180 |
return NO; |
198 |
181 |
} |
199 |
182 |
