--- a/Frameworks/Adium Framework/Source/AIChat.m Mon May 21 21:42:19 2012 +0200
+++ b/Frameworks/Adium Framework/Source/AIChat.m Mon May 21 22:51:41 2012 +0200
@@ -385,21 +385,6 @@
-NSComparisonResult userListSort (id objectA, id objectB, void *context)
- AIChat *chat = (AIChat *)context;
- AIGroupChatFlags flagA = highestFlag([chat flagsForContact:objectA]), flagB = highestFlag([chat flagsForContact:objectB]);
- return NSOrderedAscending;
- } else if (flagA < flagB) {
- return NSOrderedDescending;
- return [[chat displayNameForContact:objectA] caseInsensitiveCompare:[chat displayNameForContact:objectB]];
* @brief Resorts our participants
@@ -407,7 +392,17 @@
- (void)resortParticipants
- [participatingContacts sortUsingFunction:userListSort context:self];
+ [participatingContacts sortUsingComparator:^(id objectA, id objectB){ + AIGroupChatFlags flagA = highestFlag([self flagsForContact:objectA]), flagB = highestFlag([self flagsForContact:objectB]); + return (NSComparisonResult)NSOrderedAscending; + } else if (flagA < flagB) { + return NSOrderedDescending; + return [[self displayNameForContact:objectA] localizedCaseInsensitiveCompare:[self displayNameForContact:objectB]]; --- a/Frameworks/Adium Framework/Source/AIEmoticon.m Mon May 21 21:42:19 2012 +0200
+++ b/Frameworks/Adium Framework/Source/AIEmoticon.m Mon May 21 22:51:41 2012 +0200
@@ -234,7 +234,7 @@
- (NSComparisonResult)compare:(AIEmoticon *)otherEmoticon
- return [name caseInsensitiveCompare:[otherEmoticon name]];
+ return [name localizedCaseInsensitiveCompare:[otherEmoticon name]]; --- a/Source/AIAppearancePreferencesPlugin.m Mon May 21 21:42:19 2012 +0200
+++ b/Source/AIAppearancePreferencesPlugin.m Mon May 21 22:51:41 2012 +0200
@@ -271,11 +271,6 @@
-NSInteger availableSetSort(NSDictionary *objectA, NSDictionary *objectB, void *context) {
- return [[objectA objectForKey:@"name"] caseInsensitiveCompare:[objectB objectForKey:@"name"]];
- (NSArray *)availableSetsWithExtension:(NSString *)extension fromFolder:(NSString *)folder
NSMutableArray *setArray = [NSMutableArray array];
@@ -307,7 +302,9 @@
- return [setArray sortedArrayUsingFunction:availableSetSort context:nil];
+ return [setArray sortedArrayUsingComparator:^(NSDictionary *objectA, NSDictionary *objectB){ + return [[objectA objectForKey:@"name"] localizedCaseInsensitiveCompare:[objectB objectForKey:@"name"]]; - (NSArray *)availableLayoutSets
--- a/Source/AIChatLog.m Mon May 21 21:42:19 2012 +0200
+++ b/Source/AIChatLog.m Mon May 21 22:51:41 2012 +0200
@@ -150,7 +150,7 @@
- (NSComparisonResult)compareTo:(AIChatLog *)inLog
- NSComparisonResult result = [to caseInsensitiveCompare:[inLog to]];
+ NSComparisonResult result = [to localizedCaseInsensitiveCompare:[inLog to]]; if (result == NSOrderedSame) {
NSTimeInterval interval = [date timeIntervalSinceDate:[inLog date]];
@@ -165,7 +165,7 @@
- (NSComparisonResult)compareToReverse:(AIChatLog *)inLog
- NSComparisonResult result = [[inLog to] caseInsensitiveCompare:to];
+ NSComparisonResult result = [[inLog to] localizedCaseInsensitiveCompare:to]; if (result == NSOrderedSame) {
NSTimeInterval interval = [date timeIntervalSinceDate:[inLog date]];
@@ -181,7 +181,7 @@
//Sort by From, then Date
- (NSComparisonResult)compareFrom:(AIChatLog *)inLog
- NSComparisonResult result = [from caseInsensitiveCompare:[inLog from]];
+ NSComparisonResult result = [from localizedCaseInsensitiveCompare:[inLog from]]; if (result == NSOrderedSame) {
NSTimeInterval interval = [date timeIntervalSinceDate:[inLog date]];
@@ -196,7 +196,7 @@
- (NSComparisonResult)compareFromReverse:(AIChatLog *)inLog
- NSComparisonResult result = [[inLog from] caseInsensitiveCompare:from];
+ NSComparisonResult result = [[inLog from] localizedCaseInsensitiveCompare:from]; if (result == NSOrderedSame) {
NSTimeInterval interval = [date timeIntervalSinceDate:[inLog date]];
@@ -213,7 +213,7 @@
//Sort by From, then Date
- (NSComparisonResult)compareService:(AIChatLog *)inLog
- NSComparisonResult result = [serviceClass caseInsensitiveCompare:inLog.serviceClass];
+ NSComparisonResult result = [serviceClass localizedCaseInsensitiveCompare:inLog.serviceClass]; if (result == NSOrderedSame) {
NSTimeInterval interval = [date timeIntervalSinceDate:inLog.date];
@@ -228,7 +228,7 @@
- (NSComparisonResult)compareServiceReverse:(AIChatLog *)inLog
- NSComparisonResult result = [inLog.serviceClass caseInsensitiveCompare:serviceClass];
+ NSComparisonResult result = [inLog.serviceClass localizedCaseInsensitiveCompare:serviceClass]; if (result == NSOrderedSame) {
NSTimeInterval interval = [date timeIntervalSinceDate:inLog.date];
@@ -253,7 +253,7 @@
} else if (interval > 0) {
result = NSOrderedDescending;
- result = [to caseInsensitiveCompare:[inLog to]];
+ result = [to localizedCaseInsensitiveCompare:[inLog to]]; @@ -268,7 +268,7 @@
} else if (interval > 0) {
result = NSOrderedDescending;
- result = [[inLog to] caseInsensitiveCompare:to];
+ result = [[inLog to] localizedCaseInsensitiveCompare:to]; @@ -284,7 +284,7 @@
} else if (rankingPercentage < otherRankingPercentage) {
result = NSOrderedAscending;
- result = [to caseInsensitiveCompare:[inLog to]];
+ result = [to localizedCaseInsensitiveCompare:[inLog to]]; @@ -299,7 +299,7 @@
} else if (rankingPercentage < otherRankingPercentage) {
result = NSOrderedDescending;
- result = [[inLog to] caseInsensitiveCompare:to];
+ result = [[inLog to] localizedCaseInsensitiveCompare:to]; --- a/Source/AIContactController.m Mon May 21 21:42:19 2012 +0200
+++ b/Source/AIContactController.m Mon May 21 22:51:41 2012 +0200
@@ -970,12 +970,6 @@
group:PREF_GROUP_CONTACT_LIST];
-//Sort list objects alphabetically by their display name
-NSInteger contactDisplayNameSort(AIListObject *objectA, AIListObject *objectB, void *context)
- return [objectA.displayName caseInsensitiveCompare:objectB.displayName];
#pragma mark Preference observing
* @brief Preferences changed
--- a/Source/AILogViewerWindowController.m Mon May 21 21:42:19 2012 +0200
+++ b/Source/AILogViewerWindowController.m Mon May 21 22:51:41 2012 +0200
@@ -129,8 +129,6 @@
@implementation AILogViewerWindowController
-static NSInteger toArraySort(id itemA, id itemB, void *context);
+ (NSOperationQueue *)sharedLogViewerQueue
static NSOperationQueue *logViewerQueue = nil;
@@ -382,7 +380,15 @@
- [toArray sortUsingFunction:toArraySort context:NULL];
+ [toArray sortUsingComparator:^(id itemA, id itemB){ + NSString *nameA = [self outlineView:nil objectValueForTableColumn:nil byItem:itemA]; + NSString *nameB = [self outlineView:nil objectValueForTableColumn:nil byItem:itemB]; + NSComparisonResult result = [nameA localizedCaseInsensitiveCompare:nameB]; + if (result == NSOrderedSame) result = [nameA compare:nameB]; [outlineView_contacts reloadData];
if (!isOpeningForContact) {
@@ -2251,17 +2257,6 @@
-static NSInteger toArraySort(id itemA, id itemB, void *context)
- AILogViewerWindowController *sharedLogViewerInstance = [AILogViewerWindowController existingWindowController];
- NSString *nameA = [sharedLogViewerInstance outlineView:nil objectValueForTableColumn:nil byItem:itemA];
- NSString *nameB = [sharedLogViewerInstance outlineView:nil objectValueForTableColumn:nil byItem:itemB];
- NSComparisonResult result = [nameA caseInsensitiveCompare:nameB];
- if (result == NSOrderedSame) result = [nameA compare:nameB];
#pragma mark Split View Delegate
- (CGFloat)splitView:(NSSplitView *)splitView constrainMaxCoordinate:(CGFloat)proposedMax ofSubviewAt:(NSInteger)dividerIndex
--- a/Source/AIXtrasManager.m Mon May 21 21:42:19 2012 +0200
+++ b/Source/AIXtrasManager.m Mon May 21 22:51:41 2012 +0200
@@ -110,7 +110,7 @@
NSInteger categorySort(id categoryA, id categoryB, void * context)
- return [[categoryA objectForKey:@"Name"] caseInsensitiveCompare:[categoryB objectForKey:@"Name"]];
+ return [[categoryA objectForKey:@"Name"] localizedCaseInsensitiveCompare:[categoryB objectForKey:@"Name"]]; --- a/Source/ESContactAlertsController.m Mon May 21 21:42:19 2012 +0200
+++ b/Source/ESContactAlertsController.m Mon May 21 22:51:41 2012 +0200
@@ -210,48 +210,6 @@
- * @brief Sort event IDs by group and then by global short description
-NSInteger eventIDSort(id objectA, id objectB, void *context) {
- NSInteger groupA, groupB;
- id <AIEventHandler> eventHandlerA;
- id <AIEventHandler> eventHandlerB;
- //Determine the group of the first event ID
- for (groupA = 0; groupA < EVENT_HANDLER_GROUP_COUNT; groupA++) {
- eventHandlerA = [eventHandlersByGroup[groupA] objectForKey:objectA];
- eventHandlerA = [globalOnlyEventHandlersByGroup[groupA] objectForKey:objectA];
- if (eventHandlerA) break;
- //Determine the group of the second ID
- for (groupB = 0; groupB < EVENT_HANDLER_GROUP_COUNT; groupB++) {
- eventHandlerB = [eventHandlersByGroup[groupB] objectForKey:objectB];
- eventHandlerB = [globalOnlyEventHandlersByGroup[groupB] objectForKey:objectB];
- if (eventHandlerB) break;
- return NSOrderedAscending;
- } else if (groupB < groupA) {
- return NSOrderedDescending;
- NSString *descriptionA = [eventHandlerA globalShortDescriptionForEventID:objectA];
- NSString *descriptionB = [eventHandlerA globalShortDescriptionForEventID:objectB];
- return ([descriptionA caseInsensitiveCompare:descriptionB]);
* @brief Sort an array of event IDs
* @brief inArray The array of eventIDs to sort
@@ -259,7 +217,44 @@
- (NSArray *)sortedArrayOfEventIDsFromArray:(NSArray *)inArray
- return [inArray sortedArrayUsingFunction:eventIDSort context:NULL];
+ return [inArray sortedArrayUsingComparator:^(id objectA, id objectB){ + NSInteger groupA, groupB; + id <AIEventHandler> eventHandlerA; + id <AIEventHandler> eventHandlerB; + //Determine the group of the first event ID + for (groupA = 0; groupA < EVENT_HANDLER_GROUP_COUNT; groupA++) { + eventHandlerA = [eventHandlersByGroup[groupA] objectForKey:objectA]; + eventHandlerA = [globalOnlyEventHandlersByGroup[groupA] objectForKey:objectA]; + if (eventHandlerA) break; + //Determine the group of the second ID + for (groupB = 0; groupB < EVENT_HANDLER_GROUP_COUNT; groupB++) { + eventHandlerB = [eventHandlersByGroup[groupB] objectForKey:objectB]; + eventHandlerB = [globalOnlyEventHandlersByGroup[groupB] objectForKey:objectB]; + if (eventHandlerB) break; + return (NSComparisonResult)NSOrderedAscending; + } else if (groupB < groupA) { + return NSOrderedDescending; + NSString *descriptionA = [eventHandlerA globalShortDescriptionForEventID:objectA]; + NSString *descriptionB = [eventHandlerA globalShortDescriptionForEventID:objectB]; + return ([descriptionA localizedCaseInsensitiveCompare:descriptionB]); --- a/Source/ESStatusSort.m Mon May 21 21:42:19 2012 +0200
+++ b/Source/ESStatusSort.m Mon May 21 22:51:41 2012 +0200
@@ -728,19 +728,19 @@
NSArray *componentsA = [displayNameA componentsSeparatedByString:space];
NSArray *componentsB = [displayNameB componentsSeparatedByString:space];
- returnValue = [[componentsA lastObject] caseInsensitiveCompare:[componentsB lastObject]];
+ returnValue = [[componentsA lastObject] localizedCaseInsensitiveCompare:[componentsB lastObject]]; //If the last names are the same, compare the whole object, which will amount to sorting these objects
if (returnValue == NSOrderedSame) {
- returnValue = [displayNameA caseInsensitiveCompare:displayNameB];
+ returnValue = [displayNameA localizedCaseInsensitiveCompare:displayNameB]; if (returnValue == NSOrderedSame) {
- returnValue = [[objectA internalObjectID] caseInsensitiveCompare:[objectB internalObjectID]];
+ returnValue = [[objectA internalObjectID] localizedCaseInsensitiveCompare:[objectB internalObjectID]]; - returnValue = [[objectA longDisplayName] caseInsensitiveCompare:[objectB longDisplayName]];
+ returnValue = [[objectA longDisplayName] localizedCaseInsensitiveCompare:[objectB longDisplayName]]; if (returnValue == NSOrderedSame) {
- returnValue = [[objectA internalObjectID] caseInsensitiveCompare:[objectB internalObjectID]];
+ returnValue = [[objectA internalObjectID] localizedCaseInsensitiveCompare:[objectB internalObjectID]];