adium 2342:ab11a97f4fa8: Fix retweeting links featuring a & and ...
commits at adium.im
commits at adium.im
Tue May 26 18:02:51 UTC 2009
details: http://hg.adium.im/adium/rev/ab11a97f4fa8
revision: 2342:ab11a97f4fa8
author: Zachary West <zacw at adium.im>
date: Tue May 26 14:02:43 2009 -0400
Fix retweeting links featuring a & and =. Fixes #12217.
Adds a "stringByAddingPercentEscapesForAllCharacters" to NSString, which replaces all characters it normally does, along with the "valid" URL characters in ";/$?:@&=+$,".
diffstat:
ChangeLogs/Changes Between Betas.txt | 1 +
Frameworks/AIUtilities Framework/Source/AIStringAdditions.h | 2 ++
Frameworks/AIUtilities Framework/Source/AIStringAdditions.m | 14 ++++++++++++++
Plugins/Twitter Plugin/AITwitterAccount.m | 6 +++---
4 files changed, 20 insertions(+), 3 deletions(-)
diffs (75 lines):
diff -r 9c4cd87e3530 -r ab11a97f4fa8 ChangeLogs/Changes Between Betas.txt
--- a/ChangeLogs/Changes Between Betas.txt Tue May 26 13:37:48 2009 -0400
+++ b/ChangeLogs/Changes Between Betas.txt Tue May 26 14:02:43 2009 -0400
@@ -3,5 +3,6 @@
* Fixed a crash/hang when moving a contact from a meta contact into a group.
* Fixed a crash caused by setting the status message via AppleScript (#12219).
* Fixed indeterminate errors if you provide a space in an IRC account's NickServ password.
+ * Fixed retweeting or deleting tweets featuring any of: ;/?:@&=+$, (#12217)
* Changed behavior when moving a contact between groups, fixing a bug in protocols which don't support multiple groups.
* Changed behavior when moving a contact into a meta contact: the contact is moved into the meta contact's groups.
\ No newline at end of file
diff -r 9c4cd87e3530 -r ab11a97f4fa8 Frameworks/AIUtilities Framework/Source/AIStringAdditions.h
--- a/Frameworks/AIUtilities Framework/Source/AIStringAdditions.h Tue May 26 13:37:48 2009 -0400
+++ b/Frameworks/AIUtilities Framework/Source/AIStringAdditions.h Tue May 26 14:02:43 2009 -0400
@@ -55,6 +55,8 @@
- (NSString *)stringByEscapingForShell;
//- (BOOL)isURLEncoded;
+- (NSString *)stringByAddingPercentEscapesForAllCharacters;
+
/*examples:
* receiver result
* ======== ======
diff -r 9c4cd87e3530 -r ab11a97f4fa8 Frameworks/AIUtilities Framework/Source/AIStringAdditions.m
--- a/Frameworks/AIUtilities Framework/Source/AIStringAdditions.m Tue May 26 13:37:48 2009 -0400
+++ b/Frameworks/AIUtilities Framework/Source/AIStringAdditions.m Tue May 26 14:02:43 2009 -0400
@@ -821,4 +821,18 @@
return [[NSDecimalNumber decimalNumberWithString:self] unsignedLongLongValue];
}
+- (NSString *)stringByAddingPercentEscapesForAllCharacters
+{
+ // RFC 2396:
+ // reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | ","
+
+ NSString *string = (NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,
+ (CFStringRef)self,
+ NULL,
+ (CFStringRef)@";/?:@&=+$",
+ kCFStringEncodingUTF8);
+
+ return [string autorelease];
+}
+
@end
diff -r 9c4cd87e3530 -r ab11a97f4fa8 Plugins/Twitter Plugin/AITwitterAccount.m
--- a/Plugins/Twitter Plugin/AITwitterAccount.m Tue May 26 13:37:48 2009 -0400
+++ b/Plugins/Twitter Plugin/AITwitterAccount.m Tue May 26 14:02:43 2009 -0400
@@ -1380,7 +1380,7 @@
linkAddress = [self addressForLinkType:AITwitterLinkRetweet
userID:userID
statusID:tweetID
- context:[inMessage stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
+ context:[inMessage stringByAddingPercentEscapesForAllCharacters]];
[mutableMessage appendAttributedString:[self attributedStringWithLinkLabel:@"RT"
linkDestination:linkAddress
@@ -1409,7 +1409,7 @@
linkAddress = [self addressForLinkType:AITwitterLinkDestroyStatus
userID:userID
statusID:tweetID
- context:[inMessage stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
+ context:[inMessage stringByAddingPercentEscapesForAllCharacters]];
[mutableMessage appendAttributedString:[self attributedStringWithLinkLabel:@"\u232B"
linkDestination:linkAddress
@@ -1475,7 +1475,7 @@
NSString *linkAddress = [self addressForLinkType:AITwitterLinkDestroyDM
userID:sourceUID
statusID:dmID
- context:[inMessage stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
+ context:[inMessage stringByAddingPercentEscapesForAllCharacters]];
[mutableMessage appendAttributedString:[self attributedStringWithLinkLabel:@"\u232B"
linkDestination:linkAddress
More information about the commits
mailing list