Revision: 4357
          http://skim-app.svn.sourceforge.net/skim-app/?rev=4357&view=rev
Author:   hofman
Date:     2008-08-06 01:37:59 +0000 (Wed, 06 Aug 2008)

Log Message:
-----------
Remove API to swizzle methods using obj-c methods. Directly use the functions 
instead. Apparently using methods to mess with classes is dangerous, it somehow 
does not work in NSScroller.

Modified Paths:
--------------
    trunk/NSCell_SKExtensions.m
    trunk/NSCharacterSet_SKExtensions.m
    trunk/NSScrollView_SKExtensions.m
    trunk/NSURL_SKExtensions.m
    trunk/PDFAnnotationLink_SKExtensions.m
    trunk/PDFAnnotationMarkup_SKExtensions.m
    trunk/PDFDisplayView_SKExtensions.m
    trunk/PDFDocument_SKExtensions.m
    trunk/PDFPage_SKExtensions.m
    trunk/SKApplicationController.m
    trunk/SKBookmark.m
    trunk/SKBookmarkController.m
    trunk/SKColorSwatch.m
    trunk/SKDocumentController.m
    trunk/SKFindTableView.m
    trunk/SKFontWell.m
    trunk/SKInfoWindowController.m
    trunk/SKLineWell.m
    trunk/SKMainWindowController.m
    trunk/SKNoteWindowController.m
    trunk/SKPDFView.m
    trunk/SKRuntime.h
    trunk/SKRuntime.m
    trunk/SKSnapshotPageCell.m
    trunk/SKSnapshotWindowController.m
    trunk/SKTemplateParser.m
    trunk/SKThumbnailTableView.m
    trunk/SKTypeSelectHelper.m
    trunk/Skim.xcodeproj/project.pbxproj

Removed Paths:
-------------
    trunk/NSObject_SKExtensions.h
    trunk/NSObject_SKExtensions.m

Modified: trunk/NSCell_SKExtensions.m
===================================================================
--- trunk/NSCell_SKExtensions.m 2008-08-05 21:48:38 UTC (rev 4356)
+++ trunk/NSCell_SKExtensions.m 2008-08-06 01:37:59 UTC (rev 4357)
@@ -39,7 +39,7 @@
  */
 
 #import "NSCell_SKExtensions.h"
-#import "NSObject_SKExtensions.h"
+#import "SKRuntime.h"
 
 
 @implementation NSCell (SKExtensions)
@@ -54,7 +54,7 @@
 }
 
 + (void)load {
-    originalHighlightColorWithFrameInView = (id (*)(id, SEL, NSRect, id))[self 
setInstanceMethodFromSelector:@selector(replacementHighlightColorWithFrame:inView:)
 forSelector:@selector(highlightColorWithFrame:inView:)];
+    originalHighlightColorWithFrameInView = (id (*)(id, SEL, NSRect, 
id))SKReplaceMethodImplementationFromSelector(self, 
@selector(highlightColorWithFrame:inView:), 
@selector(replacementHighlightColorWithFrame:inView:), YES);
 }
 
 @end

Modified: trunk/NSCharacterSet_SKExtensions.m
===================================================================
--- trunk/NSCharacterSet_SKExtensions.m 2008-08-05 21:48:38 UTC (rev 4356)
+++ trunk/NSCharacterSet_SKExtensions.m 2008-08-06 01:37:59 UTC (rev 4357)
@@ -37,7 +37,7 @@
  */
 
 #import "NSCharacterSet_SKExtensions.h"
-#import "NSObject_SKExtensions.h"
+#import "SKRuntime.h"
 
 
 @implementation NSCharacterSet (SKExtensions)
@@ -70,7 +70,7 @@
 
 + (void)load {
     if ([self respondsToSelector:@selector(newlineCharacterSet)] == NO)
-        [self setMethodFromSelector:@selector(replacementNewlineCharacterSet) 
forSelector:@selector(newlineCharacterSet)];
+        SKReplaceMethodImplementationFromSelector(self, 
@selector(newlineCharacterSet), @selector(replacementNewlineCharacterSet), NO);
 }
 
 @end

Deleted: trunk/NSObject_SKExtensions.h
===================================================================
--- trunk/NSObject_SKExtensions.h       2008-08-05 21:48:38 UTC (rev 4356)
+++ trunk/NSObject_SKExtensions.h       2008-08-06 01:37:59 UTC (rev 4357)
@@ -1,65 +0,0 @@
-//
-//  NSObject_SKExtensions.h
-//  Skim
-//
-//  Created by Christiaan Hofman on 7/22/08.
-/*
- This software is Copyright (c) 2008
- Christiaan Hofman. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
-
- - Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
- - Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in
-    the documentation and/or other materials provided with the
-    distribution.
-
- - Neither the name of Christiaan Hofman nor the names of any
-    contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#import <Cocoa/Cocoa.h>
-
-#define OBINITIALIZE \
-    do { \
-        static BOOL hasBeenInitialized = NO; \
-        [super initialize]; \
-        if (hasBeenInitialized) \
-            return; \
-        hasBeenInitialized = YES;\
-    } while (0);
-
-
[EMAIL PROTECTED] NSObject (SKExtensions)
-
-+ (IMP)setMethod:(IMP)anImp typeEncoding:(const char *)types 
forSelector:(SEL)aSelector;
-- (IMP)setMethod:(IMP)anImp typeEncoding:(const char *)types 
forSelector:(SEL)aSelector;
-+ (IMP)setInstanceMethod:(IMP)anImp typeEncoding:(const char *)types 
forSelector:(SEL)aSelector;
-
-+ (IMP)setMethodFromSelector:(SEL)impSelector forSelector:(SEL)aSelector;
-- (IMP)setMethodFromSelector:(SEL)impSelector forSelector:(SEL)aSelector;
-+ (IMP)setInstanceMethodFromSelector:(SEL)impSelector 
forSelector:(SEL)aSelector;
-
-+ (void)exchangeMethodForSelector:(SEL)aSelector1 
withMethodForSelector:(SEL)aSelector2;
-- (void)exchangeMethodForSelector:(SEL)aSelector1 
withMethodForSelector:(SEL)aSelector2;
-+ (void)exchangeInstanceMethodForSelector:(SEL)aSelector1 
withInstanceMethodForSelector:(SEL)aSelector2;
-
[EMAIL PROTECTED]

Deleted: trunk/NSObject_SKExtensions.m
===================================================================
--- trunk/NSObject_SKExtensions.m       2008-08-05 21:48:38 UTC (rev 4356)
+++ trunk/NSObject_SKExtensions.m       2008-08-06 01:37:59 UTC (rev 4357)
@@ -1,101 +0,0 @@
-//
-//  NSObject_SKExtensions.m
-//  Skim
-//
-//  Created by Christiaan Hofman on 7/22/08.
-/*
- This software is Copyright (c) 2008
- Christiaan Hofman. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
-
- - Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
- - Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in
-    the documentation and/or other materials provided with the
-    distribution.
-
- - Neither the name of Christiaan Hofman nor the names of any
-    contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#import "NSObject_SKExtensions.h"
-#import "SKRuntime.h"
-
-
-static inline IMP SKReplaceMethodImplementation(Class aClass, SEL aSelector, 
IMP anImp, const char *types, BOOL isInstance) {
-    IMP imp = NULL;
-    if (anImp) {
-        Method method = isInstance ? class_getInstanceMethod(aClass, 
aSelector) : class_getClassMethod(aClass, aSelector);
-        if (method) {
-            imp = SK_method_getImplementation(method);
-            if (types == NULL)
-                types = SK_method_getTypeEncoding(method);
-        }
-        if (types)
-            SK_class_replaceMethod(isInstance ? aClass : 
SK_object_getClass(aClass), aSelector, anImp, types);
-    }
-    return imp;
-}
-
-static inline IMP SKReplaceMethodImplementationFromSelector(Class aClass, SEL 
aSelector, SEL impSelector, BOOL isInstance) {
-    Method method = isInstance ? class_getInstanceMethod(aClass, impSelector) 
: class_getClassMethod(aClass, impSelector);
-    return method ? SKReplaceMethodImplementation(aClass, aSelector, 
SK_method_getImplementation(method), SK_method_getTypeEncoding(method), 
isInstance) : NULL;
-}
-
[EMAIL PROTECTED] NSObject (SKExtensions)
-
-+ (IMP)setMethod:(IMP)anImp typeEncoding:(const char *)types 
forSelector:(SEL)aSelector {
-    return SKReplaceMethodImplementation(self, aSelector, anImp, types, NO);
-}
-
-- (IMP)setMethod:(IMP)anImp typeEncoding:(const char *)types 
forSelector:(SEL)aSelector {
-       return [[self class] setInstanceMethod:anImp typeEncoding:types 
forSelector:aSelector];
-}
-
-+ (IMP)setInstanceMethod:(IMP)anImp typeEncoding:(const char *)types 
forSelector:(SEL)aSelector {
-    return SKReplaceMethodImplementation(self, aSelector, anImp, types, YES);
-}
-
-+ (IMP)setMethodFromSelector:(SEL)impSelector forSelector:(SEL)aSelector {
-    return SKReplaceMethodImplementationFromSelector(self, aSelector, 
impSelector, NO);
-}
-
-- (IMP)setMethodFromSelector:(SEL)impSelector forSelector:(SEL)aSelector {
-    return [[self class] setInstanceMethodFromSelector:impSelector 
forSelector:aSelector];
-}
-
-+ (IMP)setInstanceMethodFromSelector:(SEL)impSelector 
forSelector:(SEL)aSelector {
-    return SKReplaceMethodImplementationFromSelector(self, aSelector, 
impSelector, YES);
-}
-
-+ (void)exchangeMethodForSelector:(SEL)aSelector1 
withMethodForSelector:(SEL)aSelector2 {
-    [self setMethod:[self setMethodFromSelector:aSelector2 
forSelector:aSelector1] typeEncoding:NULL forSelector:aSelector2];
-}
-
-- (void)exchangeMethodForSelector:(SEL)aSelector1 
withMethodForSelector:(SEL)aSelector2 {
-    [[self class] exchangeInstanceMethodForSelector:aSelector1 
withInstanceMethodForSelector:aSelector2];
-}
-
-+ (void)exchangeInstanceMethodForSelector:(SEL)aSelector1 
withInstanceMethodForSelector:(SEL)aSelector2 {
-    [self setInstanceMethod:[self setInstanceMethodFromSelector:aSelector2 
forSelector:aSelector1] typeEncoding:NULL forSelector:aSelector2];
-}
-
[EMAIL PROTECTED]

Modified: trunk/NSScrollView_SKExtensions.m
===================================================================
--- trunk/NSScrollView_SKExtensions.m   2008-08-05 21:48:38 UTC (rev 4356)
+++ trunk/NSScrollView_SKExtensions.m   2008-08-06 01:37:59 UTC (rev 4357)
@@ -37,7 +37,7 @@
  */
 
 #import "NSScrollView_SKExtensions.h"
-#import "NSObject_SKExtensions.h"
+#import "SKRuntime.h"
 #import "BDSKEdgeView.h"
 
 
@@ -103,10 +103,10 @@
 }
 
 + (void)load{
-    originalSetHasHorizontalScroller = (void (*)(id, SEL, BOOL))[self 
setInstanceMethodFromSelector:@selector(replacementSetHasHorizontalScroller:) 
forSelector:@selector(setHasHorizontalScroller:)];
-    originalSetAutohidesScrollers = (void (*)(id, SEL, BOOL))[self 
setInstanceMethodFromSelector:@selector(replacementSetAutohidesScrollers:) 
forSelector:@selector(setAutohidesScrollers:)];
-    originalDealloc = (void (*)(id, SEL))[self 
setInstanceMethodFromSelector:@selector(replacementDealloc) 
forSelector:@selector(dealloc)];
-    originalTile = (void (*)(id, SEL))[self 
setInstanceMethodFromSelector:@selector(replacementTile) 
forSelector:@selector(tile)];
+    originalSetHasHorizontalScroller = (void (*)(id, SEL, 
BOOL))SKReplaceMethodImplementationFromSelector(self, 
@selector(setHasHorizontalScroller:), 
@selector(replacementSetHasHorizontalScroller:), YES);
+    originalSetAutohidesScrollers = (void (*)(id, SEL, 
BOOL))SKReplaceMethodImplementationFromSelector(self, 
@selector(setAutohidesScrollers:), 
@selector(replacementSetAutohidesScrollers:), YES);
+    originalDealloc = (void (*)(id, 
SEL))SKReplaceMethodImplementationFromSelector(self, @selector(dealloc), 
@selector(replacementDealloc), YES);
+    originalTile = (void (*)(id, 
SEL))SKReplaceMethodImplementationFromSelector(self, @selector(tile), 
@selector(replacementTile), YES);
     
     // dictionary doesn't retain keys, so no retain cycles; pointer equality 
used to compare views
     scrollViewPlacards = CFDictionaryCreateMutable(CFAllocatorGetDefault(), 0, 
NULL, &kCFTypeDictionaryValueCallBacks);

Modified: trunk/NSURL_SKExtensions.m
===================================================================
--- trunk/NSURL_SKExtensions.m  2008-08-05 21:48:38 UTC (rev 4356)
+++ trunk/NSURL_SKExtensions.m  2008-08-06 01:37:59 UTC (rev 4357)
@@ -37,7 +37,7 @@
  */
 
 #import "NSURL_SKExtensions.h"
-#import "NSObject_SKExtensions.h"
+#import "SKRuntime.h"
 
 NSString *SKWeblocFilePboardType = @"CorePasteboardFlavorType 0x75726C20";
 
@@ -55,8 +55,8 @@
 }
 
 + (void)load {
-    originalInitFileURLWithPath = (id (*)(id, SEL, id))[self 
setInstanceMethodFromSelector:@selector(replacementInitFileURLWithPath:) 
forSelector:@selector(initFileURLWithPath:)];
-    originalInitWithString = (id (*)(id, SEL, id))[self 
setInstanceMethodFromSelector:@selector(replacementInitWithString:) 
forSelector:@selector(initWithString:)];
+    originalInitFileURLWithPath = (id (*)(id, SEL, 
id))SKReplaceMethodImplementationFromSelector(self, 
@selector(initFileURLWithPath:), @selector(replacementInitFileURLWithPath:), 
YES);
+    originalInitWithString = (id (*)(id, SEL, 
id))SKReplaceMethodImplementationFromSelector(self, @selector(initWithString:), 
@selector(replacementInitWithString:), YES);
 }
 
 + (NSURL *)URLFromPasteboardAnyType:(NSPasteboard *)pasteboard {

Modified: trunk/PDFAnnotationLink_SKExtensions.m
===================================================================
--- trunk/PDFAnnotationLink_SKExtensions.m      2008-08-05 21:48:38 UTC (rev 
4356)
+++ trunk/PDFAnnotationLink_SKExtensions.m      2008-08-06 01:37:59 UTC (rev 
4357)
@@ -37,7 +37,7 @@
  */
 
 #import "PDFAnnotationLink_SKExtensions.h"
-#import "NSObject_SKExtensions.h"
+#import "SKRuntime.h"
 
 
 @interface PDFAnnotationLink (SKLeopardPrivate)
@@ -62,9 +62,9 @@
 
 + (void)load {
     if ([self instancesRespondToSelector:@selector(toolTip)])
-        originalToolTip = (id (*)(id, SEL))[self 
setInstanceMethodFromSelector:@selector(replacementToolTip) 
forSelector:@selector(toolTip)];
+        originalToolTip = (id (*)(id, 
SEL))SKReplaceMethodImplementationFromSelector(self, @selector(toolTip), 
@selector(replacementToolTip), YES);
     if ([self instancesRespondToSelector:@selector(toolTipNoLabel)])
-        originalToolTipNoLabel = (id (*)(id, SEL))[self 
setInstanceMethodFromSelector:@selector(replacementToolTipNoLabel) 
forSelector:@selector(toolTip)];
+        originalToolTipNoLabel = (id (*)(id, 
SEL))SKReplaceMethodImplementationFromSelector(self, @selector(toolTip), 
@selector(replacementToolTipNoLabel), YES);
 }
 
 - (BOOL)isLink { return YES; }

Modified: trunk/PDFAnnotationMarkup_SKExtensions.m
===================================================================
--- trunk/PDFAnnotationMarkup_SKExtensions.m    2008-08-05 21:48:38 UTC (rev 
4356)
+++ trunk/PDFAnnotationMarkup_SKExtensions.m    2008-08-06 01:37:59 UTC (rev 
4357)
@@ -46,7 +46,7 @@
 #import "NSUserDefaults_SKExtensions.h"
 #import "NSGeometry_SKExtensions.h"
 #import "SKCFCallBacks.h"
-#import "NSObject_SKExtensions.h"
+#import "SKRuntime.h"
 
 
 NSString *SKPDFAnnotationSelectionSpecifierKey = @"selectionSpecifier";
@@ -123,9 +123,9 @@
 }
 
 + (void)load {
-    originalDealloc = (void (*)(id, SEL))[self 
setInstanceMethodFromSelector:@selector(replacementDealloc) 
forSelector:@selector(dealloc)];
+    originalDealloc = (void (*)(id, 
SEL))SKReplaceMethodImplementationFromSelector(self, @selector(dealloc), 
@selector(replacementDealloc), YES);
     if (floor(NSAppKitVersionNumber) <= NSAppKitVersionNumber10_4)
-        originalDrawWithBoxInContext = (void (*)(id, SEL, CGPDFBox, 
CGContextRef))[self 
setInstanceMethodFromSelector:@selector(replacementDrawWithBox:inContext:) 
forSelector:@selector(drawWithBox:inContext:)];
+        originalDrawWithBoxInContext = (void (*)(id, SEL, CGPDFBox, 
CGContextRef))SKReplaceMethodImplementationFromSelector(self, 
@selector(drawWithBox:inContext:), 
@selector(replacementDrawWithBox:inContext:), YES);
     lineRectsDict = CFDictionaryCreateMutable(kCFAllocatorDefault, 0, NULL, 
&kCFTypeDictionaryValueCallBacks);
 }
 

Modified: trunk/PDFDisplayView_SKExtensions.m
===================================================================
--- trunk/PDFDisplayView_SKExtensions.m 2008-08-05 21:48:38 UTC (rev 4356)
+++ trunk/PDFDisplayView_SKExtensions.m 2008-08-06 01:37:59 UTC (rev 4357)
@@ -42,7 +42,7 @@
 #import "PDFAnnotation_SKExtensions.h"
 #import "NSAttributedString_SKExtensions.h"
 #import "SKPDFDocument.h"
-#import "NSObject_SKExtensions.h"
+#import "SKRuntime.h"
 #import "SKAccessibilityProxyElement.h"
 
 @interface NSView (SKPDFDisplayViewprivateDeclarations)
@@ -227,31 +227,31 @@
     Class PDFDisplayViewClass = NSClassFromString(@"PDFDisplayView");
     if (PDFDisplayViewClass) {
         if ([PDFDisplayViewClass 
instancesRespondToSelector:@selector(resetCursorRects)])
-            originalResetCursorRects = (void (*)(id, SEL))[PDFDisplayViewClass 
setInstanceMethod:(IMP)replacementResetCursorRects typeEncoding:NULL 
forSelector:@selector(resetCursorRects)];
+            originalResetCursorRects = (void (*)(id, 
SEL))SKReplaceMethodImplementation(PDFDisplayViewClass, 
@selector(resetCursorRects), (IMP)replacementResetCursorRects, NULL, YES);
         if ([PDFDisplayViewClass 
instancesRespondToSelector:@selector(passwordEntered:)])
-            originalPasswordEntered = (void (*)(id, SEL, 
id))[PDFDisplayViewClass setInstanceMethod:(IMP)replacementPasswordEntered 
typeEncoding:NULL forSelector:@selector(passwordEntered:)];
+            originalPasswordEntered = (void (*)(id, SEL, 
id))SKReplaceMethodImplementation(PDFDisplayViewClass, 
@selector(passwordEntered:), (IMP)replacementPasswordEntered, NULL, YES);
         
         if ([[NSUserDefaults standardUserDefaults] 
boolForKey:@"SKDisableExtendedPDFViewAccessibility"]) return;
         
         if ([PDFDisplayViewClass 
instancesRespondToSelector:@selector(accessibilityAttributeNames)])
-            originalAccessibilityAttributeNames = (id (*)(id, 
SEL))[PDFDisplayViewClass 
setInstanceMethod:(IMP)replacementAccessibilityAttributeNames typeEncoding:NULL 
forSelector:@selector(accessibilityAttributeNames)];
+            originalAccessibilityAttributeNames = (id (*)(id, 
SEL))SKReplaceMethodImplementation(PDFDisplayViewClass, 
@selector(accessibilityAttributeNames), 
(IMP)replacementAccessibilityAttributeNames, NULL, YES);
         if ([PDFDisplayViewClass 
instancesRespondToSelector:@selector(accessibilityParameterizedAttributeNames)])
-            originalAccessibilityParameterizedAttributeNames = (id (*)(id, 
SEL))[PDFDisplayViewClass 
setInstanceMethod:(IMP)replacementAccessibilityParameterizedAttributeNames 
typeEncoding:NULL 
forSelector:@selector(accessibilityParameterizedAttributeNames)];
+            originalAccessibilityParameterizedAttributeNames = (id (*)(id, 
SEL))SKReplaceMethodImplementation(PDFDisplayViewClass, 
@selector(accessibilityParameterizedAttributeNames), 
(IMP)replacementAccessibilityParameterizedAttributeNames, NULL, YES);
         if ([PDFDisplayViewClass 
instancesRespondToSelector:@selector(accessibilityAttributeValue:)])
-            originalAccessibilityAttributeValue = (id (*)(id, SEL, 
id))[PDFDisplayViewClass 
setInstanceMethod:(IMP)replacementAccessibilityAttributeValue typeEncoding:NULL 
forSelector:@selector(accessibilityAttributeValue:)];
+            originalAccessibilityAttributeValue = (id (*)(id, SEL, 
id))SKReplaceMethodImplementation(PDFDisplayViewClass, 
@selector(accessibilityAttributeValue:), 
(IMP)replacementAccessibilityAttributeValue, NULL, YES);
         if ([PDFDisplayViewClass 
instancesRespondToSelector:@selector(accessibilityHitTest:)])
-            originalAccessibilityHitTest = (id (*)(id, SEL, 
NSPoint))[PDFDisplayViewClass 
setInstanceMethod:(IMP)replacementAccessibilityHitTest typeEncoding:NULL 
forSelector:@selector(accessibilityHitTest:)];
+            originalAccessibilityHitTest = (id (*)(id, SEL, 
NSPoint))SKReplaceMethodImplementation(PDFDisplayViewClass, 
@selector(accessibilityHitTest:), (IMP)replacementAccessibilityHitTest, NULL, 
YES);
         if ([PDFDisplayViewClass 
instancesRespondToSelector:@selector(accessibilityFocusedUIElement)])
-            originalAccessibilityFocusedUIElement = (id (*)(id, 
SEL))[PDFDisplayViewClass 
setInstanceMethod:(IMP)replacementAccessibilityFocusedUIElement 
typeEncoding:NULL forSelector:@selector(accessibilityFocusedUIElement)];
+            originalAccessibilityFocusedUIElement = (id (*)(id, 
SEL))SKReplaceMethodImplementation(PDFDisplayViewClass, 
@selector(accessibilityFocusedUIElement), 
(IMP)replacementAccessibilityFocusedUIElement, NULL, YES);
             
         if ([PDFDisplayViewClass 
instancesRespondToSelector:@selector(accessibilityRangeForPositionAttributeForParameter:)]
 == NO)
-            [PDFDisplayViewClass 
setInstanceMethod:(IMP)replacementAccessibilityRangeForPositionAttributeForParameter
 typeEncoding:"@@:@" 
forSelector:@selector(accessibilityRangeForPositionAttributeForParameter:)];
+            SKReplaceMethodImplementation(PDFDisplayViewClass, 
@selector(accessibilityRangeForPositionAttributeForParameter:), 
(IMP)replacementAccessibilityRangeForPositionAttributeForParameter, "@@:@", 
YES);
         if ([PDFDisplayViewClass 
instancesRespondToSelector:@selector(accessibilityRTFForRangeAttributeForParameter:)]
 == NO)
-            [PDFDisplayViewClass 
setInstanceMethod:(IMP)replacementAccessibilityRTFForRangeAttributeForParameter 
typeEncoding:"@@:@" 
forSelector:@selector(accessibilityRTFForRangeAttributeForParameter:)];
+            SKReplaceMethodImplementation(PDFDisplayViewClass, 
@selector(accessibilityRTFForRangeAttributeForParameter:), 
(IMP)replacementAccessibilityRTFForRangeAttributeForParameter, "@@:@", YES);
         if ([PDFDisplayViewClass 
instancesRespondToSelector:@selector(accessibilityAttributedStringForRangeAttributeForParameter:)]
 == NO)
-            [PDFDisplayViewClass 
setInstanceMethod:(IMP)replacementAccessibilityAttributedStringForRangeAttributeForParameter
 typeEncoding:"@@:@" 
forSelector:@selector(accessibilityAttributedStringForRangeAttributeForParameter:)];
+            SKReplaceMethodImplementation(PDFDisplayViewClass, 
@selector(accessibilityAttributedStringForRangeAttributeForParameter:), 
(IMP)replacementAccessibilityAttributedStringForRangeAttributeForParameter, 
"@@:@", YES);
         if ([PDFDisplayViewClass 
instancesRespondToSelector:@selector(accessibilityStyleRangeForIndexAttributeForParameter:)]
 == NO)
-            [PDFDisplayViewClass 
setInstanceMethod:(IMP)replacementAccessibilityStyleRangeForIndexAttributeForParameter
 typeEncoding:"@@:@" 
forSelector:@selector(accessibilityStyleRangeForIndexAttributeForParameter:)];
+            SKReplaceMethodImplementation(PDFDisplayViewClass, 
@selector(accessibilityStyleRangeForIndexAttributeForParameter:), 
(IMP)replacementAccessibilityStyleRangeForIndexAttributeForParameter, "@@:@", 
YES);
     }
 }
 

Modified: trunk/PDFDocument_SKExtensions.m
===================================================================
--- trunk/PDFDocument_SKExtensions.m    2008-08-05 21:48:38 UTC (rev 4356)
+++ trunk/PDFDocument_SKExtensions.m    2008-08-06 01:37:59 UTC (rev 4357)
@@ -38,7 +38,7 @@
 
 #import "PDFDocument_SKExtensions.h"
 #import "PDFSelection_SKExtensions.h"
-#import "NSObject_SKExtensions.h"
+#import "SKRuntime.h"
 
 
 @interface PDFDocument (SKPrivateDeclarations)
@@ -74,7 +74,7 @@
 + (void)load {
     NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
     if ([self 
instancesRespondToSelector:@selector(getPrintOperationForPrintInfo:autoRotate:)])
-        originalGetPrintOperationForPrintInfo = (id (*)(id, SEL, id, 
BOOL))[self 
setInstanceMethodFromSelector:@selector(replacementGetPrintOperationForPrintInfo:autoRotate:)
 forSelector:@selector(getPrintOperationForPrintInfo:autoRotate:)];
+        originalGetPrintOperationForPrintInfo = (id (*)(id, SEL, id, 
BOOL))SKReplaceMethodImplementationFromSelector(self, 
@selector(getPrintOperationForPrintInfo:autoRotate:), 
@selector(replacementGetPrintOperationForPrintInfo:autoRotate:), YES);
     [pool release];
 }
 

Modified: trunk/PDFPage_SKExtensions.m
===================================================================
--- trunk/PDFPage_SKExtensions.m        2008-08-05 21:48:38 UTC (rev 4356)
+++ trunk/PDFPage_SKExtensions.m        2008-08-06 01:37:59 UTC (rev 4357)
@@ -42,7 +42,7 @@
 #import "SKPDFDocument.h"
 #import "SKPDFView.h"
 #import "PDFSelection_SKExtensions.h"
-#import "NSObject_SKExtensions.h"
+#import "SKRuntime.h"
 #import "NSBitmapImageRep_SKExtensions.h"
 #import "SKStringConstants.h"
 #import "NSCharacterSet_SKExtensions.h"
@@ -74,7 +74,7 @@
 }
 
 + (void)load {
-    originalDealloc = (void (*)(id, SEL))[self 
setInstanceMethodFromSelector:@selector(replacementDealloc) 
forSelector:@selector(dealloc)];
+    originalDealloc = (void (*)(id, 
SEL))SKReplaceMethodImplementationFromSelector(self, @selector(dealloc), 
@selector(replacementDealloc), YES);
     bboxCache = CFDictionaryCreateMutable(NULL, 0, NULL, 
&kSKNSRectDictionaryValueCallBacks);
 }
 

Modified: trunk/SKApplicationController.m
===================================================================
--- trunk/SKApplicationController.m     2008-08-05 21:48:38 UTC (rev 4356)
+++ trunk/SKApplicationController.m     2008-08-06 01:37:59 UTC (rev 4357)
@@ -65,7 +65,7 @@
 #import "Files_SKExtensions.h"
 #import "NSTask_SKExtensions.h"
 #import "NSView_SKExtensions.h"
-#import "NSObject_SKExtensions.h"
+#import "SKRuntime.h"
 #import <SkimNotes/PDFAnnotation_SKNExtensions.h>
 #import "PDFAnnotation_SKExtensions.h"
 #import "PDFAnnotationLine_SKExtensions.h"

Modified: trunk/SKBookmark.m
===================================================================
--- trunk/SKBookmark.m  2008-08-05 21:48:38 UTC (rev 4356)
+++ trunk/SKBookmark.m  2008-08-06 01:37:59 UTC (rev 4357)
@@ -39,7 +39,7 @@
 #import "SKBookmark.h"
 #import "BDAlias.h"
 #import "NSImage_SKExtensions.h"
-#import "NSObject_SKExtensions.h"
+#import "SKRuntime.h"
 
 static NSString *SKBookmarkTypeBookmarkString = @"bookmark";
 static NSString *SKBookmarkTypeFolderString = @"folder";

Modified: trunk/SKBookmarkController.m
===================================================================
--- trunk/SKBookmarkController.m        2008-08-05 21:48:38 UTC (rev 4356)
+++ trunk/SKBookmarkController.m        2008-08-06 01:37:59 UTC (rev 4357)
@@ -50,7 +50,7 @@
 #import "SKToolbarItem.h"
 #import "NSImage_SKExtensions.h"
 #import "SKStringConstants.h"
-#import "NSObject_SKExtensions.h"
+#import "SKRuntime.h"
 
 static NSString *SKBookmarkRowsPboardType = @"SKBookmarkRowsPboardType";
 

Modified: trunk/SKColorSwatch.m
===================================================================
--- trunk/SKColorSwatch.m       2008-08-05 21:48:38 UTC (rev 4356)
+++ trunk/SKColorSwatch.m       2008-08-06 01:37:59 UTC (rev 4357)
@@ -37,7 +37,7 @@
  */
 
 #import "SKColorSwatch.h"
-#import "NSObject_SKExtensions.h"
+#import "SKRuntime.h"
 #import "NSColor_SKExtensions.h"
 #import <Carbon/Carbon.h>
 

Modified: trunk/SKDocumentController.m
===================================================================
--- trunk/SKDocumentController.m        2008-08-05 21:48:38 UTC (rev 4356)
+++ trunk/SKDocumentController.m        2008-08-06 01:37:59 UTC (rev 4357)
@@ -43,7 +43,7 @@
 #import "NSString_SKExtensions.h"
 #import "NSURL_SKExtensions.h"
 #import "SKStringConstants.h"
-#import "NSObject_SKExtensions.h"
+#import "SKRuntime.h"
 #import "SKApplicationController.h"
 
 static NSString *SKAutosaveIntervalKey = @"SKAutosaveInterval";

Modified: trunk/SKFindTableView.m
===================================================================
--- trunk/SKFindTableView.m     2008-08-05 21:48:38 UTC (rev 4356)
+++ trunk/SKFindTableView.m     2008-08-06 01:37:59 UTC (rev 4357)
@@ -38,7 +38,7 @@
 
 #import "SKFindTableView.h"
 #import "SKStringConstants.h"
-#import "NSObject_SKExtensions.h"
+#import "SKRuntime.h"
 
 
 @implementation SKFindTableView
@@ -172,7 +172,7 @@
 }
 
 + (void)load {
-    originalDrawWithFrameInView = (void (*)(id, SEL, NSRect, id))[self 
setInstanceMethodFromSelector:@selector(replacementDrawWithFrame:inView:) 
forSelector:@selector(drawWithFrame:inView:)];
+    originalDrawWithFrameInView = (void (*)(id, SEL, NSRect, 
id))SKReplaceMethodImplementationFromSelector(self, 
@selector(drawWithFrame:inView:), @selector(replacementDrawWithFrame:inView:), 
YES);
 }
 
 @end

Modified: trunk/SKFontWell.m
===================================================================
--- trunk/SKFontWell.m  2008-08-05 21:48:38 UTC (rev 4356)
+++ trunk/SKFontWell.m  2008-08-06 01:37:59 UTC (rev 4357)
@@ -37,7 +37,7 @@
  */
 
 #import "SKFontWell.h"
-#import "NSObject_SKExtensions.h"
+#import "SKRuntime.h"
 
 static NSString *SKNSFontPanelDescriptorsPboardType = 
@"NSFontPanelDescriptorsPboardType";
 static NSString *SKNSFontPanelFamiliesPboardType = 
@"NSFontPanelFamiliesPboardType";

Modified: trunk/SKInfoWindowController.m
===================================================================
--- trunk/SKInfoWindowController.m      2008-08-05 21:48:38 UTC (rev 4356)
+++ trunk/SKInfoWindowController.m      2008-08-06 01:37:59 UTC (rev 4357)
@@ -39,7 +39,7 @@
 #import "SKInfoWindowController.h"
 #import "SKPDFDocument.h"
 #import <Quartz/Quartz.h>
-#import "NSObject_SKExtensions.h"
+#import "SKRuntime.h"
 
 static NSString *SKInfoWindowFrameAutosaveName = @"SKInfoWindow";
 

Modified: trunk/SKLineWell.m
===================================================================
--- trunk/SKLineWell.m  2008-08-05 21:48:38 UTC (rev 4356)
+++ trunk/SKLineWell.m  2008-08-06 01:37:59 UTC (rev 4357)
@@ -38,7 +38,7 @@
 
 #import "SKLineWell.h"
 #import "SKLineInspector.h"
-#import "NSObject_SKExtensions.h"
+#import "SKRuntime.h"
 
 NSString *SKLineStylePboardType = @"SKLineStylePboardType";
 

Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m      2008-08-05 21:48:38 UTC (rev 4356)
+++ trunk/SKMainWindowController.m      2008-08-06 01:37:59 UTC (rev 4357)
@@ -88,7 +88,7 @@
 #import "SKSecondaryPDFView.h"
 #import "SKSheetController.h"
 #import "SKColorSwatch.h"
-#import "NSObject_SKExtensions.h"
+#import "SKRuntime.h"
 #import "SKApplicationController.h"
 #import "SKCFCallBacks.h"
 #import "NSSegmentedControl_SKExtensions.h"

Modified: trunk/SKNoteWindowController.m
===================================================================
--- trunk/SKNoteWindowController.m      2008-08-05 21:48:38 UTC (rev 4356)
+++ trunk/SKNoteWindowController.m      2008-08-06 01:37:59 UTC (rev 4357)
@@ -48,7 +48,7 @@
 #import "NSWindowController_SKExtensions.h"
 #import "NSUserDefaultsController_SKExtensions.h"
 #import "SKStringConstants.h"
-#import "NSObject_SKExtensions.h"
+#import "SKRuntime.h"
 #import "PDFPage_SKExtensions.h"
 
 static NSString *SKNoteWindowFrameAutosaveName = @"SKNoteWindow";

Modified: trunk/SKPDFView.m
===================================================================
--- trunk/SKPDFView.m   2008-08-05 21:48:38 UTC (rev 4356)
+++ trunk/SKPDFView.m   2008-08-06 01:37:59 UTC (rev 4357)
@@ -61,7 +61,7 @@
 #import <Carbon/Carbon.h>
 #import "NSGeometry_SKExtensions.h"
 #import "SKTypeSelectHelper.h"
-#import "NSObject_SKExtensions.h"
+#import "SKRuntime.h"
 #import "NSAffineTransform_SKExtensions.h"
 #import "BDSKEdgeView.h"
 #import "PDFDocument_SKExtensions.h"

Modified: trunk/SKRuntime.h
===================================================================
--- trunk/SKRuntime.h   2008-08-05 21:48:38 UTC (rev 4356)
+++ trunk/SKRuntime.h   2008-08-06 01:37:59 UTC (rev 4357)
@@ -36,13 +36,19 @@
  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#import <objc/objc-runtime.h>
+#import <Cocoa/Cocoa.h>
 
 // wrappers around 10.5 only functions, use 10.4 API when the function is not 
defined
 
-extern Class SK_object_getClass(id object);
+#define OBINITIALIZE \
+    do { \
+        static BOOL hasBeenInitialized = NO; \
+        [super initialize]; \
+        if (hasBeenInitialized) \
+            return; \
+        hasBeenInitialized = YES;\
+    } while (0);
 
-extern IMP SK_method_getImplementation(Method aMethod);
-extern const char *SK_method_getTypeEncoding(Method aMethod);
 
-extern IMP SK_class_replaceMethod(Class aClass, SEL selector, IMP methodImp, 
const char *methodTypes);
+extern IMP SKReplaceMethodImplementation(Class aClass, SEL aSelector, IMP 
anImp, const char *types, BOOL isInstance);
+extern IMP SKReplaceMethodImplementationFromSelector(Class aClass, SEL 
aSelector, SEL impSelector, BOOL isInstance);

Modified: trunk/SKRuntime.m
===================================================================
--- trunk/SKRuntime.m   2008-08-05 21:48:38 UTC (rev 4356)
+++ trunk/SKRuntime.m   2008-08-06 01:37:59 UTC (rev 4357)
@@ -37,6 +37,7 @@
  */
 
 #import "SKRuntime.h"
+#import <objc/objc-runtime.h>
 
 
 #if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5
@@ -45,15 +46,15 @@
 
 extern void _objc_flush_caches(Class);
 
-Class SK_object_getClass(id object) {
+static inline Class SK_object_getClass(id object) {
     return object_getClass != NULL ? object_getClass(object) : object->isa;
 }
 
-IMP SK_method_getImplementation(Method aMethod) {
+static inline IMP SK_method_getImplementation(Method aMethod) {
     return method_getImplementation != NULL ? 
method_getImplementation(aMethod) : aMethod->method_imp;
 }
 
-const char *SK_method_getTypeEncoding(Method aMethod) {
+static inline const char *SK_method_getTypeEncoding(Method aMethod) {
     return method_getTypeEncoding != NULL ? method_getTypeEncoding(aMethod) : 
aMethod->method_types;
 }
 
@@ -93,7 +94,7 @@
     return imp;
 }
 
-IMP SK_class_replaceMethod(Class aClass, SEL selector, IMP methodImp, const 
char *methodTypes) {
+static inline IMP SK_class_replaceMethod(Class aClass, SEL selector, IMP 
methodImp, const char *methodTypes) {
     if (class_replaceMethod != NULL)
         return class_replaceMethod(aClass, selector, methodImp, methodTypes);
     else
@@ -104,20 +105,40 @@
 
 #pragma mark 10.5
 
-Class SK_object_getClass(id object) {
+static inline Class SK_object_getClass(id object) {
     return object_getClass(object);
 }
 
-IMP SK_method_getImplementation(Method aMethod) {
+static inline IMP SK_method_getImplementation(Method aMethod) {
     return method_getImplementation(aMethod);
 }
 
-const char *SK_method_getTypeEncoding(Method aMethod) {
+static inline const char *SK_method_getTypeEncoding(Method aMethod) {
     return method_getTypeEncoding(aMethod);
 }
 
-IMP SK_class_replaceMethod(Class aClass, SEL selector, IMP methodImp, const 
char *methodTypes) {
+static inline IMP SK_class_replaceMethod(Class aClass, SEL selector, IMP 
methodImp, const char *methodTypes) {
     return class_replaceMethod(aClass, selector, methodImp, methodTypes);
 }
 
 #endif
+
+IMP SKReplaceMethodImplementation(Class aClass, SEL aSelector, IMP anImp, 
const char *types, BOOL isInstance) {
+    IMP imp = NULL;
+    if (anImp) {
+        Method method = isInstance ? class_getInstanceMethod(aClass, 
aSelector) : class_getClassMethod(aClass, aSelector);
+        if (method) {
+            imp = SK_method_getImplementation(method);
+            if (types == NULL)
+                types = SK_method_getTypeEncoding(method);
+        }
+        if (types)
+            SK_class_replaceMethod(isInstance ? aClass : 
SK_object_getClass(aClass), aSelector, anImp, types);
+    }
+    return imp;
+}
+
+IMP SKReplaceMethodImplementationFromSelector(Class aClass, SEL aSelector, SEL 
impSelector, BOOL isInstance) {
+    Method method = isInstance ? class_getInstanceMethod(aClass, impSelector) 
: class_getClassMethod(aClass, impSelector);
+    return method ? SKReplaceMethodImplementation(aClass, aSelector, 
SK_method_getImplementation(method), SK_method_getTypeEncoding(method), 
isInstance) : NULL;
+}

Modified: trunk/SKSnapshotPageCell.m
===================================================================
--- trunk/SKSnapshotPageCell.m  2008-08-05 21:48:38 UTC (rev 4356)
+++ trunk/SKSnapshotPageCell.m  2008-08-06 01:37:59 UTC (rev 4357)
@@ -37,7 +37,7 @@
  */
 
 #import "SKSnapshotPageCell.h"
-#import "NSObject_SKExtensions.h"
+#import "SKRuntime.h"
 
 NSString *SKSnapshotPageCellLabelKey = @"label";
 NSString *SKSnapshotPageCellHasWindowKey = @"hasWindow";

Modified: trunk/SKSnapshotWindowController.m
===================================================================
--- trunk/SKSnapshotWindowController.m  2008-08-05 21:48:38 UTC (rev 4356)
+++ trunk/SKSnapshotWindowController.m  2008-08-06 01:37:59 UTC (rev 4357)
@@ -50,7 +50,7 @@
 #import "NSGeometry_SKExtensions.h"
 #import "PDFPage_SKExtensions.h"
 #import "SKSnapshotPageCell.h"
-#import "NSObject_SKExtensions.h"
+#import "SKRuntime.h"
 
 #define EM_DASH_CHARACTER 0x2014
 

Modified: trunk/SKTemplateParser.m
===================================================================
--- trunk/SKTemplateParser.m    2008-08-05 21:48:38 UTC (rev 4356)
+++ trunk/SKTemplateParser.m    2008-08-06 01:37:59 UTC (rev 4357)
@@ -40,7 +40,7 @@
 #import "SKTemplateTag.h"
 #import "NSCharacterSet_SKExtensions.h"
 #import "NSString_SKExtensions.h"
-#import "NSObject_SKExtensions.h"
+#import "SKRuntime.h"
 
 #define START_TAG_OPEN_DELIM            @"<$"
 #define END_TAG_OPEN_DELIM              @"</$"

Modified: trunk/SKThumbnailTableView.m
===================================================================
--- trunk/SKThumbnailTableView.m        2008-08-05 21:48:38 UTC (rev 4356)
+++ trunk/SKThumbnailTableView.m        2008-08-06 01:37:59 UTC (rev 4357)
@@ -37,7 +37,7 @@
  */
 
 #import "SKThumbnailTableView.h"
-#import "NSObject_SKExtensions.h"
+#import "SKRuntime.h"
 #import "SKTypeSelectHelper.h"
 #import "NSColor_SKExtensions.h"
 
@@ -58,7 +58,7 @@
 }
 
 + (void)load {
-    originalTrackKnob = (void (*)(id, SEL, id))[self 
setInstanceMethodFromSelector:@selector(replacementTrackKnob:) 
forSelector:@selector(trackKnob:)];
+    originalTrackKnob = (void (*)(id, SEL, 
id))SKReplaceMethodImplementationFromSelector(self, @selector(trackKnob:), 
@selector(replacementTrackKnob:), YES);
 }
 
 @end

Modified: trunk/SKTypeSelectHelper.m
===================================================================
--- trunk/SKTypeSelectHelper.m  2008-08-05 21:48:38 UTC (rev 4356)
+++ trunk/SKTypeSelectHelper.m  2008-08-06 01:37:59 UTC (rev 4357)
@@ -37,7 +37,7 @@
  */
 
 #import "SKTypeSelectHelper.h"
-#import "NSObject_SKExtensions.h"
+#import "SKRuntime.h"
 
 static NSString *SKWindowDidChangeFirstResponderNotification = 
@"SKWindowDidChangeFirstResponderNotification";
 
@@ -428,7 +428,7 @@
 }
 
 + (void)load {
-    originalMakeFirstResponder = (typeof(originalMakeFirstResponder))[self 
setInstanceMethodFromSelector:@selector(replacementMakeFirstResponder:) 
forSelector:@selector(makeFirstResponder:)];
+    originalMakeFirstResponder = 
(typeof(originalMakeFirstResponder))SKReplaceMethodImplementationFromSelector(self,
 @selector(makeFirstResponder:), @selector(replacementMakeFirstResponder:), 
YES);
 }
 
 @end

Modified: trunk/Skim.xcodeproj/project.pbxproj
===================================================================
--- trunk/Skim.xcodeproj/project.pbxproj        2008-08-05 21:48:38 UTC (rev 
4356)
+++ trunk/Skim.xcodeproj/project.pbxproj        2008-08-06 01:37:59 UTC (rev 
4357)
@@ -39,7 +39,6 @@
                8D15AC320486D014006FF6A4 /* main.m in Sources */ = {isa = 
PBXBuildFile; fileRef = 2A37F4B0FDCFA73011CA2CEA /* main.m */; settings = 
{ATTRIBUTES = (); }; };
                8D15AC340486D014006FF6A4 /* Cocoa.framework in Frameworks */ = 
{isa = PBXBuildFile; fileRef = 1058C7A7FEA54F5311CA2CBB /* Cocoa.framework */; 
};
                CE0463CB0B84D24300C11E4A /* SKApplication.m in Sources */ = 
{isa = PBXBuildFile; fileRef = CE0463CA0B84D24300C11E4A /* SKApplication.m */; 
};
-               CE0464A20B84E3E400C11E4A /* NSObject_SKExtensions.m in Sources 
*/ = {isa = PBXBuildFile; fileRef = CE0464A10B84E3E400C11E4A /* 
NSObject_SKExtensions.m */; };
                CE070EA20B89039700733CC8 /* NSScrollView_SKExtensions.m in 
Sources */ = {isa = PBXBuildFile; fileRef = CE070EA10B89039700733CC8 /* 
NSScrollView_SKExtensions.m */; };
                CE0710170B89BDD600733CC8 /* BDSKCollapsibleView.m in Sources */ 
= {isa = PBXBuildFile; fileRef = CE0710120B89BDD600733CC8 /* 
BDSKCollapsibleView.m */; };
                CE0710180B89BDD600733CC8 /* BDSKContainerView.m in Sources */ = 
{isa = PBXBuildFile; fileRef = CE0710140B89BDD600733CC8 /* BDSKContainerView.m 
*/; };
@@ -444,8 +443,6 @@
                A489FDE70BC8E94200BA14DD /* Italian */ = {isa = 
PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; 
name = Italian; path = Italian.lproj/ZoomValues.strings; sourceTree = 
"<group>"; };
                CE0463C90B84D24300C11E4A /* SKApplication.h */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 
SKApplication.h; sourceTree = "<group>"; };
                CE0463CA0B84D24300C11E4A /* SKApplication.m */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path 
= SKApplication.m; sourceTree = "<group>"; };
-               CE0464A00B84E3E400C11E4A /* NSObject_SKExtensions.h */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 
NSObject_SKExtensions.h; sourceTree = "<group>"; };
-               CE0464A10B84E3E400C11E4A /* NSObject_SKExtensions.m */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path 
= NSObject_SKExtensions.m; sourceTree = "<group>"; };
                CE070EA00B89039700733CC8 /* NSScrollView_SKExtensions.h */ = 
{isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; 
path = NSScrollView_SKExtensions.h; sourceTree = "<group>"; };
                CE070EA10B89039700733CC8 /* NSScrollView_SKExtensions.m */ = 
{isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = 
sourcecode.c.objc; path = NSScrollView_SKExtensions.m; sourceTree = "<group>"; 
};
                CE0710110B89BDD600733CC8 /* BDSKCollapsibleView.h */ = {isa = 
PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = 
BDSKCollapsibleView.h; sourceTree = "<group>"; };
@@ -1156,8 +1153,6 @@
                                CE0EB4D50DD054DC0034DF92 /* 
NSInvocation_SKExtensions.m */,
                                CE3401E40E01388700A7FFE6 /* 
NSNumber_SKExtensions.h */,
                                CE3401E50E01388700A7FFE6 /* 
NSNumber_SKExtensions.m */,
-                               CE0464A00B84E3E400C11E4A /* 
NSObject_SKExtensions.h */,
-                               CE0464A10B84E3E400C11E4A /* 
NSObject_SKExtensions.m */,
                                CE6C03EE0BEDF759007BF0B5 /* 
NSParagraphStyle_SKExtensions.h */,
                                CE6C03EF0BEDF759007BF0B5 /* 
NSParagraphStyle_SKExtensions.m */,
                                CE1E301A0BDB9D5C0011D9DD /* 
NSScanner_SKExtensions.h */,
@@ -2012,7 +2007,6 @@
                                CE38ECD30B8093B200A1B779 /* 
NSString_SKExtensions.m in Sources */,
                                F9CDD67B0B837A7F006363C3 /* 
SKPreferenceController.m in Sources */,
                                CE0463CB0B84D24300C11E4A /* SKApplication.m in 
Sources */,
-                               CE0464A20B84E3E400C11E4A /* 
NSObject_SKExtensions.m in Sources */,
                                CE2DE4920B85D48F00D0DA12 /* SKThumbnail.m in 
Sources */,
                                CE2DE49D0B85D4F400D0DA12 /* 
SKFullScreenWindow.m in Sources */,
                                CE2DE4C60B85D78200D0DA12 /* 
SKMiniaturizeWindow.m in Sources */,


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to