[maccode] r288 committed - Try unescaping a url first, then re-escape it. If, for some reason, u...

0 views
Skip to first unread message

codesite...@google.com

unread,
Aug 22, 2009, 6:56:57 PM8/22/09
to mac...@googlegroups.com
Revision: 288
Author: stephen.holt
Date: Sat Aug 22 15:56:19 2009
Log: Try unescaping a url first, then re-escape it. If, for some reason,
unescaping fails, fall back on the originating string.

http://code.google.com/p/maccode/source/detail?r=288

Modified:
/trunk/Utilities/AutoHyperlinks Framework/Source/AHMarkedHyperlink.m

=======================================
--- /trunk/Utilities/AutoHyperlinks Framework/Source/AHMarkedHyperlink.m
Wed Sep 3 19:22:12 2008
+++ /trunk/Utilities/AutoHyperlinks Framework/Source/AHMarkedHyperlink.m
Sat Aug 22 15:56:19 2009
@@ -101,18 +101,24 @@

- (void)setURLFromString:(NSString *)inString
{
- NSString *linkString;
-
+ NSString *linkString, *preString;
+
+ preString = (NSString
*)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAllocatorDefault,
+ (CFStringRef)inString,
+ CFSTR(""),
+ kCFStringEncodingUTF8);
+
linkString = (NSString
*)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
- (CFStringRef)inString,
- (CFStringRef)@"#%",
- NULL,
- kCFStringEncodingUTF8); //
kCFStringEncodingISOLatin1 );
-
+ preString? (CFStringRef)preString :
(CFStringRef)inString,
+ (CFStringRef)@"#[]",
+ NULL,
+ kCFStringEncodingUTF8); // kCFStringEncodingISOLatin1 );
+
[linkURL release];
linkURL = [[NSURL alloc] initWithString:linkString];
-
+
[linkString release];
+ if(preString) [preString release];
}

- (void)setValidationStatus:(AH_URI_VERIFICATION_STATUS)status

Reply all
Reply to author
Forward
0 new messages