adium 2706:8111606917e8: Adding an application target to make th...

commits at adium.im commits at adium.im
Sat Sep 12 18:13:53 UTC 2009


details:	http://hg.adium.im/adium/rev/8111606917e8
revision:	2706:8111606917e8
author:		Peter Hosey <hg at boredzo.org>
date:		Sat Sep 12 11:04:42 2009 -0700

Adding an application target to make the Spotlight importer easy to Shark. Run the app, hit Option-Escape, drag a folder full of log files onto the app.
Subject: adium 2707:91f8ba5821d4: Initialize the xmlDoc variables to nil, so that we don't crash in cases where we fail to create an NSXMLDocument to assign here.

details:	http://hg.adium.im/adium/rev/91f8ba5821d4
revision:	2707:91f8ba5821d4
author:		Peter Hosey <hg at boredzo.org>
date:		Sat Sep 12 11:10:35 2009 -0700

Initialize the xmlDoc variables to nil, so that we don't crash in cases where we fail to create an NSXMLDocument to assign here.

This really did happen to me, because [NSURL fileURLWithPath:] returned nil in GetMetadataForXMLLog. I don't know why. I even tried the message again in the debugger and it worked.

diffs (truncated from 4139 to 1000 lines):

diff -r 4ca570ee06cb -r 91f8ba5821d4 Other/Adium Spotlight Importer/AFSIAppDelegate.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Other/Adium Spotlight Importer/AFSIAppDelegate.h	Sat Sep 12 11:10:35 2009 -0700
@@ -0,0 +1,13 @@
+//
+//  AFSIAppDelegate.h
+//  AdiumSpotlightImporter
+//
+//  Created by Peter Hosey on 2009-09-12.
+//  Copyright 2009 Peter Hosey. All rights reserved.
+//
+
+ at interface AFSIAppDelegate : NSObject {
+
+}
+
+ at end
diff -r 4ca570ee06cb -r 91f8ba5821d4 Other/Adium Spotlight Importer/AFSIAppDelegate.m
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Other/Adium Spotlight Importer/AFSIAppDelegate.m	Sat Sep 12 11:10:35 2009 -0700
@@ -0,0 +1,57 @@
+//
+//  AFSIAppDelegate.m
+//  AdiumSpotlightImporter
+//
+//  Created by Peter Hosey on 2009-09-12.
+//  Copyright 2009 Peter Hosey. All rights reserved.
+//
+
+#import "AFSIAppDelegate.h"
+
+extern Boolean GetMetadataForFile(void* thisInterface, 
+								  NSMutableDictionary *attributes, 
+								  NSString *contentTypeUTI,
+								  NSString *pathToFile);
+
+ at implementation AFSIAppDelegate
+
+- (void) importOneChatlogFromPath:(NSString *)path {
+	NSError *error = nil;
+	GetMetadataForFile(NULL, [NSMutableDictionary dictionary], [[NSWorkspace sharedWorkspace] typeOfFile:path error:&error], path);
+}
+
+- (void) importChatlogsFromDirectoryTreeRootedAtPath:(NSString *)rootPath {
+	NSFileManager *mgr = [NSFileManager defaultManager];
+	NSDirectoryEnumerator *dirEnum = [mgr enumeratorAtPath:rootPath];
+	for (NSString *subpath in dirEnum) {
+		NSString *path = [rootPath stringByAppendingPathComponent:subpath];
+		NSString *ext = [path pathExtension];
+		if ([ext caseInsensitiveCompare:@"chatlog"] == NSOrderedSame) {
+			BOOL isDir = NO;
+			if ([mgr fileExistsAtPath:path isDirectory:&isDir] && isDir)
+				[dirEnum skipDescendents];
+			[self importOneChatlogFromPath:path];
+		} else if ([ext caseInsensitiveCompare:@"AdiumLog"] == NSOrderedSame)
+			[self importOneChatlogFromPath:path];
+		else if ([ext caseInsensitiveCompare:@"AdiumHTMLLog"] == NSOrderedSame)
+			[self importOneChatlogFromPath:path];
+	}
+}
+
+- (void) application:(NSApplication *)sender openFiles:(NSArray *)paths {
+	NSFileManager *mgr = [NSFileManager defaultManager];
+	for (NSString *path in paths) {
+		BOOL isDir = NO;
+		if ([mgr fileExistsAtPath:path isDirectory:&isDir]) {
+			if (isDir)
+				[self importChatlogsFromDirectoryTreeRootedAtPath:path];
+			else
+				[self importOneChatlogFromPath:path];
+		}
+	}
+
+	NSBeep();
+	NSLog(@"Job's done!");
+}
+
+ at end
diff -r 4ca570ee06cb -r 91f8ba5821d4 Other/Adium Spotlight Importer/AFSIMain.m
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Other/Adium Spotlight Importer/AFSIMain.m	Sat Sep 12 11:10:35 2009 -0700
@@ -0,0 +1,3 @@
+int main(int argc, char **argv) {
+	return NSApplicationMain(argc, (const char **)argv);
+}
diff -r 4ca570ee06cb -r 91f8ba5821d4 Other/Adium Spotlight Importer/AdiumFauxSpotlightImporter-Info.plist
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Other/Adium Spotlight Importer/AdiumFauxSpotlightImporter-Info.plist	Sat Sep 12 11:10:35 2009 -0700
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>English</string>
+	<key>CFBundleDocumentTypes</key>
+	<array>
+		<dict>
+			<key>CFBundleTypeIconFile</key>
+			<string>GenericFolderIcon.icns</string>
+			<key>CFBundleTypeName</key>
+			<string>folder</string>
+			<key>CFBundleTypeOSTypes</key>
+			<array>
+				<string>fold</string>
+			</array>
+			<key>CFBundleTypeRole</key>
+			<string>Viewer</string>
+			<key>LSItemContentTypes</key>
+			<array>
+				<string>public.folder</string>
+			</array>
+			<key>LSTypeIsPackage</key>
+			<false/>
+			<key>NSDocumentClass</key>
+			<string>AFSIDocument</string>
+		</dict>
+		<dict>
+			<key>CFBundleTypeExtensions</key>
+			<array>
+				<string>AdiumLog</string>
+				<string>chatlog</string>
+			</array>
+			<key>CFBundleTypeName</key>
+			<string>Adium X chat log</string>
+			<key>CFBundleTypeOSTypes</key>
+			<array>
+				<string>AILo</string>
+			</array>
+			<key>CFBundleTypeRole</key>
+			<string>Viewer</string>
+			<key>LSItemContentTypes</key>
+			<array>
+				<string>com.adiumx.xmllog</string>
+			</array>
+			<key>LSTypeIsPackage</key>
+			<false/>
+			<key>NSDocumentClass</key>
+			<string>AFSIDocument</string>
+		</dict>
+		<dict>
+			<key>CFBundleTypeExtensions</key>
+			<array>
+				<string>AdiumHTMLLog</string>
+			</array>
+			<key>CFBundleTypeName</key>
+			<string>Adium X HTML chat log</string>
+			<key>CFBundleTypeOSTypes</key>
+			<array>
+				<string>AILh</string>
+			</array>
+			<key>CFBundleTypeRole</key>
+			<string>Viewer</string>
+			<key>LSItemContentTypes</key>
+			<array>
+				<string>com.adiumx.htmllog</string>
+			</array>
+			<key>LSTypeIsPackage</key>
+			<false/>
+			<key>NSDocumentClass</key>
+			<string>AFSIDocument</string>
+		</dict>
+	</array>
+	<key>CFBundleExecutable</key>
+	<string>${EXECUTABLE_NAME}</string>
+	<key>CFBundleIdentifier</key>
+	<string>im.adium.${PRODUCT_NAME:rfc1034identifier}</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+	<key>CFBundleSignature</key>
+	<string>AFSI</string>
+	<key>CFBundleVersion</key>
+	<string>1</string>
+	<key>LSMinimumSystemVersion</key>
+	<string>${MACOSX_DEPLOYMENT_TARGET}</string>
+	<key>NSMainNibFile</key>
+	<string>AFSIMainMenu</string>
+	<key>NSPrincipalClass</key>
+	<string>NSApplication</string>
+	<key>UTImportedTypeDeclarations</key>
+	<array>
+		<dict>
+			<key>UTTypeConformsTo</key>
+			<string>public.directory</string>
+			<key>UTTypeDescription</key>
+			<string>folder</string>
+			<key>UTTypeIconFile</key>
+			<string>GenericFolderIcon.icns</string>
+			<key>UTTypeIdentifier</key>
+			<string>public.folder</string>
+			<key>UTTypeTagSpecification</key>
+			<dict>
+				<key>com.apple.ostype</key>
+				<string>fold</string>
+			</dict>
+		</dict>
+		<dict>
+			<key>UTTypeConformsTo</key>
+			<array>
+				<string>public.data</string>
+				<string>com.apple.bundle</string>
+				<string>public.content</string>
+				<string>public.text</string>
+				<string>public.message</string>
+				<string>public.xml</string>
+			</array>
+			<key>UTTypeDescription</key>
+			<string>Adium X chat log</string>
+			<key>UTTypeIdentifier</key>
+			<string>com.adiumx.xmllog</string>
+			<key>UTTypeReferenceURL</key>
+			<string>http://www.adiumx.com</string>
+			<key>UTTypeTagSpecification</key>
+			<dict>
+				<key>com.apple.ostype</key>
+				<string>AILo</string>
+				<key>public.filename-extension</key>
+				<array>
+					<string>AdiumLog</string>
+					<string>chatlog</string>
+				</array>
+			</dict>
+		</dict>
+		<dict>
+			<key>UTTypeConformsTo</key>
+			<array>
+				<string>public.data</string>
+				<string>public.html</string>
+				<string>public.text</string>
+				<string>public.content</string>
+				<string>public.message</string>
+			</array>
+			<key>UTTypeDescription</key>
+			<string>Adium X HTML chat log</string>
+			<key>UTTypeIdentifier</key>
+			<string>com.adiumx.htmllog</string>
+			<key>UTTypeReferenceURL</key>
+			<string>http://www.adiumx.com</string>
+			<key>UTTypeTagSpecification</key>
+			<dict>
+				<key>com.apple.ostype</key>
+				<string>AILh</string>
+				<key>public.filename-extension</key>
+				<array>
+					<string>AdiumHTMLLog</string>
+				</array>
+			</dict>
+		</dict>
+	</array>
+</dict>
+</plist>
diff -r 4ca570ee06cb -r 91f8ba5821d4 Other/Adium Spotlight Importer/AdiumSpotlightImporter.xcodeproj/project.pbxproj
--- a/Other/Adium Spotlight Importer/AdiumSpotlightImporter.xcodeproj/project.pbxproj	Sat Sep 12 12:42:43 2009 -0400
+++ b/Other/Adium Spotlight Importer/AdiumSpotlightImporter.xcodeproj/project.pbxproj	Sat Sep 12 11:10:35 2009 -0700
@@ -8,6 +8,14 @@
 
 /* Begin PBXBuildFile section */
 		2C05A19C06CAA52B00D84F6F /* GetMetadataForFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C05A19B06CAA52B00D84F6F /* GetMetadataForFile.m */; };
+		31583FDC105C0CDA00E4447D /* AFSIAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 31583FDB105C0CDA00E4447D /* AFSIAppDelegate.m */; };
+		31583FE1105C0D7200E4447D /* AFSIMainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 31583FDF105C0D7200E4447D /* AFSIMainMenu.xib */; };
+		31583FE4105C0D8600E4447D /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 8D5B49A704867FD3000E48DA /* InfoPlist.strings */; };
+		3158400B105C12A100E4447D /* AFSIMain.m in Sources */ = {isa = PBXBuildFile; fileRef = 3158400A105C12A100E4447D /* AFSIMain.m */; };
+		3158400E105C12C400E4447D /* GetMetadataForHTMLLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 34611BF609B664FC00870036 /* GetMetadataForHTMLLog.m */; };
+		3158400F105C12C500E4447D /* GetMetadataForFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C05A19B06CAA52B00D84F6F /* GetMetadataForFile.m */; };
+		31584033105C189800E4447D /* GetMetadataForHTMLLog-Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = 3459CBBA0A25FC0800ECC256 /* GetMetadataForHTMLLog-Additions.m */; };
+		3158403A105C18B400E4447D /* NSCalendarDate+ISO8601Parsing.m in Sources */ = {isa = PBXBuildFile; fileRef = F520600E0A53082C003BFC03 /* NSCalendarDate+ISO8601Parsing.m */; };
 		3459CBBB0A25FC0800ECC256 /* GetMetadataForHTMLLog-Additions.h in Headers */ = {isa = PBXBuildFile; fileRef = 3459CBB90A25FC0800ECC256 /* GetMetadataForHTMLLog-Additions.h */; };
 		3459CBBC0A25FC0800ECC256 /* GetMetadataForHTMLLog-Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = 3459CBBA0A25FC0800ECC256 /* GetMetadataForHTMLLog-Additions.m */; };
 		3459CBC80A25FEA200ECC256 /* AdiumSpotlightImporter.h in Headers */ = {isa = PBXBuildFile; fileRef = 3459CBC70A25FEA200ECC256 /* AdiumSpotlightImporter.h */; };
@@ -37,6 +45,12 @@
 		08FB77B6FE84183AC02AAC07 /* main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = main.c; sourceTree = "<group>"; };
 		0AA1909FFE8422F4C02AAC07 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = "<absolute>"; };
 		2C05A19B06CAA52B00D84F6F /* GetMetadataForFile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GetMetadataForFile.m; sourceTree = "<group>"; };
+		31583FD2105C0C4F00E4447D /* AdiumFauxSpotlightImporter.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = AdiumFauxSpotlightImporter.app; sourceTree = BUILT_PRODUCTS_DIR; };
+		31583FD4105C0C4F00E4447D /* AdiumFauxSpotlightImporter-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "AdiumFauxSpotlightImporter-Info.plist"; sourceTree = "<group>"; };
+		31583FDA105C0CDA00E4447D /* AFSIAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AFSIAppDelegate.h; sourceTree = "<group>"; };
+		31583FDB105C0CDA00E4447D /* AFSIAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AFSIAppDelegate.m; sourceTree = "<group>"; };
+		31583FE0105C0D7200E4447D /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/AFSIMainMenu.xib; sourceTree = "<group>"; };
+		3158400A105C12A100E4447D /* AFSIMain.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AFSIMain.m; sourceTree = "<group>"; };
 		3450766C0E106DF400BF0883 /* da */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/schema.strings; sourceTree = "<group>"; };
 		3450766D0E106DF600BF0883 /* de */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/schema.strings; sourceTree = "<group>"; };
 		3450766E0E106DF800BF0883 /* fi */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/schema.strings; sourceTree = "<group>"; };
@@ -91,6 +105,13 @@
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
+		31583FD0105C0C4F00E4447D /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 		345AF7CE0A5D559900D7DA6F /* Frameworks */ = {
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
@@ -143,6 +164,8 @@
 				C88FB7D7067446EC006EBB30 /* schema.xml */,
 				8D576317048677EA00EA77CD /* Info.plist */,
 				8D5B49A704867FD3000E48DA /* InfoPlist.strings */,
+				31583FD4105C0C4F00E4447D /* AdiumFauxSpotlightImporter-Info.plist */,
+				31583FDF105C0D7200E4447D /* AFSIMainMenu.xib */,
 			);
 			name = Resources;
 			sourceTree = "<group>";
@@ -154,6 +177,9 @@
 				3459CBD40A25FEE200ECC256 /* Log Importing */,
 				08FB77B6FE84183AC02AAC07 /* main.c */,
 				345AF91F0A5D560600D7DA6F /* maintest.m */,
+				31583FDA105C0CDA00E4447D /* AFSIAppDelegate.h */,
+				31583FDB105C0CDA00E4447D /* AFSIAppDelegate.m */,
+				3158400A105C12A100E4447D /* AFSIMain.m */,
 			);
 			name = Source;
 			sourceTree = "<group>";
@@ -163,6 +189,7 @@
 			children = (
 				8D576316048677EA00EA77CD /* AdiumSpotlightImporter.mdimporter */,
 				345AF7D00A5D559900D7DA6F /* AISpotlightImporterTest */,
+				31583FD2105C0C4F00E4447D /* AdiumFauxSpotlightImporter.app */,
 			);
 			name = Products;
 			sourceTree = "<group>";
@@ -213,6 +240,23 @@
 /* End PBXHeadersBuildPhase section */
 
 /* Begin PBXNativeTarget section */
+		31583FD1105C0C4F00E4447D /* AdiumFauxSpotlightImporter */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 31583FD8105C0C5000E4447D /* Build configuration list for PBXNativeTarget "AdiumFauxSpotlightImporter" */;
+			buildPhases = (
+				31583FCE105C0C4F00E4447D /* Resources */,
+				31583FCF105C0C4F00E4447D /* Sources */,
+				31583FD0105C0C4F00E4447D /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = AdiumFauxSpotlightImporter;
+			productName = AdiumFauxSpotlightImporter;
+			productReference = 31583FD2105C0C4F00E4447D /* AdiumFauxSpotlightImporter.app */;
+			productType = "com.apple.product-type.application";
+		};
 		345AF7CF0A5D559900D7DA6F /* AISpotlightImporterTest */ = {
 			isa = PBXNativeTarget;
 			buildConfigurationList = 345AF7D50A5D55BC00D7DA6F /* Build configuration list for PBXNativeTarget "AISpotlightImporterTest" */;
@@ -292,11 +336,21 @@
 			targets = (
 				8D57630D048677EA00EA77CD /* AdiumSpotlightImporter */,
 				345AF7CF0A5D559900D7DA6F /* AISpotlightImporterTest */,
+				31583FD1105C0C4F00E4447D /* AdiumFauxSpotlightImporter */,
 			);
 		};
 /* End PBXProject section */
 
 /* Begin PBXResourcesBuildPhase section */
+		31583FCE105C0C4F00E4447D /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				31583FE1105C0D7200E4447D /* AFSIMainMenu.xib in Resources */,
+				31583FE4105C0D8600E4447D /* InfoPlist.strings in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 		8D57630F048677EA00EA77CD /* Resources */ = {
 			isa = PBXResourcesBuildPhase;
 			buildActionMask = 2147483647;
@@ -310,6 +364,19 @@
 /* End PBXResourcesBuildPhase section */
 
 /* Begin PBXSourcesBuildPhase section */
+		31583FCF105C0C4F00E4447D /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				31583FDC105C0CDA00E4447D /* AFSIAppDelegate.m in Sources */,
+				3158400B105C12A100E4447D /* AFSIMain.m in Sources */,
+				3158400E105C12C400E4447D /* GetMetadataForHTMLLog.m in Sources */,
+				3158400F105C12C500E4447D /* GetMetadataForFile.m in Sources */,
+				31584033105C189800E4447D /* GetMetadataForHTMLLog-Additions.m in Sources */,
+				3158403A105C18B400E4447D /* NSCalendarDate+ISO8601Parsing.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 		345AF7CD0A5D559900D7DA6F /* Sources */ = {
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
@@ -337,6 +404,14 @@
 /* End PBXSourcesBuildPhase section */
 
 /* Begin PBXVariantGroup section */
+		31583FDF105C0D7200E4447D /* AFSIMainMenu.xib */ = {
+			isa = PBXVariantGroup;
+			children = (
+				31583FE0105C0D7200E4447D /* English */,
+			);
+			name = AFSIMainMenu.xib;
+			sourceTree = "<group>";
+		};
 		8D5B49A704867FD3000E48DA /* InfoPlist.strings */ = {
 			isa = PBXVariantGroup;
 			children = (
@@ -421,6 +496,75 @@
 			};
 			name = Debug;
 		};
+		31583FD5105C0C5000E4447D /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				COPY_PHASE_STRIP = YES;
+				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+				GCC_ENABLE_FIX_AND_CONTINUE = NO;
+				GCC_MODEL_TUNING = G5;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
+				INFOPLIST_FILE = "AdiumFauxSpotlightImporter-Info.plist";
+				INSTALL_PATH = "$(HOME)/Applications";
+				OTHER_LDFLAGS = (
+					"-framework",
+					Foundation,
+					"-framework",
+					AppKit,
+				);
+				PREBINDING = NO;
+				PRODUCT_NAME = AdiumFauxSpotlightImporter;
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
+		31583FD6105C0C5000E4447D /* Release-Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_MODEL_TUNING = G5;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
+				INFOPLIST_FILE = "AdiumFauxSpotlightImporter-Info.plist";
+				INSTALL_PATH = "$(HOME)/Applications";
+				OTHER_LDFLAGS = (
+					"-framework",
+					Foundation,
+					"-framework",
+					AppKit,
+				);
+				PREBINDING = NO;
+				PRODUCT_NAME = AdiumFauxSpotlightImporter;
+			};
+			name = "Release-Debug";
+		};
+		31583FD7105C0C5000E4447D /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_MODEL_TUNING = G5;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
+				INFOPLIST_FILE = "AdiumFauxSpotlightImporter-Info.plist";
+				INSTALL_PATH = "$(HOME)/Applications";
+				OTHER_LDFLAGS = (
+					"-framework",
+					Foundation,
+					"-framework",
+					AppKit,
+				);
+				PREBINDING = NO;
+				PRODUCT_NAME = AdiumFauxSpotlightImporter;
+			};
+			name = Debug;
+		};
 		345AF7D70A5D55BC00D7DA6F /* Release */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
@@ -538,6 +682,16 @@
 /* End XCBuildConfiguration section */
 
 /* Begin XCConfigurationList section */
+		31583FD8105C0C5000E4447D /* Build configuration list for PBXNativeTarget "AdiumFauxSpotlightImporter" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				31583FD5105C0C5000E4447D /* Release */,
+				31583FD6105C0C5000E4447D /* Release-Debug */,
+				31583FD7105C0C5000E4447D /* Debug */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Debug;
+		};
 		345AF7D50A5D55BC00D7DA6F /* Build configuration list for PBXNativeTarget "AISpotlightImporterTest" */ = {
 			isa = XCConfigurationList;
 			buildConfigurations = (
diff -r 4ca570ee06cb -r 91f8ba5821d4 Other/Adium Spotlight Importer/English.lproj/AFSIMainMenu.xib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Other/Adium Spotlight Importer/English.lproj/AFSIMainMenu.xib	Sat Sep 12 11:10:35 2009 -0700
@@ -0,0 +1,3613 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
+	<data>
+		<int key="IBDocument.SystemTarget">1050</int>
+		<string key="IBDocument.SystemVersion">10B504</string>
+		<string key="IBDocument.InterfaceBuilderVersion">732</string>
+		<string key="IBDocument.AppKitVersion">1038.2</string>
+		<string key="IBDocument.HIToolboxVersion">437.00</string>
+		<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
+			<string key="NS.object.0">732</string>
+		</object>
+		<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+			<bool key="EncodedWithXMLCoder">YES</bool>
+			<integer value="29"/>
+		</object>
+		<object class="NSArray" key="IBDocument.PluginDependencies">
+			<bool key="EncodedWithXMLCoder">YES</bool>
+			<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+		</object>
+		<object class="NSMutableDictionary" key="IBDocument.Metadata">
+			<bool key="EncodedWithXMLCoder">YES</bool>
+			<object class="NSArray" key="dict.sortedKeys" id="0">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+			</object>
+			<object class="NSMutableArray" key="dict.values">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+			</object>
+		</object>
+		<object class="NSMutableArray" key="IBDocument.RootObjects" id="1048">
+			<bool key="EncodedWithXMLCoder">YES</bool>
+			<object class="NSCustomObject" id="1021">
+				<string key="NSClassName">NSApplication</string>
+			</object>
+			<object class="NSCustomObject" id="1014">
+				<string key="NSClassName">FirstResponder</string>
+			</object>
+			<object class="NSCustomObject" id="1050">
+				<string key="NSClassName">NSApplication</string>
+			</object>
+			<object class="NSCustomObject" id="203559887">
+				<string key="NSClassName">NSFontManager</string>
+			</object>
+			<object class="NSMenu" id="649796088">
+				<string key="NSTitle">Main Menu</string>
+				<object class="NSMutableArray" key="NSMenuItems">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+					<object class="NSMenuItem" id="694149608">
+						<reference key="NSMenu" ref="649796088"/>
+						<string key="NSTitle">New Application</string>
+						<string key="NSKeyEquiv"/>
+						<int key="NSMnemonicLoc">2147483647</int>
+						<object class="NSCustomResource" key="NSOnImage" id="756751024">
+							<string key="NSClassName">NSImage</string>
+							<string key="NSResourceName">NSMenuCheckmark</string>
+						</object>
+						<object class="NSCustomResource" key="NSMixedImage" id="908425081">
+							<string key="NSClassName">NSImage</string>
+							<string key="NSResourceName">NSMenuMixedState</string>
+						</object>
+						<string key="NSAction">submenuAction:</string>
+						<object class="NSMenu" key="NSSubmenu" id="110575045">
+							<string key="NSTitle">New Application</string>
+							<object class="NSMutableArray" key="NSMenuItems">
+								<bool key="EncodedWithXMLCoder">YES</bool>
+								<object class="NSMenuItem" id="238522557">
+									<reference key="NSMenu" ref="110575045"/>
+									<string key="NSTitle">About New Application</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+								</object>
+								<object class="NSMenuItem" id="304266470">
+									<reference key="NSMenu" ref="110575045"/>
+									<bool key="NSIsDisabled">YES</bool>
+									<bool key="NSIsSeparator">YES</bool>
+									<string key="NSTitle"/>
+									<string key="NSKeyEquiv"/>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+								</object>
+								<object class="NSMenuItem" id="609285721">
+									<reference key="NSMenu" ref="110575045"/>
+									<string key="NSTitle">Preferences…</string>
+									<string key="NSKeyEquiv">,</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+								</object>
+								<object class="NSMenuItem" id="481834944">
+									<reference key="NSMenu" ref="110575045"/>
+									<bool key="NSIsDisabled">YES</bool>
+									<bool key="NSIsSeparator">YES</bool>
+									<string key="NSTitle"/>
+									<string key="NSKeyEquiv"/>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+								</object>
+								<object class="NSMenuItem" id="1046388886">
+									<reference key="NSMenu" ref="110575045"/>
+									<string key="NSTitle">Services</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+									<string key="NSAction">submenuAction:</string>
+									<object class="NSMenu" key="NSSubmenu" id="752062318">
+										<string key="NSTitle">Services</string>
+										<object class="NSMutableArray" key="NSMenuItems">
+											<bool key="EncodedWithXMLCoder">YES</bool>
+										</object>
+										<string key="NSName">_NSServicesMenu</string>
+									</object>
+								</object>
+								<object class="NSMenuItem" id="646227648">
+									<reference key="NSMenu" ref="110575045"/>
+									<bool key="NSIsDisabled">YES</bool>
+									<bool key="NSIsSeparator">YES</bool>
+									<string key="NSTitle"/>
+									<string key="NSKeyEquiv"/>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+								</object>
+								<object class="NSMenuItem" id="755159360">
+									<reference key="NSMenu" ref="110575045"/>
+									<string key="NSTitle">Hide New Application</string>
+									<string key="NSKeyEquiv">h</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+								</object>
+								<object class="NSMenuItem" id="342932134">
+									<reference key="NSMenu" ref="110575045"/>
+									<string key="NSTitle">Hide Others</string>
+									<string key="NSKeyEquiv">h</string>
+									<int key="NSKeyEquivModMask">1572864</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+								</object>
+								<object class="NSMenuItem" id="908899353">
+									<reference key="NSMenu" ref="110575045"/>
+									<string key="NSTitle">Show All</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+								</object>
+								<object class="NSMenuItem" id="1056857174">
+									<reference key="NSMenu" ref="110575045"/>
+									<bool key="NSIsDisabled">YES</bool>
+									<bool key="NSIsSeparator">YES</bool>
+									<string key="NSTitle"/>
+									<string key="NSKeyEquiv"/>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+								</object>
+								<object class="NSMenuItem" id="632727374">
+									<reference key="NSMenu" ref="110575045"/>
+									<string key="NSTitle">Quit New Application</string>
+									<string key="NSKeyEquiv">q</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+								</object>
+							</object>
+							<string key="NSName">_NSAppleMenu</string>
+						</object>
+					</object>
+					<object class="NSMenuItem" id="379814623">
+						<reference key="NSMenu" ref="649796088"/>
+						<string key="NSTitle">File</string>
+						<string key="NSKeyEquiv"/>
+						<int key="NSMnemonicLoc">2147483647</int>
+						<reference key="NSOnImage" ref="756751024"/>
+						<reference key="NSMixedImage" ref="908425081"/>
+						<string key="NSAction">submenuAction:</string>
+						<object class="NSMenu" key="NSSubmenu" id="720053764">
+							<string key="NSTitle">File</string>
+							<object class="NSMutableArray" key="NSMenuItems">
+								<bool key="EncodedWithXMLCoder">YES</bool>
+								<object class="NSMenuItem" id="705341025">
+									<reference key="NSMenu" ref="720053764"/>
+									<string key="NSTitle">New</string>
+									<string key="NSKeyEquiv">n</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+								</object>
+								<object class="NSMenuItem" id="722745758">
+									<reference key="NSMenu" ref="720053764"/>
+									<string key="NSTitle">Open…</string>
+									<string key="NSKeyEquiv">o</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+								</object>
+								<object class="NSMenuItem" id="1025936716">
+									<reference key="NSMenu" ref="720053764"/>
+									<string key="NSTitle">Open Recent</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+									<string key="NSAction">submenuAction:</string>
+									<object class="NSMenu" key="NSSubmenu" id="1065607017">
+										<string key="NSTitle">Open Recent</string>
+										<object class="NSMutableArray" key="NSMenuItems">
+											<bool key="EncodedWithXMLCoder">YES</bool>
+											<object class="NSMenuItem" id="759406840">
+												<reference key="NSMenu" ref="1065607017"/>
+												<string key="NSTitle">Clear Menu</string>
+												<string key="NSKeyEquiv"/>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="756751024"/>
+												<reference key="NSMixedImage" ref="908425081"/>
+											</object>
+										</object>
+										<string key="NSName">_NSRecentDocumentsMenu</string>
+									</object>
+								</object>
+								<object class="NSMenuItem" id="425164168">
+									<reference key="NSMenu" ref="720053764"/>
+									<bool key="NSIsDisabled">YES</bool>
+									<bool key="NSIsSeparator">YES</bool>
+									<string key="NSTitle"/>
+									<string key="NSKeyEquiv"/>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+								</object>
+								<object class="NSMenuItem" id="776162233">
+									<reference key="NSMenu" ref="720053764"/>
+									<string key="NSTitle">Close</string>
+									<string key="NSKeyEquiv">w</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+								</object>
+								<object class="NSMenuItem" id="1023925487">
+									<reference key="NSMenu" ref="720053764"/>
+									<string key="NSTitle">Save</string>
+									<string key="NSKeyEquiv">s</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+								</object>
+								<object class="NSMenuItem" id="117038363">
+									<reference key="NSMenu" ref="720053764"/>
+									<string key="NSTitle">Save As…</string>
+									<string key="NSKeyEquiv">S</string>
+									<int key="NSKeyEquivModMask">1179648</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+								</object>
+								<object class="NSMenuItem" id="579971712">
+									<reference key="NSMenu" ref="720053764"/>
+									<string key="NSTitle">Revert to Saved</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+								</object>
+								<object class="NSMenuItem" id="1010469920">
+									<reference key="NSMenu" ref="720053764"/>
+									<bool key="NSIsDisabled">YES</bool>
+									<bool key="NSIsSeparator">YES</bool>
+									<string key="NSTitle"/>
+									<string key="NSKeyEquiv"/>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+								</object>
+								<object class="NSMenuItem" id="294629803">
+									<reference key="NSMenu" ref="720053764"/>
+									<string key="NSTitle">Page Setup...</string>
+									<string key="NSKeyEquiv">P</string>
+									<int key="NSKeyEquivModMask">1179648</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+									<string key="NSToolTip"/>
+								</object>
+								<object class="NSMenuItem" id="49223823">
+									<reference key="NSMenu" ref="720053764"/>
+									<string key="NSTitle">Print…</string>
+									<string key="NSKeyEquiv">p</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+								</object>
+							</object>
+						</object>
+					</object>
+					<object class="NSMenuItem" id="584895621">
+						<reference key="NSMenu" ref="649796088"/>
+						<string key="NSTitle">Edit</string>
+						<string key="NSKeyEquiv"/>
+						<int key="NSMnemonicLoc">2147483647</int>
+						<reference key="NSOnImage" ref="756751024"/>
+						<reference key="NSMixedImage" ref="908425081"/>
+						<string key="NSAction">submenuAction:</string>
+						<object class="NSMenu" key="NSSubmenu" id="141080932">
+							<string key="NSTitle">Edit</string>
+							<object class="NSMutableArray" key="NSMenuItems">
+								<bool key="EncodedWithXMLCoder">YES</bool>
+								<object class="NSMenuItem" id="80034836">
+									<reference key="NSMenu" ref="141080932"/>
+									<string key="NSTitle">Undo</string>
+									<string key="NSKeyEquiv">z</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+								</object>
+								<object class="NSMenuItem" id="128588396">
+									<reference key="NSMenu" ref="141080932"/>
+									<string key="NSTitle">Redo</string>
+									<string key="NSKeyEquiv">Z</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+								</object>
+								<object class="NSMenuItem" id="165057028">
+									<reference key="NSMenu" ref="141080932"/>
+									<bool key="NSIsDisabled">YES</bool>
+									<bool key="NSIsSeparator">YES</bool>
+									<string key="NSTitle"/>
+									<string key="NSKeyEquiv"/>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+								</object>
+								<object class="NSMenuItem" id="5858980">
+									<reference key="NSMenu" ref="141080932"/>
+									<string key="NSTitle">Cut</string>
+									<string key="NSKeyEquiv">x</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+								</object>
+								<object class="NSMenuItem" id="704355768">
+									<reference key="NSMenu" ref="141080932"/>
+									<string key="NSTitle">Copy</string>
+									<string key="NSKeyEquiv">c</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+								</object>
+								<object class="NSMenuItem" id="275307167">
+									<reference key="NSMenu" ref="141080932"/>
+									<string key="NSTitle">Paste</string>
+									<string key="NSKeyEquiv">v</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+								</object>
+								<object class="NSMenuItem" id="284442814">
+									<reference key="NSMenu" ref="141080932"/>
+									<string key="NSTitle">Paste and Match Style</string>
+									<string key="NSKeyEquiv">V</string>
+									<int key="NSKeyEquivModMask">1572864</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+								</object>
+								<object class="NSMenuItem" id="714155551">
+									<reference key="NSMenu" ref="141080932"/>
+									<string key="NSTitle">Delete</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+								</object>
+								<object class="NSMenuItem" id="197377228">
+									<reference key="NSMenu" ref="141080932"/>
+									<string key="NSTitle">Select All</string>
+									<string key="NSKeyEquiv">a</string>
+									<int key="NSKeyEquivModMask">1048576</int>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+								</object>
+								<object class="NSMenuItem" id="246962120">
+									<reference key="NSMenu" ref="141080932"/>
+									<bool key="NSIsDisabled">YES</bool>
+									<bool key="NSIsSeparator">YES</bool>
+									<string key="NSTitle"/>
+									<string key="NSKeyEquiv"/>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+								</object>
+								<object class="NSMenuItem" id="602982148">
+									<reference key="NSMenu" ref="141080932"/>
+									<string key="NSTitle">Find</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+									<string key="NSAction">submenuAction:</string>
+									<object class="NSMenu" key="NSSubmenu" id="930654435">
+										<string key="NSTitle">Find</string>
+										<object class="NSMutableArray" key="NSMenuItems">
+											<bool key="EncodedWithXMLCoder">YES</bool>
+											<object class="NSMenuItem" id="671868626">
+												<reference key="NSMenu" ref="930654435"/>
+												<string key="NSTitle">Find…</string>
+												<string key="NSKeyEquiv">f</string>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="756751024"/>
+												<reference key="NSMixedImage" ref="908425081"/>
+												<int key="NSTag">1</int>
+											</object>
+											<object class="NSMenuItem" id="497741775">
+												<reference key="NSMenu" ref="930654435"/>
+												<string key="NSTitle">Find Next</string>
+												<string key="NSKeyEquiv">g</string>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="756751024"/>
+												<reference key="NSMixedImage" ref="908425081"/>
+												<int key="NSTag">2</int>
+											</object>
+											<object class="NSMenuItem" id="285322108">
+												<reference key="NSMenu" ref="930654435"/>
+												<string key="NSTitle">Find Previous</string>
+												<string key="NSKeyEquiv">G</string>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="756751024"/>
+												<reference key="NSMixedImage" ref="908425081"/>
+												<int key="NSTag">3</int>
+											</object>
+											<object class="NSMenuItem" id="456308224">
+												<reference key="NSMenu" ref="930654435"/>
+												<string key="NSTitle">Use Selection for Find</string>
+												<string key="NSKeyEquiv">e</string>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="756751024"/>
+												<reference key="NSMixedImage" ref="908425081"/>
+												<int key="NSTag">7</int>
+											</object>
+											<object class="NSMenuItem" id="548069040">
+												<reference key="NSMenu" ref="930654435"/>
+												<string key="NSTitle">Jump to Selection</string>
+												<string key="NSKeyEquiv">j</string>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="756751024"/>
+												<reference key="NSMixedImage" ref="908425081"/>
+											</object>
+										</object>
+									</object>
+								</object>
+								<object class="NSMenuItem" id="245090864">
+									<reference key="NSMenu" ref="141080932"/>
+									<string key="NSTitle">Spelling and Grammar</string>
+									<string key="NSKeyEquiv"/>
+									<int key="NSMnemonicLoc">2147483647</int>
+									<reference key="NSOnImage" ref="756751024"/>
+									<reference key="NSMixedImage" ref="908425081"/>
+									<string key="NSAction">submenuAction:</string>
+									<object class="NSMenu" key="NSSubmenu" id="339865479">
+										<string key="NSTitle">Spelling</string>
+										<object class="NSMutableArray" key="NSMenuItems">
+											<bool key="EncodedWithXMLCoder">YES</bool>
+											<object class="NSMenuItem" id="801248297">
+												<reference key="NSMenu" ref="339865479"/>
+												<string key="NSTitle">Show Spelling and Grammar</string>
+												<string key="NSKeyEquiv">:</string>
+												<int key="NSKeyEquivModMask">1048576</int>
+												<int key="NSMnemonicLoc">2147483647</int>
+												<reference key="NSOnImage" ref="756751024"/>
+												<reference key="NSMixedImage" ref="908425081"/>


More information about the commits mailing list