adium 2097:7bbd5877796c: Fix the OTR menus by validating against...

commits at adium.im commits at adium.im
Wed May 6 19:33:02 UTC 2009


details:	http://hg.adium.im/adium/rev/7bbd5877796c
revision:	2097:7bbd5877796c
author:		Zachary West <zacw at adium.im>
date:		Wed May 06 15:29:12 2009 -0400

Fix the OTR menus by validating against the correct chat.
Subject: adium 2098:6fcd0b1bef55: Make the WKMV use original menu items instead of copies. Reference the chat we're creating the context menu for.

details:	http://hg.adium.im/adium/rev/6fcd0b1bef55
revision:	2098:6fcd0b1bef55
author:		Zachary West <zacw at adium.im>
date:		Wed May 06 15:32:36 2009 -0400

Make the WKMV use original menu items instead of copies. Reference the chat we're creating the context menu for.

This fixes a number of weird bugs or bad behaviores we create by suddenly saying "oh and the WKMV creates copies for no reason".
Subject: adium 2099:b1ff01f7278a: Automated merge with ssh://hg@hg.adiumx.com/adium

details:	http://hg.adium.im/adium/rev/b1ff01f7278a
revision:	2099:b1ff01f7278a
author:		Zachary West <zacw at adium.im>
date:		Wed May 06 15:32:54 2009 -0400

Automated merge with ssh://hg@hg.adiumx.com/adium

diffstat:

 Frameworks/AIUtilities Framework/Source/AIColorAdditions.m               |    2 +-
 Frameworks/AIUtilities Framework/Source/AIFileManagerAdditions.m         |    4 +-
 Frameworks/AIUtilities Framework/Source/AIFunctions.m                    |    8 +-
 Frameworks/AIUtilities Framework/Source/AIHostReachabilityMonitor.m      |    6 +-
 Frameworks/AIUtilities Framework/Source/AIKeychain.h                     |    2 +-
 Frameworks/AIUtilities Framework/Source/AIKeychain.m                     |    6 +-
 Frameworks/AIUtilities Framework/Source/AIPlasticButtonCell.m            |    2 +-
 Frameworks/AIUtilities Framework/Source/AIStringAdditions.m              |    6 +-
 Frameworks/AIUtilities Framework/Source/NSCalendarDate+ISO8601Parsing.m  |    4 +-
 Frameworks/Adium Framework/Source/AIAccountMenu.m                        |    4 +-
 Frameworks/Adium Framework/Source/AIContactMenu.m                        |    4 +-
 Frameworks/Adium Framework/Source/AIHTMLDecoder.m                        |    2 +-
 Frameworks/Adium Framework/Source/AIListContact.m                        |    2 +-
 Frameworks/Adium Framework/Source/AIListGroup.m                          |   20 +-
 Frameworks/Adium Framework/Source/AILocalizationButton.m                 |    2 +-
 Frameworks/Adium Framework/Source/AILocalizationButtonCell.m             |    2 +-
 Frameworks/Adium Framework/Source/AILocalizationTextField.m              |    2 +-
 Frameworks/Adium Framework/Source/ESDebugAILog.m                         |    4 +-
 Other/Adium Spotlight Importer/AdiumSpotlightImporter.h                  |    4 +-
 Other/Adium Spotlight Importer/GetMetadataForFile.m                      |    4 +-
 Other/Adium Spotlight Importer/main.c                                    |    6 +-
 Plugins/Bonjour/libezv/Classes/AWEzvContact.h                            |    5 +-
 Plugins/Bonjour/libezv/Classes/AWEzvContact.m                            |    9 +-
 Plugins/Bonjour/libezv/Other Sources/AWEzvSupportRoutines.m              |    4 +-
 Plugins/Bonjour/libezv/Private Classes/AWEzvContactManager.h             |    4 +-
 Plugins/Bonjour/libezv/Private Classes/AWEzvContactManagerListener.m     |    8 +-
 Plugins/Bonjour/libezv/Private Classes/AWEzvContactManagerRendezvous.m   |   28 +-
 Plugins/Bonjour/libezv/Private Classes/AWEzvXMLStream.h                  |   11 +-
 Plugins/Bonjour/libezv/Private Classes/AWEzvXMLStream.m                  |   17 +-
 Plugins/Purple Service/AIPurpleCertificateTrustWarningAlert.h            |    4 +-
 Plugins/Purple Service/AMPurpleJabberAdHocServer.h                       |    6 +-
 Plugins/Purple Service/AMPurpleJabberAdHocServer.m                       |    4 +-
 Plugins/Purple Service/AMPurpleJabberFormGenerator.h                     |    4 +-
 Plugins/Purple Service/AMPurpleJabberNode.h                              |   25 +-
 Plugins/Purple Service/AMPurpleJabberNode.m                              |  155 ++++-----
 Plugins/Purple Service/AMPurpleJabberServiceDiscoveryBrowserController.h |    7 +-
 Plugins/Purple Service/AMPurpleJabberServiceDiscoveryBrowsing.m          |    2 +-
 Plugins/Purple Service/AMXMLConsoleController.m                          |    2 +-
 Plugins/Purple Service/ESPurpleJabberAccount.m                           |    8 +-
 Plugins/Purple Service/ESPurpleJabberAccountViewController.m             |    2 +-
 Plugins/Purple Service/ESPurpleMSNAccount.h                              |    2 +-
 Plugins/Purple Service/PurpleCommon.h                                    |    2 +-
 Plugins/Purple Service/SLPurpleCocoaAdapter.h                            |    2 +-
 Plugins/Purple Service/SLPurpleCocoaAdapter.m                            |   10 +-
 Plugins/Purple Service/adiumPurpleCertificateTrustWarning.h              |    4 +-
 Plugins/Purple Service/adiumPurpleDnsRequest.m                           |    6 +-
 Plugins/Purple Service/adiumPurpleEventloop.m                            |    8 +-
 Plugins/Purple Service/adiumPurpleRequest.m                              |    2 +-
 Plugins/Purple Service/libpurple_extensions/oscar-adium.h                |   38 +-
 Plugins/Purple Service/libpurple_extensions/ssl-cdsa.c                   |   16 +-
 Plugins/Purple Service/libpurple_extensions/ssl-openssl.c                |   14 +-
 Plugins/Purple Service/libpurple_extensions/ssl.c                        |   10 +-
 Plugins/Secure Messaging/ESSecureMessagingPlugin.h                       |    3 +-
 Plugins/Secure Messaging/ESSecureMessagingPlugin.m                       |   12 +-
 Plugins/WebKit Message View/AIWebKitMessageViewController.m              |   10 +-
 Source/AIXMLAppender.m                                                   |    2 +-
 Source/AdiumOTREncryption.m                                              |    2 +-
 Source/ESDebugController.m                                               |    8 +-
 Source/GBApplescriptFiltersPlugin.m                                      |    4 +-
 Source/PTKeyCodeTranslator.h                                             |    2 +-
 UnitTests/TestRichTextCoercion.m                                         |    6 +-
 61 files changed, 265 insertions(+), 299 deletions(-)

diffs (truncated from 1469 to 1000 lines):

diff -r fc9f25463b41 -r b1ff01f7278a Frameworks/AIUtilities Framework/Source/AIColorAdditions.m
--- a/Frameworks/AIUtilities Framework/Source/AIColorAdditions.m	Tue May 05 00:54:26 2009 -0400
+++ b/Frameworks/AIUtilities Framework/Source/AIColorAdditions.m	Wed May 06 15:32:54 2009 -0400
@@ -19,7 +19,7 @@
 
 #import "AIColorAdditions.h"
 #import "AIStringAdditions.h"
-#include <string.h>
+#import <string.h>
 
 static const float ONE_THIRD = 1.0/3.0;
 static const float ONE_SIXTH = 1.0/6.0;
diff -r fc9f25463b41 -r b1ff01f7278a Frameworks/AIUtilities Framework/Source/AIFileManagerAdditions.m
--- a/Frameworks/AIUtilities Framework/Source/AIFileManagerAdditions.m	Tue May 05 00:54:26 2009 -0400
+++ b/Frameworks/AIUtilities Framework/Source/AIFileManagerAdditions.m	Wed May 06 15:32:54 2009 -0400
@@ -15,8 +15,8 @@
 
 #import "AIFileManagerAdditions.h"
 #import "AIStringAdditions.h"
-#include <sys/types.h>
-#include <unistd.h>
+#import <sys/types.h>
+#import <unistd.h>
 
 #warning This wants modernizing: take NSURLs, provide NSErrors
 
diff -r fc9f25463b41 -r b1ff01f7278a Frameworks/AIUtilities Framework/Source/AIFunctions.m
--- a/Frameworks/AIUtilities Framework/Source/AIFunctions.m	Tue May 05 00:54:26 2009 -0400
+++ b/Frameworks/AIUtilities Framework/Source/AIFunctions.m	Wed May 06 15:32:54 2009 -0400
@@ -14,10 +14,10 @@
  \------------------------------------------------------------------------------------------------------ */
 
 #import "AIFunctions.h"
-#include <sys/types.h>
-#include <sys/mman.h>
-#include <malloc/malloc.h>
-#include <stdlib.h>
+#import <sys/types.h>
+#import <sys/mman.h>
+#import <malloc/malloc.h>
+#import <stdlib.h>
 
 BOOL AIGetSurrogates(UTF32Char in, UTF16Char *outHigh, UTF16Char *outLow)
 {
diff -r fc9f25463b41 -r b1ff01f7278a Frameworks/AIUtilities Framework/Source/AIHostReachabilityMonitor.m
--- a/Frameworks/AIUtilities Framework/Source/AIHostReachabilityMonitor.m	Tue May 05 00:54:26 2009 -0400
+++ b/Frameworks/AIUtilities Framework/Source/AIHostReachabilityMonitor.m	Wed May 06 15:32:54 2009 -0400
@@ -8,9 +8,9 @@
 #import "AIHostReachabilityMonitor.h"
 #import "AISleepNotification.h"
 #import <SystemConfiguration/SystemConfiguration.h>
-#include <arpa/inet.h>
-#include <netdb.h>
-#include <netinet/in.h>
+#import <arpa/inet.h>
+#import <netdb.h>
+#import <netinet/in.h>
 
 #define CONNECTIVITY_DEBUG FALSE
 
diff -r fc9f25463b41 -r b1ff01f7278a Frameworks/AIUtilities Framework/Source/AIKeychain.h
--- a/Frameworks/AIUtilities Framework/Source/AIKeychain.h	Tue May 05 00:54:26 2009 -0400
+++ b/Frameworks/AIUtilities Framework/Source/AIKeychain.h	Wed May 06 15:32:54 2009 -0400
@@ -13,7 +13,7 @@
  | write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  \------------------------------------------------------------------------------------------------------ */
 
-#include <Security/Security.h>
+#import <Security/Security.h>
 
 #pragma mark AIKeychain errors
 
diff -r fc9f25463b41 -r b1ff01f7278a Frameworks/AIUtilities Framework/Source/AIKeychain.m
--- a/Frameworks/AIUtilities Framework/Source/AIKeychain.m	Tue May 05 00:54:26 2009 -0400
+++ b/Frameworks/AIUtilities Framework/Source/AIKeychain.m	Wed May 06 15:32:54 2009 -0400
@@ -19,9 +19,9 @@
 
 #import "AIKeychain.h"
 #import "AIStringAdditions.h"
-#include <CoreServices/CoreServices.h>
-#include <CoreFoundation/CoreFoundation.h>
-#include <Security/Security.h>
+#import <CoreServices/CoreServices.h>
+#import <CoreFoundation/CoreFoundation.h>
+#import <Security/Security.h>
 
 static AIKeychain *lastKnownDefaultKeychain = nil;
 
diff -r fc9f25463b41 -r b1ff01f7278a Frameworks/AIUtilities Framework/Source/AIPlasticButtonCell.m
--- a/Frameworks/AIUtilities Framework/Source/AIPlasticButtonCell.m	Tue May 05 00:54:26 2009 -0400
+++ b/Frameworks/AIUtilities Framework/Source/AIPlasticButtonCell.m	Wed May 06 15:32:54 2009 -0400
@@ -9,7 +9,7 @@
 #import "AIPlasticButtonCell.h"
 #import "AIImageAdditions.h"
 
-#include <Carbon/Carbon.h>
+#import <Carbon/Carbon.h>
 
 #define LABEL_OFFSET_X	1
 #define LABEL_OFFSET_Y	-1
diff -r fc9f25463b41 -r b1ff01f7278a Frameworks/AIUtilities Framework/Source/AIStringAdditions.m
--- a/Frameworks/AIUtilities Framework/Source/AIStringAdditions.m	Tue May 05 00:54:26 2009 -0400
+++ b/Frameworks/AIUtilities Framework/Source/AIStringAdditions.m	Wed May 06 15:32:54 2009 -0400
@@ -22,8 +22,8 @@
 #import "AIFunctions.h"
 #import "AIApplicationAdditions.h"
 
-#include <unistd.h>
-#include <limits.h>
+#import <unistd.h>
+#import <limits.h>
 
 #endif //ndef BSD_LICENSE_ONLY
 
@@ -38,7 +38,7 @@
 	numberOfLineBreakCharacters = 6U
 };
 
-#include <wctype.h>
+#import <wctype.h>
 
 @implementation NSString (AIStringAdditions)
 
diff -r fc9f25463b41 -r b1ff01f7278a Frameworks/AIUtilities Framework/Source/NSCalendarDate+ISO8601Parsing.m
--- a/Frameworks/AIUtilities Framework/Source/NSCalendarDate+ISO8601Parsing.m	Tue May 05 00:54:26 2009 -0400
+++ b/Frameworks/AIUtilities Framework/Source/NSCalendarDate+ISO8601Parsing.m	Wed May 06 15:32:54 2009 -0400
@@ -4,8 +4,8 @@
  *Copyright 2006 Peter Hosey. All rights reserved.
  */
 
-#include <ctype.h>
-#include <string.h>
+#import <ctype.h>
+#import <string.h>
 
 #import "NSCalendarDate+ISO8601Parsing.h"
 
diff -r fc9f25463b41 -r b1ff01f7278a Frameworks/Adium Framework/Source/AIAccountMenu.m
--- a/Frameworks/Adium Framework/Source/AIAccountMenu.m	Tue May 05 00:54:26 2009 -0400
+++ b/Frameworks/Adium Framework/Source/AIAccountMenu.m	Wed May 06 15:32:54 2009 -0400
@@ -156,7 +156,7 @@
 /*!
  * @brief Set our account menu delegate
  */
-- (void)setDelegate:(id)inDelegate
+- (void)setDelegate:(id<AIAccountMenuDelegate>)inDelegate
 {
 	delegate = inDelegate;
 	
@@ -174,7 +174,7 @@
 	includeConnectAllMenuItem = ([delegate respondsToSelector:@selector(accountMenuShouldIncludeConnectAllMenuItem:)] &&
 								 [delegate accountMenuShouldIncludeConnectAllMenuItem:self]);
 }
-- (id)delegate
+- (id<AIAccountMenuDelegate>)delegate
 {
 	return delegate;
 }
diff -r fc9f25463b41 -r b1ff01f7278a Frameworks/Adium Framework/Source/AIContactMenu.m
--- a/Frameworks/Adium Framework/Source/AIContactMenu.m	Tue May 05 00:54:26 2009 -0400
+++ b/Frameworks/Adium Framework/Source/AIContactMenu.m	Wed May 06 15:32:54 2009 -0400
@@ -95,7 +95,7 @@
 /*!
  * @brief Set our contact menu delegate
  */
-- (void)setDelegate:(id)inDelegate
+- (void)setDelegate:(id<AIContactMenuDelegate>	)inDelegate
 {
 	delegate = inDelegate;
 	
@@ -117,7 +117,7 @@
 	shouldSetTooltip = ([delegate respondsToSelector:@selector(contactMenuShouldSetTooltip:)] &&
 								 [delegate contactMenuShouldSetTooltip:self]);	
 }
-- (id)delegate
+- (id<AIContactMenuDelegate>	)delegate
 {
 	return delegate;
 }
diff -r fc9f25463b41 -r b1ff01f7278a Frameworks/Adium Framework/Source/AIHTMLDecoder.m
--- a/Frameworks/Adium Framework/Source/AIHTMLDecoder.m	Tue May 05 00:54:26 2009 -0400
+++ b/Frameworks/Adium Framework/Source/AIHTMLDecoder.m	Wed May 06 15:32:54 2009 -0400
@@ -35,7 +35,7 @@
 
 #import <FriBidi/NSString-FBAdditions.h>
 
-#include <CoreServices/CoreServices.h>
+#import <CoreServices/CoreServices.h>
 
 int HTMLEquivalentForFontSize(int fontSize);
 
diff -r fc9f25463b41 -r b1ff01f7278a Frameworks/Adium Framework/Source/AIListContact.m
--- a/Frameworks/Adium Framework/Source/AIListContact.m	Tue May 05 00:54:26 2009 -0400
+++ b/Frameworks/Adium Framework/Source/AIListContact.m	Wed May 06 15:32:54 2009 -0400
@@ -32,7 +32,7 @@
 #import <AIUtilities/AIMutableOwnerArray.h>
 #import <AIUtilities/AIMutableStringAdditions.h>
 
-#include <AvailabilityMacros.h>
+#import <AvailabilityMacros.h>
 
 #import "AIAddressBookController.h"
 
diff -r fc9f25463b41 -r b1ff01f7278a Frameworks/Adium Framework/Source/AIListGroup.m
--- a/Frameworks/Adium Framework/Source/AIListGroup.m	Tue May 05 00:54:26 2009 -0400
+++ b/Frameworks/Adium Framework/Source/AIListGroup.m	Wed May 06 15:32:54 2009 -0400
@@ -158,25 +158,7 @@
  */
 - (AIListObject *)visibleObjectAtIndex:(NSUInteger)index
 {
-	AIListObject *obj = nil;
-	@try
-	{
-	 obj = [_visibleObjects objectAtIndex:index];
-	}
-	@catch(...)
-	{
-		if(![[AIContactHidingController sharedController] visibilityOfListObject:obj inContainer:self]) {
-			AILog(@"Attempted to get visible object at index %i of %@, but %@ is not visible. With contained objects %@, visibility count is %i", index, self, obj, self.containedObjects, self.visibleCount);
-			[self rebuildVisibleCache];
-			AIListObject *obj = [_visibleObjects objectAtIndex:index];
-			if(![[AIContactHidingController sharedController] visibilityOfListObject:obj inContainer:self])
-				AILog(@"Failed to correct for messed up visibleObjectAtIndex by recaching");
-			else
-				AILog(@"Successfully corrected for messed up visibleObjectAtIndex by recaching");
-		}
-	}
-	
-	return obj;
+	return [_visibleObjects objectAtIndex:index];
 }
 
 - (NSUInteger)visibleIndexOfObject:(AIListObject *)obj
diff -r fc9f25463b41 -r b1ff01f7278a Frameworks/Adium Framework/Source/AILocalizationButton.m
--- a/Frameworks/Adium Framework/Source/AILocalizationButton.m	Tue May 05 00:54:26 2009 -0400
+++ b/Frameworks/Adium Framework/Source/AILocalizationButton.m	Wed May 06 15:32:54 2009 -0400
@@ -53,7 +53,7 @@
 	return self;
 }
 
-#include "AILocalizationControl.m"
+#import "AILocalizationControl.m"
 
 - (void)setFrame:(NSRect)inFrame
 {
diff -r fc9f25463b41 -r b1ff01f7278a Frameworks/Adium Framework/Source/AILocalizationButtonCell.m
--- a/Frameworks/Adium Framework/Source/AILocalizationButtonCell.m	Tue May 05 00:54:26 2009 -0400
+++ b/Frameworks/Adium Framework/Source/AILocalizationButtonCell.m	Wed May 06 15:32:54 2009 -0400
@@ -42,7 +42,7 @@
 	[self _handleSizingWithOldFrame:oldFrame stringValue:inTitle];
 }
 
-#include "AILocalizationControl.m"
+#import "AILocalizationControl.m"
 
 @end
 
diff -r fc9f25463b41 -r b1ff01f7278a Frameworks/Adium Framework/Source/AILocalizationTextField.m
--- a/Frameworks/Adium Framework/Source/AILocalizationTextField.m	Tue May 05 00:54:26 2009 -0400
+++ b/Frameworks/Adium Framework/Source/AILocalizationTextField.m	Wed May 06 15:32:54 2009 -0400
@@ -58,7 +58,7 @@
 	return self;
 }
 
-#include "AILocalizationControl.m"
+#import "AILocalizationControl.m"
 
 - (void)setFrame:(NSRect)inFrame
 {
diff -r fc9f25463b41 -r b1ff01f7278a Frameworks/Adium Framework/Source/ESDebugAILog.m
--- a/Frameworks/Adium Framework/Source/ESDebugAILog.m	Tue May 05 00:54:26 2009 -0400
+++ b/Frameworks/Adium Framework/Source/ESDebugAILog.m	Wed May 06 15:32:54 2009 -0400
@@ -15,8 +15,8 @@
  */
 
 #import <Adium/AIDebugControllerProtocol.h>
-#include <stdarg.h>
-#include <execinfo.h>
+#import <stdarg.h>
+#import <execinfo.h>
 
 #ifdef DEBUG_BUILD
 BOOL AIDebugLoggingEnabled = YES;
diff -r fc9f25463b41 -r b1ff01f7278a Other/Adium Spotlight Importer/AdiumSpotlightImporter.h
--- a/Other/Adium Spotlight Importer/AdiumSpotlightImporter.h	Tue May 05 00:54:26 2009 -0400
+++ b/Other/Adium Spotlight Importer/AdiumSpotlightImporter.h	Wed May 06 15:32:54 2009 -0400
@@ -1,5 +1,5 @@
-#include <CoreFoundation/CoreFoundation.h>
-#include <CoreServices/CoreServices.h> 
+#import <CoreFoundation/CoreFoundation.h>
+#import <CoreServices/CoreServices.h> 
 
 CFStringRef CopyTextContentForFile(CFStringRef contentTypeUTI,
 								   CFStringRef pathToFile);
diff -r fc9f25463b41 -r b1ff01f7278a Other/Adium Spotlight Importer/GetMetadataForFile.m
--- a/Other/Adium Spotlight Importer/GetMetadataForFile.m	Tue May 05 00:54:26 2009 -0400
+++ b/Other/Adium Spotlight Importer/GetMetadataForFile.m	Wed May 06 15:32:54 2009 -0400
@@ -1,5 +1,5 @@
-#include <CoreFoundation/CoreFoundation.h>
-#include <CoreServices/CoreServices.h> 
+#import <CoreFoundation/CoreFoundation.h>
+#import <CoreServices/CoreServices.h> 
 #import "GetMetadataForHTMLLog.h"
 #import "NSCalendarDate+ISO8601Parsing.h"
 
diff -r fc9f25463b41 -r b1ff01f7278a Other/Adium Spotlight Importer/main.c
--- a/Other/Adium Spotlight Importer/main.c	Tue May 05 00:54:26 2009 -0400
+++ b/Other/Adium Spotlight Importer/main.c	Wed May 06 15:32:54 2009 -0400
@@ -23,9 +23,9 @@
 
 
 
-#include <CoreFoundation/CoreFoundation.h>
-#include <CoreFoundation/CFPlugInCOM.h>
-#include <CoreServices/CoreServices.h>
+#import <CoreFoundation/CoreFoundation.h>
+#import <CoreFoundation/CFPlugInCOM.h>
+#import <CoreServices/CoreServices.h>
 
 // -----------------------------------------------------------------------------
 //	constants
diff -r fc9f25463b41 -r b1ff01f7278a Plugins/Bonjour/libezv/Classes/AWEzvContact.h
--- a/Plugins/Bonjour/libezv/Classes/AWEzvContact.h	Tue May 05 00:54:26 2009 -0400
+++ b/Plugins/Bonjour/libezv/Classes/AWEzvContact.h	Wed May 06 15:32:54 2009 -0400
@@ -31,10 +31,11 @@
  */
 
 #import "AWEzvDefines.h"
+#import "AWEzvXMLStream.h"
 
 @class AWEzvXMLStream, AWEzvRendezvousData, AWEzvContactManager, NSImage, ServiceController, EKEzvOutgoingFileTransfer;
 
- at interface AWEzvContact : NSObject {
+ at interface AWEzvContact : NSObject <AWEzvXMLStreamProtocol> {
 	NSString *name;
 	NSString *uniqueID;
 	NSData *contactImageData;
@@ -51,7 +52,7 @@
 	ServiceController *addressServiceController;
 }
 
- at property (readwrite, retain, nonatomic) NSString *uniqueID;
+ at property (readwrite, copy, nonatomic) NSString *uniqueID;
 @property (readwrite, retain, nonatomic) NSData *contactImageData;
 @property (readwrite, retain, nonatomic) NSString *imageHash;
 @property (readonly, nonatomic) AWEzvStatus status;
diff -r fc9f25463b41 -r b1ff01f7278a Plugins/Bonjour/libezv/Classes/AWEzvContact.m
--- a/Plugins/Bonjour/libezv/Classes/AWEzvContact.m	Tue May 05 00:54:26 2009 -0400
+++ b/Plugins/Bonjour/libezv/Classes/AWEzvContact.m	Wed May 06 15:32:54 2009 -0400
@@ -34,7 +34,6 @@
 #import "AWEzvContact.h"
 #import "AWEzvContactPrivate.h"
 #import "AWEzvXMLNode.h"
-#import "AWEzvXMLStream.h"
 #import "AWEzvRendezvousData.h"
 #import "AWEzvContactManager.h"
 #import "AWEzvContactManagerRendezvous.h"
@@ -42,10 +41,10 @@
 #import "EKEzvFileTransfer.h"
 #import "EKEzvIncomingFileTransfer.h"
 
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
+#import <sys/types.h>
+#import <sys/socket.h>
+#import <netinet/in.h>
+#import <arpa/inet.h>
 
 @implementation AWEzvContact
 
diff -r fc9f25463b41 -r b1ff01f7278a Plugins/Bonjour/libezv/Other Sources/AWEzvSupportRoutines.m
--- a/Plugins/Bonjour/libezv/Other Sources/AWEzvSupportRoutines.m	Tue May 05 00:54:26 2009 -0400
+++ b/Plugins/Bonjour/libezv/Other Sources/AWEzvSupportRoutines.m	Wed May 06 15:32:54 2009 -0400
@@ -30,8 +30,8 @@
  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include "AWEzvSupportRoutines.h"
-#include <stdarg.h>
+#import "AWEzvSupportRoutines.h"
+#import <stdarg.h>
 
 void AWEzvLog (NSString *format, ...) {
     va_list ap;
diff -r fc9f25463b41 -r b1ff01f7278a Plugins/Bonjour/libezv/Private Classes/AWEzvContactManager.h
--- a/Plugins/Bonjour/libezv/Private Classes/AWEzvContactManager.h	Tue May 05 00:54:26 2009 -0400
+++ b/Plugins/Bonjour/libezv/Private Classes/AWEzvContactManager.h	Wed May 06 15:32:54 2009 -0400
@@ -30,8 +30,8 @@
  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
  
-#include <DNSServiceDiscovery/DNSServiceDiscovery.h>
-#include <dns_sd.h>
+#import <DNSServiceDiscovery/DNSServiceDiscovery.h>
+#import <dns_sd.h>
 
 
 @class AWEzv, AWEzvContact, AWEzvRendezvousData, ServiceController;
diff -r fc9f25463b41 -r b1ff01f7278a Plugins/Bonjour/libezv/Private Classes/AWEzvContactManagerListener.m
--- a/Plugins/Bonjour/libezv/Private Classes/AWEzvContactManagerListener.m	Tue May 05 00:54:26 2009 -0400
+++ b/Plugins/Bonjour/libezv/Private Classes/AWEzvContactManagerListener.m	Wed May 06 15:32:54 2009 -0400
@@ -37,10 +37,10 @@
 #import "AWEzv.h"
 
 /* socket functions */
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <unistd.h>
+#import <sys/socket.h>
+#import <netinet/in.h>
+#import <arpa/inet.h>
+#import <unistd.h>
 
 #define	MAXBACKLOG	5
 
diff -r fc9f25463b41 -r b1ff01f7278a Plugins/Bonjour/libezv/Private Classes/AWEzvContactManagerRendezvous.m
--- a/Plugins/Bonjour/libezv/Private Classes/AWEzvContactManagerRendezvous.m	Tue May 05 00:54:26 2009 -0400
+++ b/Plugins/Bonjour/libezv/Private Classes/AWEzvContactManagerRendezvous.m	Wed May 06 15:32:54 2009 -0400
@@ -40,9 +40,9 @@
 
 #import "AWEzvSupportRoutines.h"
 
-#include <dns_sd.h>
+#import <dns_sd.h>
 
-#include <openssl/sha.h>
+#import <openssl/sha.h>
 
 /* One of the stupidest things I've ever met. Doing DNS lookups using the standard
  * functions does not for mDNS records work unless you're in BIND 8 compatibility
@@ -51,19 +51,19 @@
  * have to implement our own DNS packet parser. What were people thinking here?
  */
 #define BIND_8_COMPAT 1
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/nameser.h>
-#include <arpa/inet.h>
-#include <netdb.h>
-#include <resolv.h>
-#include <errno.h>
-#include <ctype.h>
-#include <string.h>
-#include <stdlib.h>
+#import <sys/types.h>
+#import <sys/socket.h>
+#import <netinet/in.h>
+#import <arpa/nameser.h>
+#import <arpa/inet.h>
+#import <netdb.h>
+#import <resolv.h>
+#import <errno.h>
+#import <ctype.h>
+#import <string.h>
+#import <stdlib.h>
 
-#include <SystemConfiguration/SystemConfiguration.h>
+#import <SystemConfiguration/SystemConfiguration.h>
 // The ServiceController manages cleanup of DNSServiceRef & runloop info for an outstanding request
 @interface ServiceController : NSObject
 {
diff -r fc9f25463b41 -r b1ff01f7278a Plugins/Bonjour/libezv/Private Classes/AWEzvXMLStream.h
--- a/Plugins/Bonjour/libezv/Private Classes/AWEzvXMLStream.h	Tue May 05 00:54:26 2009 -0400
+++ b/Plugins/Bonjour/libezv/Private Classes/AWEzvXMLStream.h	Wed May 06 15:32:54 2009 -0400
@@ -31,7 +31,7 @@
  */
 
 #define XMLCALL
-#include <expat.h> 
+#import <expat.h> 
 
 @class AWEzvStack, AWEzvXMLNode, AWEzvContactManager;
 @protocol AWEzvXMLStreamProtocol;
@@ -45,13 +45,12 @@
 }
 
 - (id) initWithFileHandle:(NSFileHandle *)connection initiator:(int)initiator;
-- (NSFileHandle *)fileHandle;
+ at property (readonly, nonatomic) NSFileHandle *fileHandle;
 - (void) readAndParse;
 - (void) sendData:(NSData *)data;
 - (void) sendString:(NSString *)string;
 - (void) endConnection;
-- (void) setDelegate:(id)delegate;
-- (id) delegate;
+ at property (assign, readwrite, nonatomic) id<AWEzvXMLStreamProtocol> delegate;
 
 /* Private methods: used by private implementation, do NOT use these methods */
 - (void) xmlStartElement:(const XML_Char *)name attributes:(const XML_Char **)attributes;
@@ -66,6 +65,6 @@
 @protocol AWEzvXMLStreamProtocol
 - (void) XMLConnectionClosed;
 - (void) XMLReceived:(AWEzvXMLNode *)root;
-- (NSString *) uniqueID;
-- (AWEzvContactManager *) manager;
+ at property (readonly, copy, nonatomic) NSString *uniqueID;
+ at property (readonly, retain, nonatomic) AWEzvContactManager *manager;
 @end
diff -r fc9f25463b41 -r b1ff01f7278a Plugins/Bonjour/libezv/Private Classes/AWEzvXMLStream.m
--- a/Plugins/Bonjour/libezv/Private Classes/AWEzvXMLStream.m	Tue May 05 00:54:26 2009 -0400
+++ b/Plugins/Bonjour/libezv/Private Classes/AWEzvXMLStream.m	Wed May 06 15:32:54 2009 -0400
@@ -39,7 +39,7 @@
 #import "AWEzvContactManager.h"
 
 #define XMLCALL
-#include <expat.h> 
+#import <expat.h> 
 
 /* XML Function prototypes */
 void xml_start_element	(void *userData,
@@ -59,7 +59,7 @@
 
 - (id) initWithFileHandle:(NSFileHandle *)myConnection initiator:(int)myInitiator 
 {
-    if ((self = [super init])) {
+	if ((self = [super init])) {
 		connection = [myConnection retain];
 		delegate = nil;
 		nodeStack = [[AWEzvStack alloc] init];
@@ -67,7 +67,7 @@
 		negotiated = 0;
 	}	
     
-    return self;
+	return self;
 }
 
 - (void)dealloc
@@ -83,9 +83,7 @@
 	[super dealloc];
 }
 
-- (NSFileHandle *)fileHandle {
-    return connection;
-}
+ at synthesize fileHandle = connection;
 
 - (void) readAndParse {
     [[NSNotificationCenter defaultCenter] addObserver:self
@@ -154,12 +152,7 @@
     [[aNotification object] readInBackgroundAndNotify];
 }
 
-- (void) setDelegate:(id)myDelegate {
-    delegate = myDelegate;
-}
-- (id) delegate {
-    return delegate;
-}
+ at synthesize delegate;
 
 - (void) xmlStartElement:(const XML_Char *)name attributes:(const XML_Char **)attributes {
     AWEzvXMLNode    *node;
diff -r fc9f25463b41 -r b1ff01f7278a Plugins/Purple Service/AIPurpleCertificateTrustWarningAlert.h
--- a/Plugins/Purple Service/AIPurpleCertificateTrustWarningAlert.h	Tue May 05 00:54:26 2009 -0400
+++ b/Plugins/Purple Service/AIPurpleCertificateTrustWarningAlert.h	Wed May 06 15:32:54 2009 -0400
@@ -7,8 +7,8 @@
 //
 
 #import <Adium/AIAccount.h>
-#include <Security/SecTrust.h>
-#include <libpurple/libpurple.h>
+#import <Security/SecTrust.h>
+#import <libpurple/libpurple.h>
 
 @interface AIPurpleCertificateTrustWarningAlert : NSObject {
 	CFArrayRef certificates;
diff -r fc9f25463b41 -r b1ff01f7278a Plugins/Purple Service/AMPurpleJabberAdHocServer.h
--- a/Plugins/Purple Service/AMPurpleJabberAdHocServer.h	Tue May 05 00:54:26 2009 -0400
+++ b/Plugins/Purple Service/AMPurpleJabberAdHocServer.h	Wed May 06 15:32:54 2009 -0400
@@ -1,6 +1,7 @@
 #import "ESPurpleJabberAccount.h"
 
 @class AMPurpleJabberAdHocCommand;
+ at protocol AMPurpleJabberAdHocServerDelegate;
 
 @interface AMPurpleJabberAdHocServer : NSObject {
 	ESPurpleJabberAccount *account;
@@ -8,12 +9,13 @@
 }
 
 - (id)initWithAccount:(ESPurpleJabberAccount *)_account;
-- (void)addCommand:(NSString *)node delegate:(id)delegate name:(NSString *)name;
+- (void)addCommand:(NSString *)node delegate:(id<AMPurpleJabberAdHocServerDelegate>)delegate name:(NSString *)name;
 - (ESPurpleJabberAccount *)account;
 
 @end
 
- at interface NSObject (AMPurpleJabberAdHocServerDelegate)
+ at protocol AMPurpleJabberAdHocServerDelegate <NSObject>
+ at optional
 - (void)adHocServer:(AMPurpleJabberAdHocServer *)server executeCommand:(AMPurpleJabberAdHocCommand *)command;
 @end
 
diff -r fc9f25463b41 -r b1ff01f7278a Plugins/Purple Service/AMPurpleJabberAdHocServer.m
--- a/Plugins/Purple Service/AMPurpleJabberAdHocServer.m	Tue May 05 00:54:26 2009 -0400
+++ b/Plugins/Purple Service/AMPurpleJabberAdHocServer.m	Wed May 06 15:32:54 2009 -0400
@@ -2,7 +2,7 @@
 #import "ESPurpleJabberAccount.h"
 #import "AMPurpleJabberFormGenerator.h"
 #import "AMPurpleJabberAdHocCommand.h"
-#include <libpurple/jabber.h>
+#import <libpurple/jabber.h>
 
 @interface AMPurpleJabberAdHocServer ()
 - (BOOL)receivedCommand:(xmlnode*)command from:(NSString*)jid iqid:(NSString*)iqid;
@@ -95,7 +95,7 @@
 	[super dealloc];
 }
 
-- (void)addCommand:(NSString*)node delegate:(id)delegate name:(NSString*)name {
+- (void)addCommand:(NSString*)node delegate:(id<AMPurpleJabberAdHocServerDelegate>)delegate name:(NSString*)name {
 	[commands setObject:[NSDictionary dictionaryWithObjectsAndKeys:
 				[NSValue valueWithNonretainedObject:delegate],@"delegate",
 				name, @"name",
diff -r fc9f25463b41 -r b1ff01f7278a Plugins/Purple Service/AMPurpleJabberFormGenerator.h
--- a/Plugins/Purple Service/AMPurpleJabberFormGenerator.h	Tue May 05 00:54:26 2009 -0400
+++ b/Plugins/Purple Service/AMPurpleJabberFormGenerator.h	Wed May 06 15:32:54 2009 -0400
@@ -6,8 +6,8 @@
 //  Copyright 2007 Andreas Monitzer. All rights reserved.
 //
 
-#include "glib.h"
-#include "xmlnode.h"
+#import "glib.h"
+#import "xmlnode.h"
 
 enum AMPurpleJabberFormType {
 	form = 0,
diff -r fc9f25463b41 -r b1ff01f7278a Plugins/Purple Service/AMPurpleJabberNode.h
--- a/Plugins/Purple Service/AMPurpleJabberNode.h	Tue May 05 00:54:26 2009 -0400
+++ b/Plugins/Purple Service/AMPurpleJabberNode.h	Wed May 06 15:32:54 2009 -0400
@@ -5,17 +5,18 @@
 //  Created by Evan Schoenberg on 9/5/07.
 //
 
-#include <libpurple/libpurple.h>
+#import <libpurple/libpurple.h>
 
 @class AMPurpleJabberNode;
 
- at interface NSObject (AMPurpleJabberNodeDelegate)
+ at protocol AMPurpleJabberNodeDelegate <NSObject>
+ at optional
 - (void)jabberNodeGotItems:(AMPurpleJabberNode *)node;
 - (void)jabberNodeGotInfo:(AMPurpleJabberNode *)node;
 @end
 
 @interface AMPurpleJabberNode : NSObject <NSCopying> {
-    PurpleConnection *gc;
+	PurpleConnection *gc;
 	
 	NSString *jid;
 	NSString *node;
@@ -35,16 +36,16 @@
 - (void)fetchItems;
 - (void)fetchInfo;
 
-- (NSString*)name;
-- (NSString*)jid;
-- (NSString*)node;
-- (NSArray*)items;
-- (NSSet*)features;
-- (NSArray*)identities;
-- (NSArray*)commands;
+ at property (readonly, copy, nonatomic) NSString *name;
+ at property (readonly, copy, nonatomic) NSString *jid;
+ at property (readonly, copy, nonatomic) NSString *node;
+ at property (readonly, nonatomic) NSArray *items;
+ at property (readonly, retain, nonatomic) NSSet *features;
+ at property (readonly, retain, nonatomic) NSArray *identities;
+ at property (readonly, nonatomic) NSArray *commands;
 
-- (void)addDelegate:(id)delegate;
-- (void)removeDelegate:(id)delegate;
+- (void)addDelegate:(id<AMPurpleJabberNodeDelegate>)delegate;
+- (void)removeDelegate:(id<AMPurpleJabberNodeDelegate>)delegate;
 
 @end
 
diff -r fc9f25463b41 -r b1ff01f7278a Plugins/Purple Service/AMPurpleJabberNode.m
--- a/Plugins/Purple Service/AMPurpleJabberNode.m	Tue May 05 00:54:26 2009 -0400
+++ b/Plugins/Purple Service/AMPurpleJabberNode.m	Wed May 06 15:32:54 2009 -0400
@@ -9,6 +9,18 @@
 
 static unsigned iqCounter = 0;
 
+ at interface AMPurpleJabberNode()
+ at property (readwrite, copy, nonatomic) NSString *name;
+ at property (readwrite, copy, nonatomic) NSString *jid;
+ at property (readwrite, copy, nonatomic) NSString *node;
+ at property (readwrite, retain, nonatomic) NSSet *features;
+ at property (readwrite, retain, nonatomic) NSArray *identities;
+ at property (readwrite, retain, nonatomic) AMPurpleJabberNode *commandsNode;
+ at property (readwrite, assign, nonatomic) PurpleConnection *gc;
+ at property (readwrite, copy, nonatomic) NSMutableArray *delegates;
+ at property (readwrite, retain, nonatomic) NSArray *itemsArray;
+ at end
+
 @implementation AMPurpleJabberNode
 
 static void AMPurpleJabberNode_received_data_cb(PurpleConnection *gc, xmlnode **packet, gpointer this) {
@@ -25,22 +37,22 @@
 		return;
 	if (strcmp((*packet)->name, "iq"))
 		return;
-	if (![[NSString stringWithUTF8String:from] isEqualToString:self->jid])
+	if (![[NSString stringWithUTF8String:from] isEqualToString:self.jid])
 		return;
 	xmlnode *query = xmlnode_get_child_with_namespace(*packet,"query","http://jabber.org/protocol/disco#info");
 	if (query) {
-		if (self->features || self->identities)
+		if (self.features || self.identities)
 			return; // we already have that information
 		
-		const char *node = xmlnode_get_attrib(query,"node");
-		if ((self->node && !node) || (!self->node && node))
+		const char *queryNode = xmlnode_get_attrib(query,"node");
+		if ((self.node && !queryNode) || (!self.node && queryNode))
 			return;
-		if (node && ![[NSString stringWithUTF8String:node] isEqualToString:self->node])
+		if (queryNode && ![[NSString stringWithUTF8String:queryNode] isEqualToString:self.node])
 			return;
 		
 		// it's us, fill in features and identities
-		NSMutableArray *identities = [[NSMutableArray alloc] init];
-		NSMutableSet *features = [[NSMutableSet alloc] init];
+		NSMutableArray *identities = [NSMutableArray array];
+		NSMutableSet *features = [NSMutableSet set];
 		
 		xmlnode *item;
 		for(item = query->child; item; item = item->next) {
@@ -48,11 +60,11 @@
 				if (!strcmp(item->name, "identity")) {
 					const char *category = xmlnode_get_attrib(item,"category");
 					const char *type = xmlnode_get_attrib(item, "type");
-					const char *name = xmlnode_get_attrib(item, "name");
+					const char *queryName = xmlnode_get_attrib(item, "name");
 					[identities addObject:[NSDictionary dictionaryWithObjectsAndKeys:
 										   category?[NSString stringWithUTF8String:category]:[NSNull null], @"category",
 										   type?[NSString stringWithUTF8String:type]:[NSNull null], @"type",
-										   name?[NSString stringWithUTF8String:name]:[NSNull null], @"name",
+										   queryName?[NSString stringWithUTF8String:queryName]:[NSNull null], @"name",
 										   nil]];
 				} else if (!strcmp(item->name, "feature")) {
 					const char *var = xmlnode_get_attrib(item, "var");
@@ -62,10 +74,10 @@
 			}
 		}
 		
-		self->identities = identities;
-		self->features = features;
+		self.identities = identities;
+		self.features = features;
 
-		for (id delegate in self->delegates) {
+		for (id delegate in self.delegates) {
 			if ([delegate respondsToSelector:@selector(jabberNodeGotInfo:)])
 				[delegate jabberNodeGotInfo:self];
 		}
@@ -83,13 +95,11 @@
 			
 			if (!isCommand) {
 				// commands have to be prefetched to be available when the user tries to access the context menu
-				if (self->commands)
-					[self->commands release];
-				self->commands = [[AMPurpleJabberNode alloc] initWithJID:self->jid
+				self.commandsNode = [[AMPurpleJabberNode alloc] initWithJID:self.jid
 																	node:@"http://jabber.org/protocol/commands"
 																	name:nil
-															  connection:self->gc];
-				[self->commands fetchItems];
+															  connection:self.gc];
+				[self.commandsNode fetchItems];
 			}
 		}
 		return;
@@ -97,41 +107,39 @@
 	
 	query = xmlnode_get_child_with_namespace(*packet,"query","http://jabber.org/protocol/disco#items");
 	if (query) {
-		if (self->items)
+		if (self.itemsArray)
 			return; // we already have that info
 		
-		const char *node = xmlnode_get_attrib(query,"node");
-		if ((self->node && !node) || (!self->node && node))
+		const char *checkNode = xmlnode_get_attrib(query,"node");
+		if ((self.node && !checkNode) || (!self.node && checkNode))
 			return;
-		if (node && ![[NSString stringWithUTF8String:node] isEqualToString:self->node])
+		if (checkNode && ![[NSString stringWithUTF8String:checkNode] isEqualToString:self.node])
 			return;
 		
 		// it's us, create the subnodes
-		NSMutableArray *items = [[NSMutableArray alloc] init];
-		xmlnode *item;
-		for(item = query->child; item; item = item->next) {
+		NSMutableArray *newItems = [NSMutableArray array];
+		for(xmlnode *item = query->child; item; item = item->next) {
 			if (item->type == XMLNODE_TYPE_TAG) {
 				if (!strcmp(item->name, "item")) {
-					const char *jid = xmlnode_get_attrib(item,"jid");
-					const char *node = xmlnode_get_attrib(item,"node");
-					const char *name = xmlnode_get_attrib(item,"name");
+					const char *queryJID = xmlnode_get_attrib(item,"jid");
+					const char *queryNode = xmlnode_get_attrib(item,"node");
+					const char *queryName = xmlnode_get_attrib(item,"name");
 					
-					if (jid) {
-						AMPurpleJabberNode *newnode = [[AMPurpleJabberNode alloc] initWithJID:[NSString stringWithUTF8String:jid]
-																						 node:node?[NSString stringWithUTF8String:node]:nil
-																						 name:name?[NSString stringWithUTF8String:name]:nil
-																				   connection:self->gc];
+					if (queryJID) {
+						AMPurpleJabberNode *newnode = [[AMPurpleJabberNode alloc] initWithJID:[NSString stringWithUTF8String:queryJID]
+																						 node:queryNode ? [NSString stringWithUTF8String:queryNode] : nil
+																						 name:queryName ? [NSString stringWithUTF8String:queryName] : nil
+																				   connection:self.gc];
 						// propagate delegates
-						[newnode->delegates release];
-						newnode->delegates = [self->delegates retain];
-						[items addObject:newnode];
+						newnode.delegates = self.delegates;
+						[newItems addObject:newnode];
 						// check if we're a conference service
 						if ([[self jid] rangeOfString:@"@"].location == NSNotFound) { // we can't be one when we have an @
 							NSDictionary *identity = nil;
 							for (identity in self.identities) {
 								if ([[identity objectForKey:@"category"] isEqualToString:@"conference"]) {
 									// since we're a conference service, assume that our children are conferences
-									newnode->identities = [[NSArray arrayWithObject:identity] retain];
+									newnode.identities = [NSArray arrayWithObject:identity];
 									break;
 								}
 							}
@@ -144,9 +152,9 @@
 				}
 			}
 		}
-		self->items = items;
+		self.itemsArray = newItems;
 		
-		for (id delegate in self->delegates) {
+		for (id delegate in self.delegates) {
 			if ([delegate respondsToSelector:@selector(jabberNodeGotItems:)])
 				[delegate jabberNodeGotItems:self];
 		}
@@ -161,11 +169,11 @@
             [self release];
             return nil;
         }
-		jid = [_jid copy];
-		node = [_node copy];
-		name = [_name copy];
-		gc = _gc;
-		delegates = [[NSMutableArray alloc] init];
+		self.jid = _jid;
+		self.node = _node;
+		self.name = _name;
+		self.gc = _gc;
+		self.delegates = [NSMutableArray array];
 		
 		purple_signal_connect(jabber, "jabber-receiving-xmlnode", self,
                               PURPLE_CALLBACK(AMPurpleJabberNode_received_data_cb), self);
@@ -184,14 +192,15 @@
 	
 	// share the items, identities and features between copies
 	// copy the rest, keep delegates separate
-	copy->jid = [jid copy];
-	copy->node = [node copy];
-	copy->name = [name copy];
-	copy->gc = gc;
-	copy->delegates = [[NSMutableArray alloc] init];
-	copy->items = [items retain];
-	copy->features = [features retain];
-	copy->identities = [identities retain];
+	copy.jid = self.jid;
+	copy.node = self.node;
+	copy.name = self.name;
+	copy.gc = self.gc;
+
+	copy.delegates = [NSMutableArray array];
+	copy.features = self.features;
+	copy.identities = self.identities;
+	copy.itemsArray = self.itemsArray;
 	
 	purple_signal_connect(jabber, "jabber-receiving-xmlnode", copy,
 						  PURPLE_CALLBACK(AMPurpleJabberNode_received_data_cb), copy);
@@ -213,10 +222,7 @@
 }
 
 - (void)fetchItems {
-	if (items) {
-		[items release];
-		items = nil;
-	}
+	self.itemsArray = nil;
 	
 	NSXMLElement *iq = [NSXMLNode elementWithName:@"iq"];
 	[iq addAttribute:[NSXMLNode attributeWithName:@"type" stringValue:@"get"]];
@@ -237,14 +243,8 @@
 }
 
 - (void)fetchInfo {
-	if (features) {
-		[features release];
-		features = nil;
-	}
-	if (identities) {
-		[identities release];
-		identities = nil;
-	}
+	self.features = nil;
+	self.identities = nil;
 	
 	NSXMLElement *iq = [NSXMLNode elementWithName:@"iq"];
 	[iq addAttribute:[NSXMLNode attributeWithName:@"type" stringValue:@"get"]];
@@ -264,20 +264,10 @@
 		(PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->send_raw)(gc, [xmlData bytes], [xmlData length]);
 }
 
-- (NSString*)name {
-	return name;
-}
-- (NSString*)jid {
-	return jid;
-}
-- (NSString*)node {
-	return node;
-}
 - (NSArray*)items {
 	if (!items) {
 		BOOL isCommand = NO;
-		NSDictionary *identity;
-		for (identity in identities) {
+		for (NSDictionary *identity in identities) {
 			if ([[identity objectForKey:@"type"] isEqualToString:@"command-node"]) {
 				isCommand = YES;
 				break;
@@ -285,29 +275,26 @@
 		}
 		// commands don't contain any other nodes
 		if (isCommand) {
-			items = [[NSArray alloc] init];
+			self.itemsArray = [NSArray array];
 			return items;
 		}
 	}
 	
 	return items;
 }
-- (NSSet*)features {
-	return features;
-}
-- (NSArray*)identities {
-	return identities;
-}
+
 - (NSArray*)commands {
 	return [commands items];
 }
 
-- (void)addDelegate:(id)delegate {
+ at synthesize commandsNode = commands, itemsArray = items, identities, features, node, jid, name, gc, delegates;
+
+- (void)addDelegate:(id<AMPurpleJabberNodeDelegate>)delegate {
 	[delegates addObject:delegate];
 }
 
-- (void)removeDelegate:(id)delegate {
-	[delegate removeObjectIdenticalTo:delegate];
+- (void)removeDelegate:(id<AMPurpleJabberNodeDelegate>)delegate {
+	[delegates removeObjectIdenticalTo:delegate];
 }
 
 @end
diff -r fc9f25463b41 -r b1ff01f7278a Plugins/Purple Service/AMPurpleJabberServiceDiscoveryBrowserController.h
--- a/Plugins/Purple Service/AMPurpleJabberServiceDiscoveryBrowserController.h	Tue May 05 00:54:26 2009 -0400
+++ b/Plugins/Purple Service/AMPurpleJabberServiceDiscoveryBrowserController.h	Wed May 06 15:32:54 2009 -0400
@@ -6,11 +6,12 @@
 //
 
 #import <Adium/AIWindowController.h>
-#include <libpurple/libpurple.h>
+#import <libpurple/libpurple.h>
+#import "AMPurpleJabberNode.h"
 
- at class AIAccount, AMPurpleJabberNode;
+ at class AIAccount;
 
- at interface AMPurpleJabberServiceDiscoveryBrowserController : AIWindowController
+ at interface AMPurpleJabberServiceDiscoveryBrowserController : AIWindowController <AMPurpleJabberNodeDelegate>
 {
 	AIAccount *account;
     PurpleConnection *gc;




More information about the commits mailing list