From: <ho...@us...> - 2015-10-08 20:36:26
|
Revision: 8907 http://sourceforge.net/p/skim-app/code/8907 Author: hofman Date: 2015-10-08 20:36:23 +0000 (Thu, 08 Oct 2015) Log Message: ----------- Revert an earlier change. Override script command parameter setters in superclass swizzling methods rather than using subclass, as we also want to override standard commands like get and set Modified Paths: -------------- trunk/SKBoundsCommand.h trunk/SKIndexCommand.h trunk/SKJoinCommand.h trunk/SKPagesCommand.h trunk/SKSelectCommand.h trunk/SKTextCommand.h trunk/Skim.sdef trunk/Skim.xcodeproj/project.pbxproj Added Paths: ----------- trunk/NSScriptCommand_SKExtensions.h trunk/NSScriptCommand_SKExtensions.m Removed Paths: ------------- trunk/SKScriptCommand.h trunk/SKScriptCommand.m Copied: trunk/NSScriptCommand_SKExtensions.h (from rev 8884, trunk/SKScriptCommand.h) =================================================================== --- trunk/NSScriptCommand_SKExtensions.h (rev 0) +++ trunk/NSScriptCommand_SKExtensions.h 2015-10-08 20:36:23 UTC (rev 8907) @@ -0,0 +1,45 @@ +// +// NSScriptCommand_SKExtensions.h +// Skim +// +// Created by Christiaan Hofman on 11/26/10. +/* + This software is Copyright (c) 2008-2015 + 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> + + +@interface NSScriptCommand (SKExtensions) +@end + + Copied: trunk/NSScriptCommand_SKExtensions.m (from rev 8887, trunk/SKScriptCommand.m) =================================================================== --- trunk/NSScriptCommand_SKExtensions.m (rev 0) +++ trunk/NSScriptCommand_SKExtensions.m 2015-10-08 20:36:23 UTC (rev 8907) @@ -0,0 +1,93 @@ +// +// NSScriptCommand_SKExtensions.m +// Skim +// +// Created by Christiaan Hofman on 11/26/10. +/* + This software is Copyright (c) 2008-2015 + 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 "NSScriptCommand_SKExtensions.h" +#import "SKRuntime.h" + + +@implementation NSScriptCommand (SKExtensions) + +static id (*original_setReceiversSpecifier)(id, SEL, id) = NULL; +static id (*original_setArguments)(id, SEL, id) = NULL; +static id (*original_setDirectParameter)(id, SEL, id) = NULL; + +// Workaround for Cocoa Scripting and AppleScript bugs. +// Cocoa Scripting does not accept range specifiers whose start/end specifier have an absolute container specifier, but AppleScript does not accept range specifiers with relative container specifiers, so we cannot return those from PDFSelection +static void fixRangeSpecifiers(id object) { + if ([object isKindOfClass:[NSArray class]]) { + for (id subobject in (NSArray *)object) + fixRangeSpecifiers(subobject); + } else if ([object isKindOfClass:[NSScriptObjectSpecifier class]]) { + fixRangeSpecifiers([(NSScriptObjectSpecifier *)object containerSpecifier]); + if ([object isKindOfClass:[NSRangeSpecifier class]]) { + NSScriptObjectSpecifier *childSpec = [(NSRangeSpecifier *)object startSpecifier]; + if ([childSpec containerSpecifier]) { + [childSpec setContainerSpecifier:nil]; + [childSpec setContainerIsRangeContainerObject:YES]; + } + childSpec = [(NSRangeSpecifier *)object endSpecifier]; + if ([childSpec containerSpecifier]) { + [childSpec setContainerSpecifier:nil]; + [childSpec setContainerIsRangeContainerObject:YES]; + } + } + } +} + +- (void)replacement_setReceiversSpecifier:(NSScriptObjectSpecifier *)receiversSpec { + fixRangeSpecifiers(receiversSpec); + original_setReceiversSpecifier(self, _cmd, receiversSpec); +} + +- (void)replacement_setArguments:(NSDictionary *)args { + fixRangeSpecifiers([args allValues]); + original_setArguments(self, _cmd, args); +} + +- (void)replacement_setDirectParameter:(id)directParameter { + fixRangeSpecifiers(directParameter); + original_setDirectParameter(self, _cmd, directParameter); +} + ++ (void)load { + original_setReceiversSpecifier = (id (*)(id, SEL, id))SKReplaceInstanceMethodImplementationFromSelector(self, @selector(setReceiversSpecifier:), @selector(replacement_setReceiversSpecifier:)); + original_setArguments = (id (*)(id, SEL, id))SKReplaceInstanceMethodImplementationFromSelector(self, @selector(setArguments:), @selector(replacement_setArguments:)); + original_setDirectParameter = (id (*)(id, SEL, id))SKReplaceInstanceMethodImplementationFromSelector(self, @selector(setDirectParameter:), @selector(replacement_setDirectParameter:)); +} + +@end Modified: trunk/SKBoundsCommand.h =================================================================== --- trunk/SKBoundsCommand.h 2015-10-07 12:57:44 UTC (rev 8906) +++ trunk/SKBoundsCommand.h 2015-10-08 20:36:23 UTC (rev 8907) @@ -37,8 +37,7 @@ */ #import <Cocoa/Cocoa.h> -#import "SKScriptCommand.h" -@interface SKBoundsCommand : SKScriptCommand +@interface SKBoundsCommand : NSScriptCommand @end Modified: trunk/SKIndexCommand.h =================================================================== --- trunk/SKIndexCommand.h 2015-10-07 12:57:44 UTC (rev 8906) +++ trunk/SKIndexCommand.h 2015-10-08 20:36:23 UTC (rev 8907) @@ -37,8 +37,7 @@ */ #import <Cocoa/Cocoa.h> -#import "SKScriptCommand.h" -@interface SKIndexCommand : SKScriptCommand +@interface SKIndexCommand : NSScriptCommand @end Modified: trunk/SKJoinCommand.h =================================================================== --- trunk/SKJoinCommand.h 2015-10-07 12:57:44 UTC (rev 8906) +++ trunk/SKJoinCommand.h 2015-10-08 20:36:23 UTC (rev 8907) @@ -37,8 +37,7 @@ */ #import <Cocoa/Cocoa.h> -#import "SKScriptCommand.h" -@interface SKJoinCommand : SKScriptCommand +@interface SKJoinCommand : NSScriptCommand @end Modified: trunk/SKPagesCommand.h =================================================================== --- trunk/SKPagesCommand.h 2015-10-07 12:57:44 UTC (rev 8906) +++ trunk/SKPagesCommand.h 2015-10-08 20:36:23 UTC (rev 8907) @@ -37,8 +37,7 @@ */ #import <Cocoa/Cocoa.h> -#import "SKScriptCommand.h" -@interface SKPagesCommand : SKScriptCommand +@interface SKPagesCommand : NSScriptCommand @end Deleted: trunk/SKScriptCommand.h =================================================================== --- trunk/SKScriptCommand.h 2015-10-07 12:57:44 UTC (rev 8906) +++ trunk/SKScriptCommand.h 2015-10-08 20:36:23 UTC (rev 8907) @@ -1,45 +0,0 @@ -// -// SKScriptCommand.h -// Skim -// -// Created by Christiaan Hofman on 11/26/10. -/* - This software is Copyright (c) 2008-2015 - 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> - - -@interface SKScriptCommand : NSScriptCommand -@end - - Deleted: trunk/SKScriptCommand.m =================================================================== --- trunk/SKScriptCommand.m 2015-10-07 12:57:44 UTC (rev 8906) +++ trunk/SKScriptCommand.m 2015-10-08 20:36:23 UTC (rev 8907) @@ -1,82 +0,0 @@ -// -// SKScriptCommand.m -// Skim -// -// Created by Christiaan Hofman on 11/26/10. -/* - This software is Copyright (c) 2008-2015 - 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 "SKScriptCommand.h" - - -@implementation SKScriptCommand - -// Workaround for Cocoa Scripting and AppleScript bugs. -// Cocoa Scripting does not accept range specifiers whose start/end specifier have an absolute container specifier, but AppleScript does not accept range specifiers with relative container specifiers, so we cannot return those from PDFSelection -- (void)fixRangeSpecifiers:(id)object { - if ([object isKindOfClass:[NSArray class]]) { - for (id subobject in (NSArray *)object) - [self fixRangeSpecifiers:subobject]; - } else if ([object isKindOfClass:[NSScriptObjectSpecifier class]]) { - [self fixRangeSpecifiers:[(NSScriptObjectSpecifier *)object containerSpecifier]]; - if ([object isKindOfClass:[NSRangeSpecifier class]]) { - NSScriptObjectSpecifier *childSpec = [(NSRangeSpecifier *)object startSpecifier]; - if ([childSpec containerSpecifier]) { - [childSpec setContainerSpecifier:nil]; - [childSpec setContainerIsRangeContainerObject:YES]; - } - childSpec = [(NSRangeSpecifier *)object endSpecifier]; - if ([childSpec containerSpecifier]) { - [childSpec setContainerSpecifier:nil]; - [childSpec setContainerIsRangeContainerObject:YES]; - } - } - } -} - -- (void)setReceiversSpecifier:(NSScriptObjectSpecifier *)receiversSpec { - [self fixRangeSpecifiers:receiversSpec]; - [super setReceiversSpecifier:receiversSpec]; -} - -- (void)setArguments:(NSDictionary *)args { - [self fixRangeSpecifiers:[args allValues]]; - [super setArguments:args]; -} - -- (void)setDirectParameter:(id)directParameter { - [self fixRangeSpecifiers:directParameter]; - [super setDirectParameter:directParameter]; -} - -@end Modified: trunk/SKSelectCommand.h =================================================================== --- trunk/SKSelectCommand.h 2015-10-07 12:57:44 UTC (rev 8906) +++ trunk/SKSelectCommand.h 2015-10-08 20:36:23 UTC (rev 8907) @@ -37,8 +37,7 @@ */ #import <Cocoa/Cocoa.h> -#import "SKScriptCommand.h" -@interface SKSelectCommand : SKScriptCommand +@interface SKSelectCommand : NSScriptCommand @end Modified: trunk/SKTextCommand.h =================================================================== --- trunk/SKTextCommand.h 2015-10-07 12:57:44 UTC (rev 8906) +++ trunk/SKTextCommand.h 2015-10-08 20:36:23 UTC (rev 8907) @@ -37,8 +37,7 @@ */ #import <Cocoa/Cocoa.h> -#import "SKScriptCommand.h" -@interface SKTextCommand : SKScriptCommand +@interface SKTextCommand : NSScriptCommand @end Modified: trunk/Skim.sdef =================================================================== --- trunk/Skim.sdef 2015-10-07 12:57:44 UTC (rev 8906) +++ trunk/Skim.sdef 2015-10-08 20:36:23 UTC (rev 8907) @@ -560,7 +560,6 @@ <command name="go" code="SKIMGoTo" description="Go to a location."> - <cocoa class="SKScriptCommand"/> <direct-parameter type="document" description="The document in which to scroll."/> <parameter name="to" code="to " @@ -604,7 +603,6 @@ <command name="find" code="SKIMFind" description="Find text in a document."> - <cocoa class="SKScriptCommand"/> <direct-parameter type="document" description="The document in which to search."/> <parameter name="text" code="ctxt" type="text" Modified: trunk/Skim.xcodeproj/project.pbxproj =================================================================== --- trunk/Skim.xcodeproj/project.pbxproj 2015-10-07 12:57:44 UTC (rev 8906) +++ trunk/Skim.xcodeproj/project.pbxproj 2015-10-08 20:36:23 UTC (rev 8907) @@ -86,7 +86,7 @@ CE1CC5BE1143C57300F6B208 /* NoteWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE1CC5BD1143C57300F6B208 /* NoteWindow.xib */; }; CE1CC6121143DDFD00F6B208 /* LineInspector.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE1CC6111143DDFD00F6B208 /* LineInspector.xib */; }; CE1CC6B91143F05D00F6B208 /* TransitionSheet.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE1CC6B81143F05D00F6B208 /* TransitionSheet.xib */; }; - CE1D798F129FE44E00EA3AF0 /* SKScriptCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = CE1D798E129FE44E00EA3AF0 /* SKScriptCommand.m */; }; + CE1D798F129FE44E00EA3AF0 /* NSScriptCommand_SKExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE1D798E129FE44E00EA3AF0 /* NSScriptCommand_SKExtensions.m */; }; CE1E2B290BDAB6180011D9DD /* SKPDFSynchronizer.m in Sources */ = {isa = PBXBuildFile; fileRef = CE1E2B270BDAB6180011D9DD /* SKPDFSynchronizer.m */; }; CE1E301D0BDB9D5C0011D9DD /* NSScanner_SKExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE1E301B0BDB9D5C0011D9DD /* NSScanner_SKExtensions.m */; }; CE1E30290BDB9D8E0011D9DD /* NSCharacterSet_SKExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE1E30270BDB9D8E0011D9DD /* NSCharacterSet_SKExtensions.m */; }; @@ -665,8 +665,8 @@ CE1CC5BD1143C57300F6B208 /* NoteWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = NoteWindow.xib; sourceTree = "<group>"; }; CE1CC6111143DDFD00F6B208 /* LineInspector.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LineInspector.xib; sourceTree = "<group>"; }; CE1CC6B81143F05D00F6B208 /* TransitionSheet.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = TransitionSheet.xib; sourceTree = "<group>"; }; - CE1D798D129FE44E00EA3AF0 /* SKScriptCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKScriptCommand.h; sourceTree = "<group>"; }; - CE1D798E129FE44E00EA3AF0 /* SKScriptCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SKScriptCommand.m; sourceTree = "<group>"; }; + CE1D798D129FE44E00EA3AF0 /* NSScriptCommand_SKExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSScriptCommand_SKExtensions.h; sourceTree = "<group>"; }; + CE1D798E129FE44E00EA3AF0 /* NSScriptCommand_SKExtensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSScriptCommand_SKExtensions.m; sourceTree = "<group>"; }; CE1E2B260BDAB6180011D9DD /* SKPDFSynchronizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKPDFSynchronizer.h; sourceTree = "<group>"; }; CE1E2B270BDAB6180011D9DD /* SKPDFSynchronizer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SKPDFSynchronizer.m; sourceTree = "<group>"; }; CE1E2F120BDB86A10011D9DD /* displayline */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = displayline; sourceTree = "<group>"; }; @@ -1376,6 +1376,8 @@ CE42B8EB106996C60091F588 /* NSPointerArray_SKExtensions.m */, CE1E301A0BDB9D5C0011D9DD /* NSScanner_SKExtensions.h */, CE1E301B0BDB9D5C0011D9DD /* NSScanner_SKExtensions.m */, + CE1D798D129FE44E00EA3AF0 /* NSScriptCommand_SKExtensions.h */, + CE1D798E129FE44E00EA3AF0 /* NSScriptCommand_SKExtensions.m */, CE38ECD10B8093B200A1B779 /* NSString_SKExtensions.h */, CE38ECD20B8093B200A1B779 /* NSString_SKExtensions.m */, CEAA67230C70A882006BD633 /* NSURL_SKExtensions.h */, @@ -1776,8 +1778,6 @@ CE4643CE0DF6B5A400CFD8D2 /* SKJoinCommand.m */, CE4643D30DF6B60500CFD8D2 /* SKPagesCommand.h */, CE4643D40DF6B60500CFD8D2 /* SKPagesCommand.m */, - CE1D798D129FE44E00EA3AF0 /* SKScriptCommand.h */, - CE1D798E129FE44E00EA3AF0 /* SKScriptCommand.m */, CE12A73C134F215F003AED67 /* SKSelectCommand.h */, CE12A73D134F215F003AED67 /* SKSelectCommand.m */, CE4643D60DF6B63500CFD8D2 /* SKTextCommand.h */, @@ -2503,7 +2503,7 @@ CEFDEA9111F6FF8300D6FEBA /* NSScreen_SKExtensions.m in Sources */, CE1C77B6123FB41E00C73F1A /* SKNoteTextView.m in Sources */, CE94D17B125535DE0053A520 /* synctex_parser_utils.m in Sources */, - CE1D798F129FE44E00EA3AF0 /* SKScriptCommand.m in Sources */, + CE1D798F129FE44E00EA3AF0 /* NSScriptCommand_SKExtensions.m in Sources */, CE4E1E9A12BCFF5A005227ED /* HIDRemote.m in Sources */, CE171E3512C3AC1600291179 /* SKFileUpdateChecker.m in Sources */, CEECD61C12E9E30B00B9E35E /* NSError_SKExtensions.m in Sources */, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |