adium-1.4 3587:94e9cae215e6: Implimenting fixes from http://hg.a...
commits at adium.im
commits at adium.im
Wed Aug 10 04:13:07 UTC 2011
details: http://hg.adium.im/adium-1.4/rev/94e9cae215e6
revision: 3587:94e9cae215e6
branch: (none)
author: Stephen Holt <sholt at adium.im>
date: Tue Aug 09 21:12:54 2011 -0700
Implimenting fixes from http://hg.adium.im/adium/rev/70a376ec444c and http://hg.adium.im/adium/rev/bfe93b6db274 for adium-1.4
diffs (70 lines):
diff -r f2617cde9403 -r 94e9cae215e6 Frameworks/AutoHyperlinks Framework/Source/AHMarkedHyperlink.m
--- a/Frameworks/AutoHyperlinks Framework/Source/AHMarkedHyperlink.m Fri Aug 05 02:10:01 2011 +0200
+++ b/Frameworks/AutoHyperlinks Framework/Source/AHMarkedHyperlink.m Tue Aug 09 21:12:54 2011 -0700
@@ -102,7 +102,7 @@
- (void)setURLFromString:(NSString *)inString
{
NSString *linkString, *preString;
-
+
preString = (NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAllocatorDefault,
(CFStringRef)inString,
CFSTR(""),
@@ -112,11 +112,33 @@
preString? (CFStringRef)preString : (CFStringRef)inString,
(CFStringRef)@"#[]",
NULL,
- kCFStringEncodingUTF8); // kCFStringEncodingISOLatin1 );
-
+ kCFStringEncodingUTF8);
[linkURL release];
linkURL = [[NSURL alloc] initWithString:linkString];
-
+ // Because -[NSURL URLWithString:(NSString*)inString] fails creating a link with 2 fragment hashes, but we don't want to escape the first one, we esape all '#' to "%23" then unescape the first back to '#'. rdar://9927055
+ if(!self.URL) {
+ [preString release]; preString = nil;
+ preString = (NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAllocatorDefault,
+ (CFStringRef)preString,
+ CFSTR(""),
+ kCFStringEncodingUTF8);
+ [linkString release]; linkString = nil;
+ linkString = (NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
+ preString? (CFStringRef)preString : (CFStringRef)inString,
+ (CFStringRef)@"[]",
+ NULL,
+ kCFStringEncodingUTF8);
+ NSRange fragmentRange = [linkString rangeOfString:@"%23"];
+ NSMutableString *mutaLinkString = nil;
+ if (fragmentRange.location != NSNotFound) {
+ mutaLinkString = [linkString mutableCopy];
+ [mutaLinkString replaceOccurrencesOfString:@"%23" withString:@"#" options:0 range:fragmentRange];
+ }
+ [linkURL release];
+ linkURL = [[NSURL alloc] initWithString:linkString];
+ [mutaLinkString release];
+ }
+
[linkString release];
if(preString) [preString release];
}
diff -r f2617cde9403 -r 94e9cae215e6 Frameworks/AutoHyperlinks Framework/UnitTests/HyperlinkContextTest.m
--- a/Frameworks/AutoHyperlinks Framework/UnitTests/HyperlinkContextTest.m Fri Aug 05 02:10:01 2011 +0200
+++ b/Frameworks/AutoHyperlinks Framework/UnitTests/HyperlinkContextTest.m Tue Aug 09 21:12:54 2011 -0700
@@ -13,7 +13,7 @@
AHHyperlinkScanner *scanner = [AHHyperlinkScanner hyperlinkScannerWithString:testString];
AHMarkedHyperlink *link = [scanner nextURI];
- STAssertNotNil(link, @"-[SHHyperlinkScanner nextURL] found no URI in \"%@\"", testString);
+ STAssertNotNil([link URL], @"-[SHHyperlinkScanner nextURL] found no URI in \"%@\"", testString);
STAssertEqualObjects([[link parentString] substringWithRange:[link range]], URIString, @"in context: '%@'", testString);
}
@@ -230,6 +230,8 @@
[self testLaxContext:@"%@" withURI:[NSString stringWithFormat:@"%@",@"http://example.com/hi%uthere"]]; //#11160
[self testURIEscaping:[NSString stringWithFormat:@"%@",@"http://www.google.com/search?q=foo%20bar"]]; //#12850
+
+ [self testLaxContext:@"%@ doesn't link." withURI:@"http://developer.apple.com/library/iOS/#documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaObjects/CocoaObjects.html#//apple_ref/doc/uid/TP40002974-CH4-SW3"];
}
- (void)testCompositeContext {
More information about the commits
mailing list