Revision: 12627
          http://sourceforge.net/p/skim-app/code/12627
Author:   hofman
Date:     2021-12-16 23:02:54 +0000 (Thu, 16 Dec 2021)
Log Message:
-----------
Replace get...for script commands by a single obtain command that also works on 
12.1. Rename preferences command to have the for as an argument keyword.

Modified Paths:
--------------
    trunk/SKPreferencesCommand.m
    trunk/Skim.sdef
    trunk/Skim.xcodeproj/project.pbxproj

Added Paths:
-----------
    trunk/SKObtainCommand.h
    trunk/SKObtainCommand.m

Removed Paths:
-------------
    trunk/SKBoundsCommand.h
    trunk/SKBoundsCommand.m
    trunk/SKIndexCommand.h
    trunk/SKIndexCommand.m
    trunk/SKPagesCommand.h
    trunk/SKPagesCommand.m
    trunk/SKTextCommand.h
    trunk/SKTextCommand.m

Deleted: trunk/SKBoundsCommand.h
===================================================================
--- trunk/SKBoundsCommand.h     2021-12-14 16:50:46 UTC (rev 12626)
+++ trunk/SKBoundsCommand.h     2021-12-16 23:02:54 UTC (rev 12627)
@@ -1,43 +0,0 @@
-//
-//  SKBoundsCommand.h
-//  Skim
-//
-//  Created by Christiaan Hofman on 6/4/08.
-/*
- This software is Copyright (c) 2008-2021
- 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 SKBoundsCommand : NSScriptCommand
-@end

Deleted: trunk/SKBoundsCommand.m
===================================================================
--- trunk/SKBoundsCommand.m     2021-12-14 16:50:46 UTC (rev 12626)
+++ trunk/SKBoundsCommand.m     2021-12-16 23:02:54 UTC (rev 12627)
@@ -1,87 +0,0 @@
-//
-//  SKBoundsCommand.m
-//  Skim
-//
-//  Created by Christiaan Hofman on 6/4/08.
-/*
- This software is Copyright (c) 2008-2021
- 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 "SKBoundsCommand.h"
-#import <Quartz/Quartz.h>
-#import "NSDocument_SKExtensions.h"
-#import "SKMainDocument.h"
-#import "PDFSelection_SKExtensions.h"
-#import "NSGeometry_SKExtensions.h"
-
-
-@implementation SKBoundsCommand
-
-- (id)performDefaultImplementation {
-    id dP = [self directParameter];
-    id dPO = nil;
-    if ([dP isKindOfClass:[NSArray class]] == NO)
-        dPO = [dP objectsByEvaluatingSpecifier];
-    
-    NSDictionary *args = [self evaluatedArguments];
-    PDFPage *page = [args objectForKey:@"Page"];
-    NSNumber *boxNumber = [args objectForKey:@"Box"];
-    PDFDisplayBox box = boxNumber ? [boxNumber integerValue] : 
kPDFDisplayBoxCropBox;
-    NSRect bounds = NSZeroRect;
-    
-    if ([dPO isKindOfClass:[NSDocument class]]) {
-        if ([page isKindOfClass:[PDFPage class]] == NO) {
-            NSArray *pages = [dPO valueForKey:@"pages"];
-            page = [pages count] ? [pages objectAtIndex:0] : nil;
-        }
-        if (page)
-            bounds = [page boundsForBox:box];
-    } else if ([dPO isKindOfClass:[PDFPage class]]) {
-        if (page == nil || [page isEqual:dPO])
-            bounds = [dPO boundsForBox:box];
-    } else if ([dPO isKindOfClass:[PDFAnnotation class]]) {
-        if (page == nil || [page isEqual:[dPO page]])
-            bounds = [dPO bounds];
-    } else {
-        PDFSelection *selection = [PDFSelection selectionWithSpecifier:dP];
-        if ([page isKindOfClass:[PDFPage class]] == NO) {
-            page = [selection safeFirstPage];
-        }
-        if (page)
-            bounds = [selection hasCharacters] ? [selection 
boundsForPage:page] : NSZeroRect;
-    }
-    
-    Rect qdBounds = SKQDRectFromNSRect(bounds);
-    return [NSData dataWithBytes:&qdBounds length:sizeof(Rect)];
-}
-
-@end

Deleted: trunk/SKIndexCommand.h
===================================================================
--- trunk/SKIndexCommand.h      2021-12-14 16:50:46 UTC (rev 12626)
+++ trunk/SKIndexCommand.h      2021-12-16 23:02:54 UTC (rev 12627)
@@ -1,43 +0,0 @@
-//
-//  SKIndexCommand.h
-//  Skim
-//
-//  Created by Christiaan Hofman on 6/4/08.
-/*
- This software is Copyright (c) 2008-2021
- 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 SKIndexCommand : NSScriptCommand
-@end

Deleted: trunk/SKIndexCommand.m
===================================================================
--- trunk/SKIndexCommand.m      2021-12-14 16:50:46 UTC (rev 12626)
+++ trunk/SKIndexCommand.m      2021-12-16 23:02:54 UTC (rev 12627)
@@ -1,74 +0,0 @@
-//
-//  SKIndexCommand.m
-//  Skim
-//
-//  Created by Christiaan Hofman on 6/4/08.
-/*
- This software is Copyright (c) 2008-2021
- 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 "SKIndexCommand.h"
-#import <Quartz/Quartz.h>
-#import "PDFPage_SKExtensions.h"
-#import "PDFSelection_SKExtensions.h"
-
-
-@implementation SKIndexCommand
-
-- (id)performDefaultImplementation {
-    id dP = [self directParameter];
-    id dPO = nil;
-    if ([dP isKindOfClass:[NSArray class]] == NO)
-        dPO = [dP objectsByEvaluatingSpecifier];
-    
-    NSDictionary *args = [self evaluatedArguments];
-    PDFPage *page = [args objectForKey:@"Page"];
-    BOOL last = [[args objectForKey:@"Last"] boolValue];
-    NSUInteger idx = NSNotFound;
-    
-    if ([dPO isKindOfClass:[NSDocument class]]) {
-        idx = [[NSApp orderedDocuments] indexOfObjectIdenticalTo:dPO];
-    } else if ([dPO isKindOfClass:[PDFPage class]]) {
-        idx = [dPO pageIndex];
-    } else if ([dPO isKindOfClass:[PDFAnnotation class]]) {
-        idx = [[((id)page ?: (id)[page containingDocument]) 
valueForKey:@"notes"] indexOfObjectIdenticalTo:dPO];
-    } else {
-        PDFSelection *selection = [PDFSelection selectionWithSpecifier:dP 
onPage:page];
-        page = last ? [selection safeLastPage] : [selection safeFirstPage];
-        if (page)
-            idx = last ? [selection safeIndexOfLastCharacterOnPage:page] : 
[selection safeIndexOfFirstCharacterOnPage:page];
-    }
-    
-    return [NSNumber numberWithInteger:idx == NSNotFound ? 0 : (NSInteger)idx 
+ 1];
-}
-
-@end

Added: trunk/SKObtainCommand.h
===================================================================
--- trunk/SKObtainCommand.h                             (rev 0)
+++ trunk/SKObtainCommand.h     2021-12-16 23:02:54 UTC (rev 12627)
@@ -0,0 +1,43 @@
+//
+//  SKObtainCommand.h
+//  Skim
+//
+//  Created by Christiaan Hofman on 16/12/2021.
+/*
+ This software is Copyright (c) 2021
+ 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 SKObtainCommand : NSScriptCommand
+@end

Added: trunk/SKObtainCommand.m
===================================================================
--- trunk/SKObtainCommand.m                             (rev 0)
+++ trunk/SKObtainCommand.m     2021-12-16 23:02:54 UTC (rev 12627)
@@ -0,0 +1,118 @@
+//
+//  SKObtainCommand.m
+//  Skim
+//
+//  Created by Christiaan Hofman on 16/12/2021.
+/*
+ This software is Copyright (c) 2021
+ 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 "SKObtainCommand.h"
+#import <Quartz/Quartz.h>
+#import "PDFSelection_SKExtensions.h"
+#import "NSAttributedString_SKExtensions.h"
+#import "NSGeometry_SKExtensions.h"
+
+#define typeRichText 'ricT'
+#define typeRTF      'RTF '
+#define typePage     'Page'
+
+@implementation SKObtainCommand
+
+- (id)performDefaultImplementation {
+    NSDictionary *args = [self evaluatedArguments];
+    NSData *data = [args objectForKey:@"Object"];
+    PDFSelection *selection = nil;
+    NSAppleEventDescriptor *desc = nil;
+    PDFPage *page = [args objectForKey:@"Page"];
+    id typeNumber = [self directParameter];
+    FourCharCode type = [typeNumber 
respondsToSelector:@selector(unsignedIntValue)] ? [typeNumber unsignedIntValue] 
: typeRichText;
+    
+    if (type == cText || type == typeText || type == typeUnicodeText || type 
== typeUTF8Text || type == typeCString || type == typeChar) {
+        type = cText;
+    } else if (type == typeRichText || type == 'cha ' || type == 'cpar' || 
type == 'cwor' || type == 'catr' || type == typeStyledText) {
+        type = typeRichText;
+    } else if (type == typeSInt32 || type == typeUInt32 || type == typeSInt16 
|| type == typeUInt16 || type == typeSInt64 || type == typeUInt64) {
+        type = typeSInt32;
+    } else if (type == typeQDRectangle || type == typeRectangle) {
+        type = typeQDRectangle;
+    } else if (type != typePage && type != typeRTF) {
+        [self setScriptErrorNumber:NSOperationNotSupportedForKeyScriptError];
+        return nil;
+    }
+    
+    if ([data isKindOfClass:[NSData class]] == NO) {
+        data = nil;
+        selection = [PDFSelection selectionWithSpecifier:[[self arguments] 
objectForKey:@"Object"] onPage:page];
+    } else if (type == typeSInt32 || type == typeQDRectangle || type == 
typePage) {
+        [self setScriptErrorNumber:NSOperationNotSupportedForKeyScriptError];
+        return nil;
+    }
+    
+    if (type == cText || type == typeRichText || type == typeRTF) {
+        NSAttributedString *attrString = [selection attributedString];
+        if (data)
+            attrString = [[[NSAttributedString alloc] initWithData:data 
options:[NSDictionary dictionary] documentAttributes:NULL error:NULL] 
autorelease];
+        if (type == cText)
+            desc = [NSAppleEventDescriptor descriptorWithString:[attrString 
string]];
+        else if (type == typeRTF)
+            desc = [NSAppleEventDescriptor descriptorWithDescriptorType:type 
data:[attrString RTFRepresentation]];
+        else
+            desc = [[attrString richTextSpecifier] descriptor];
+    } else if (type == typeQDRectangle) {
+        NSRect bounds = [selection hasCharacters] ? [selection 
boundsForPage:page ?: [selection safeFirstPage]] : NSZeroRect;
+        Rect qdBounds = SKQDRectFromNSRect(bounds);
+        desc = [NSAppleEventDescriptor descriptorWithDescriptorType:type 
bytes:&qdBounds length:sizeof(Rect)];
+    } else if (type == typeSInt32) {
+        NSUInteger first = NSNotFound, last = NSNotFound;
+        if ((page = [selection safeFirstPage]))
+            first = [selection safeIndexOfFirstCharacterOnPage:page];
+        if ((page = [selection safeLastPage]))
+            last = [selection safeIndexOfLastCharacterOnPage:page];
+        desc = [NSAppleEventDescriptor listDescriptor];
+        [desc insertDescriptor:[NSAppleEventDescriptor 
descriptorWithInt32:first == NSNotFound ? 0 : first + 1] atIndex:1];
+        [desc insertDescriptor:[NSAppleEventDescriptor 
descriptorWithInt32:last == NSNotFound ? 0 : last + 1] atIndex:2];
+    } else if (type == typePage) {
+        NSArray *pages = [selection pages];
+        if ([pages count] == 1) {
+            desc = [[[pages firstObject] objectSpecifier] descriptor];
+        } else {
+            desc = [NSAppleEventDescriptor listDescriptor];
+            NSInteger i = 0;
+            for (PDFPage *page in pages)
+                [desc insertDescriptor:[[page objectSpecifier] descriptor] 
atIndex:++i];
+        }
+    }
+    return desc;
+}
+
+@end

Deleted: trunk/SKPagesCommand.h
===================================================================
--- trunk/SKPagesCommand.h      2021-12-14 16:50:46 UTC (rev 12626)
+++ trunk/SKPagesCommand.h      2021-12-16 23:02:54 UTC (rev 12627)
@@ -1,43 +0,0 @@
-//
-//  SKPagesCommand.h
-//  Skim
-//
-//  Created by Christiaan Hofman on 6/4/08.
-/*
- This software is Copyright (c) 2008-2021
- 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 SKPagesCommand : NSScriptCommand
-@end

Deleted: trunk/SKPagesCommand.m
===================================================================
--- trunk/SKPagesCommand.m      2021-12-14 16:50:46 UTC (rev 12626)
+++ trunk/SKPagesCommand.m      2021-12-16 23:02:54 UTC (rev 12627)
@@ -1,67 +0,0 @@
-//
-//  SKPagesCommand.m
-//  Skim
-//
-//  Created by Christiaan Hofman on 6/4/08.
-/*
- This software is Copyright (c) 2008-2021
- 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 "SKPagesCommand.h"
-#import <Quartz/Quartz.h>
-#import "NSDocument_SKExtensions.h"
-#import "PDFSelection_SKExtensions.h"
-
-
-@implementation SKPagesCommand
-
-- (id)performDefaultImplementation {
-    id dP = [self directParameter];
-    id dPO = nil;
-    if ([dP isKindOfClass:[NSArray class]] == NO)
-        dPO = [dP objectsByEvaluatingSpecifier];
-    
-    if ([dPO isKindOfClass:[NSDocument class]]) {
-        return [dPO valueForKey:@"pages"];
-    } else if ([dPO isKindOfClass:[PDFPage class]]) {
-        return [NSArray arrayWithObjects:dPO, nil];
-    } else if ([dPO isKindOfClass:[PDFAnnotation class]]) {
-        return [NSArray arrayWithObjects:[dPO page], nil];
-    } else {
-        PDFSelection *selection = [PDFSelection selectionWithSpecifier:dP];
-        return [selection hasCharacters] ? [selection pages] : [NSArray array];
-    }
-    
-    return nil;
-}
-
-@end

Modified: trunk/SKPreferencesCommand.m
===================================================================
--- trunk/SKPreferencesCommand.m        2021-12-14 16:50:46 UTC (rev 12626)
+++ trunk/SKPreferencesCommand.m        2021-12-16 23:02:54 UTC (rev 12627)
@@ -43,11 +43,11 @@
 @implementation SKPreferencesCommand
 
 - (id)performDefaultImplementation {
-    id dPO = [self directParameter];
-    if ([dPO isKindOfClass:[NSString class]]) {
-        return [[[SKNotePrefs alloc] initWithType:dPO] autorelease];
-    } else if ([dPO isKindOfClass:[NSNumber class]]) {
-        NSInteger mode = [dPO integerValue];
+    id type = [[self evaluatedArguments] objectForKey:@"Type"];
+    if ([type isKindOfClass:[NSString class]]) {
+        return [[[SKNotePrefs alloc] initWithType:type] autorelease];
+    } else if ([type isKindOfClass:[NSNumber class]]) {
+        NSInteger mode = [type integerValue];
         if (mode == 0 || mode == 1)
             return [[[SKDisplayPrefs alloc] initForFullScreen:mode] 
autorelease];
     }

Deleted: trunk/SKTextCommand.h
===================================================================
--- trunk/SKTextCommand.h       2021-12-14 16:50:46 UTC (rev 12626)
+++ trunk/SKTextCommand.h       2021-12-16 23:02:54 UTC (rev 12627)
@@ -1,43 +0,0 @@
-//
-//  SKTextCommand.h
-//  Skim
-//
-//  Created by Christiaan Hofman on 6/4/08.
-/*
- This software is Copyright (c) 2008-2021
- 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 SKTextCommand : NSScriptCommand
-@end

Deleted: trunk/SKTextCommand.m
===================================================================
--- trunk/SKTextCommand.m       2021-12-14 16:50:46 UTC (rev 12626)
+++ trunk/SKTextCommand.m       2021-12-16 23:02:54 UTC (rev 12627)
@@ -1,84 +0,0 @@
-//
-//  SKTextCommand.m
-//  Skim
-//
-//  Created by Christiaan Hofman on 6/4/08.
-/*
- This software is Copyright (c) 2008-2021
- 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 "SKTextCommand.h"
-#import <Quartz/Quartz.h>
-#import "NSDocument_SKExtensions.h"
-#import "PDFAnnotation_SKExtensions.h"
-#import "PDFSelection_SKExtensions.h"
-#import "NSAttributedString_SKExtensions.h"
-
-
-@implementation SKTextCommand
-
-- (id)performDefaultImplementation {
-    id dP = [self directParameter];
-    id dPO = nil;
-    if ([dP respondsToSelector:@selector(objectsByEvaluatingSpecifier)])
-        dPO = [dP objectsByEvaluatingSpecifier];
-    
-    PDFPage *page = [[self evaluatedArguments] objectForKey:@"Page"];
-    NSAttributedString *attributedString = nil;
-    id asTypeNumber = [[self evaluatedArguments] objectForKey:@"Type"];
-    FourCharCode asType = [asTypeNumber 
respondsToSelector:@selector(unsignedIntValue)] ? [asTypeNumber 
unsignedIntValue] : 'ricT';
-    
-    if ([dPO isKindOfClass:[NSDocument class]]) {
-        attributedString = page ? [page attributedString] : [dPO richText];
-    } else if ([dPO isKindOfClass:[PDFPage class]]) {
-        if (page == nil || [page isEqual:dPO])
-            attributedString = [dPO attributedString];
-    } else if ([dPO isKindOfClass:[PDFAnnotation class]]) {
-        if (page == nil || [page isEqual:[dPO page]])
-            attributedString = [dPO textContents];
-    } else if ([dP isKindOfClass:[NSData class]]) {
-        attributedString = [[[NSAttributedString alloc] initWithData:dP 
options:[NSDictionary dictionary] documentAttributes:NULL error:NULL] 
autorelease];
-    } else {
-        attributedString = [[PDFSelection selectionWithSpecifier:dP 
onPage:page] attributedString];
-    }
-    
-    if (asType == cText || asType == typeText || asType == typeUnicodeText || 
asType == typeUTF8Text || asType == typeCString || asType == typeChar) {
-        return [attributedString string];
-    } else if (asType == 'ricT' || asType == 'cha ' || asType == 'cpar' || 
asType == 'cwor' || asType == 'catr' || asType == typeStyledText || asType == 
typeObjectSpecifier) {
-        return [attributedString richTextSpecifier];
-    } else {
-        [self setScriptErrorNumber:NSArgumentsWrongScriptError];
-        return nil;
-    }
-}
-
-@end

Modified: trunk/Skim.sdef
===================================================================
--- trunk/Skim.sdef     2021-12-14 16:50:46 UTC (rev 12626)
+++ trunk/Skim.sdef     2021-12-16 23:02:54 UTC (rev 12627)
@@ -474,84 +474,25 @@
             </result>
         </command>
 
-        <command name="get bounds for" code="SKIMBnds"
-            description="Get the bounds of a page, note, or selection.">
-            <synonym name="bounds for"/>
-            <cocoa class="SKBoundsCommand"/>
-            <direct-parameter
-                description="The document, page, note, or selection.">
-                <type type="specifier" list="yes"/>
-                <type type="specifier"/>
+        <command name="obtain" code="SKIMObtn"
+            description="Get properties for a selection or raw RTF data.">
+            <cocoa class="SKObtainCommand"/>
+            <direct-parameter type="type"
+                description="The type of object to return. Can be (rich) text, 
RTF, rectangle, integer, or page.">
+                <cocoa key="Type"/>
             </direct-parameter>
-            <parameter name="on" type="page" code="on  " optional="yes"
-                description="The page on which to get the bounds.">
-                <cocoa key="Page"/>
-            </parameter>
-            <parameter name="for" type="PDF display box" code="for " 
optional="yes"
-                description="The display box for which to take the bounds.">
-                <cocoa key="Box"/>
-            </parameter>
-            <result type="rectangle"
-                description="The bounds of the object."/>
-        </command>
-
-        <command name="get text for" code="SKIMText"
-            description="Get the text of a document, page, note, selection, or 
raw RTF data.">
-            <synonym name="text for"/>
-            <cocoa class="SKTextCommand"/>
-            <direct-parameter
-                description="The document, page, note, selection, or raw RTF 
data.">
+            <parameter name="for" code="for "
+                description="The selection or raw RTF data.">
                 <type type="specifier" list="yes"/>
-                <type type="specifier"/>
                 <type type="RTF"/>
-            </direct-parameter>
-            <parameter name="on" type="page" code="on  " optional="yes"
-                description="The page on which to get the text.">
-                <cocoa key="Page"/>
+                <cocoa key="Object"/>
             </parameter>
-            <parameter name="as" type="type" code="rtyp" optional="yes"
-                description="The type of object to return, rich text or a text 
type. The default is rich text.">
-                <cocoa key="Type"/>
-            </parameter>
-            <result description="The (rich) text of the object.">
-                <type type="text"/>
-                <type type="specifier"/>
-            </result>
-        </command>
-
-        <command name="get index for" code="SKIMIndx"
-            description="Get the index of a document, page, note, or 
selection.">
-            <cocoa class="SKIndexCommand"/>
-            <synonym name="index for"/>
-            <direct-parameter
-                description="The document, page, note, or selection.">
-                <type type="specifier" list="yes"/>
-                <type type="specifier"/>
-            </direct-parameter>
             <parameter name="on" type="page" code="on  " optional="yes"
-                description="The page on which to get the index.">
+                description="Restrict the selection to a portion on a page.">
                 <cocoa key="Page"/>
             </parameter>
-            <parameter name="last" type="boolean" code="Last" optional="yes"
-                description="Gets the index of the last character of a 
selection.">
-                <cocoa key="Last"/>
-            </parameter>
-            <result type="integer"
-                description="The index for the object. Returns 0 if no index 
was found."/>
-        </command>
-
-        <command name="get pages for" code="SKIMPags"
-            description="Get the pages of a document, page, note, or 
selection.">
-            <cocoa class="SKPagesCommand"/>
-            <synonym name="pages for"/>
-            <direct-parameter
-                description="The document, page, note, or selection.">
-                <type type="specifier" list="yes"/>
-                <type type="specifier"/>
-            </direct-parameter>
-            <result
-                description="The list of pages for the object.">
-                <type type="page" list="yes"/>
+            <result type="any"
+                description="The value(s) of the type to return. Returns a 
list for integer, and may return a list for page.">
             </result>
         </command>
 
@@ -578,15 +519,16 @@
             </result>
         </command>
 
-        <command name="get preferences for" code="SKIMPref"
+        <command name="preferences" code="SKIMPref"
             description="Get preferences for a note type, or for normal or 
full screen display.">
-            <synonym name="preferences for"/>
+            <synonym name="get preferences"/>
             <cocoa class="SKPreferencesCommand"/>
-            <direct-parameter
+            <parameter name="for" code="for "
                 description="The note type or interaction mode for which to 
get the preferences.">
                 <type type="note type"/>
                 <type type="interaction mode type"/>
-            </direct-parameter>
+                <cocoa key="Type"/>
+            </parameter>
             <result
                 description="The preferences for the note type or PDF 
display.">
                 <type type="note preferences"/>
@@ -676,18 +618,6 @@
             <responds-to name="join">
                 <cocoa method=""/>
             </responds-to>
-            <responds-to name="get bounds for">
-                <cocoa method=""/>
-            </responds-to>
-            <responds-to name="get text for">
-                <cocoa method=""/>
-            </responds-to>
-            <responds-to name="get index for">
-                <cocoa method=""/>
-            </responds-to>
-            <responds-to name="get pages for">
-                <cocoa method=""/>
-            </responds-to>
         </class-extension>
 
         <class-extension extends="application"
@@ -815,18 +745,6 @@
             <responds-to name="edit">
                 <cocoa method="handleEditScriptCommand:"/>
             </responds-to>
-                       <responds-to name="get bounds for">
-                               <cocoa method=""/>
-                       </responds-to>
-                       <responds-to name="get text for">
-                               <cocoa method=""/>
-                       </responds-to>
-                       <responds-to name="get index for">
-                               <cocoa method=""/>
-                       </responds-to>
-                       <responds-to name="get pages for">
-                               <cocoa method=""/>
-                       </responds-to>
                        <responds-to name="format">
                                <cocoa method=""/>
                        </responds-to>
@@ -880,18 +798,6 @@
                 description="The rotation of the page. Must be one of 0, 90, 
180, or 270.">
                 <cocoa key="rotationAngle"/>
             </property>
-                       <responds-to name="get bounds for">
-                               <cocoa method=""/>
-                       </responds-to>
-                       <responds-to name="get text for">
-                               <cocoa method=""/>
-                       </responds-to>
-                       <responds-to name="get index for">
-                               <cocoa method=""/>
-                       </responds-to>
-                       <responds-to name="get pages for">
-                               <cocoa method=""/>
-                       </responds-to>
                        <responds-to name="grab">
                                <cocoa method="handleGrabScriptCommand:"/>
                        </responds-to>
@@ -1002,18 +908,6 @@
                 <type type="point list" list="yes"/>
                 <cocoa key="scriptingPointLists"/>
             </property>
-                       <responds-to name="get bounds for">
-                               <cocoa method=""/>
-                       </responds-to>
-                       <responds-to name="get text for">
-                               <cocoa method=""/>
-                       </responds-to>
-                       <responds-to name="get index for">
-                               <cocoa method=""/>
-                       </responds-to>
-                       <responds-to name="get pages for">
-                               <cocoa method=""/>
-                       </responds-to>
             <responds-to name="format">
                 <cocoa method=""/>
             </responds-to>

Modified: trunk/Skim.xcodeproj/project.pbxproj
===================================================================
--- trunk/Skim.xcodeproj/project.pbxproj        2021-12-14 16:50:46 UTC (rev 
12626)
+++ trunk/Skim.xcodeproj/project.pbxproj        2021-12-16 23:02:54 UTC (rev 
12627)
@@ -128,10 +128,6 @@
                CE455394111DA4290060CAC9 /* SKImageToolTipContext.m in Sources 
*/ = {isa = PBXBuildFile; fileRef = CE455393111DA4290060CAC9 /* 
SKImageToolTipContext.m */; };
                CE4642E50DF5CBD900CFD8D2 /* PDFAnnotationText_SKExtensions.m in 
Sources */ = {isa = PBXBuildFile; fileRef = CE4642E40DF5CBD900CFD8D2 /* 
PDFAnnotationText_SKExtensions.m */; };
                CE4643CF0DF6B5A400CFD8D2 /* SKJoinCommand.m in Sources */ = 
{isa = PBXBuildFile; fileRef = CE4643CE0DF6B5A400CFD8D2 /* SKJoinCommand.m */; 
};
-               CE4643D50DF6B60500CFD8D2 /* SKPagesCommand.m in Sources */ = 
{isa = PBXBuildFile; fileRef = CE4643D40DF6B60500CFD8D2 /* SKPagesCommand.m */; 
};
-               CE4643D80DF6B63500CFD8D2 /* SKTextCommand.m in Sources */ = 
{isa = PBXBuildFile; fileRef = CE4643D70DF6B63500CFD8D2 /* SKTextCommand.m */; 
};
-               CE4643DB0DF6B66000CFD8D2 /* SKIndexCommand.m in Sources */ = 
{isa = PBXBuildFile; fileRef = CE4643DA0DF6B66000CFD8D2 /* SKIndexCommand.m */; 
};
-               CE4643DE0DF6B77800CFD8D2 /* SKBoundsCommand.m in Sources */ = 
{isa = PBXBuildFile; fileRef = CE4643DD0DF6B77800CFD8D2 /* SKBoundsCommand.m 
*/; };
                CE4645910DF8140200CFD8D2 /* SKNumberArrayFormatter.m in Sources 
*/ = {isa = PBXBuildFile; fileRef = CE4645900DF8140200CFD8D2 /* 
SKNumberArrayFormatter.m */; };
                CE48BAD80C089EA300A166C6 /* SKTemplateParser.m in Sources */ = 
{isa = PBXBuildFile; fileRef = CE48BAD60C089EA300A166C6 /* SKTemplateParser.m 
*/; };
                CE48EFB121C3DC3900249D4C /* SKDownloadsWindow.m in Sources */ = 
{isa = PBXBuildFile; fileRef = CE48EFB021C3DC3900249D4C /* SKDownloadsWindow.m 
*/; };
@@ -151,6 +147,7 @@
                CE5347141645DD3000737191 /* SKAttachmentEmailer.m in Sources */ 
= {isa = PBXBuildFile; fileRef = CE5347131645DD3000737191 /* 
SKAttachmentEmailer.m */; };
                CE546FC40B32D5DB00F8AFB6 /* SKNoteWindowController.m in Sources 
*/ = {isa = PBXBuildFile; fileRef = CE546FC30B32D5DB00F8AFB6 /* 
SKNoteWindowController.m */; };
                CE54898F0B35D50E00F8AFB6 /* SKInfoWindowController.m in Sources 
*/ = {isa = PBXBuildFile; fileRef = CE54898E0B35D50E00F8AFB6 /* 
SKInfoWindowController.m */; };
+               CE56F2C8276BFBA7002B3717 /* SKObtainCommand.m in Sources */ = 
{isa = PBXBuildFile; fileRef = CE56F2C7276BFBA7002B3717 /* SKObtainCommand.m 
*/; };
                CE5BAF4410511A0F00161B87 /* PDFOutline_SKExtensions.m in 
Sources */ = {isa = PBXBuildFile; fileRef = CE5BAF4310511A0F00161B87 /* 
PDFOutline_SKExtensions.m */; };
                CE5BB0CF10515CCC00161B87 /* SKPDFDocument.m in Sources */ = 
{isa = PBXBuildFile; fileRef = CE5BB0CE10515CCC00161B87 /* SKPDFDocument.m */; 
};
                CE5BB0D310515D3100161B87 /* SKPDFPage.m in Sources */ = {isa = 
PBXBuildFile; fileRef = CE5BB0D210515D3100161B87 /* SKPDFPage.m */; };
@@ -870,14 +867,6 @@
                CE4642E40DF5CBD900CFD8D2 /* PDFAnnotationText_SKExtensions.m */ 
= {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = 
sourcecode.c.objc; path = PDFAnnotationText_SKExtensions.m; sourceTree = 
"<group>"; };
                CE4643CD0DF6B5A400CFD8D2 /* SKJoinCommand.h */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 
SKJoinCommand.h; sourceTree = "<group>"; };
                CE4643CE0DF6B5A400CFD8D2 /* SKJoinCommand.m */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path 
= SKJoinCommand.m; sourceTree = "<group>"; };
-               CE4643D30DF6B60500CFD8D2 /* SKPagesCommand.h */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 
SKPagesCommand.h; sourceTree = "<group>"; };
-               CE4643D40DF6B60500CFD8D2 /* SKPagesCommand.m */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path 
= SKPagesCommand.m; sourceTree = "<group>"; };
-               CE4643D60DF6B63500CFD8D2 /* SKTextCommand.h */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 
SKTextCommand.h; sourceTree = "<group>"; };
-               CE4643D70DF6B63500CFD8D2 /* SKTextCommand.m */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path 
= SKTextCommand.m; sourceTree = "<group>"; };
-               CE4643D90DF6B66000CFD8D2 /* SKIndexCommand.h */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 
SKIndexCommand.h; sourceTree = "<group>"; };
-               CE4643DA0DF6B66000CFD8D2 /* SKIndexCommand.m */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path 
= SKIndexCommand.m; sourceTree = "<group>"; };
-               CE4643DC0DF6B77800CFD8D2 /* SKBoundsCommand.h */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 
SKBoundsCommand.h; sourceTree = "<group>"; };
-               CE4643DD0DF6B77800CFD8D2 /* SKBoundsCommand.m */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path 
= SKBoundsCommand.m; sourceTree = "<group>"; };
                CE46458F0DF8140200CFD8D2 /* SKNumberArrayFormatter.h */ = {isa 
= PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path 
= SKNumberArrayFormatter.h; sourceTree = "<group>"; };
                CE4645900DF8140200CFD8D2 /* SKNumberArrayFormatter.m */ = {isa 
= PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; 
path = SKNumberArrayFormatter.m; sourceTree = "<group>"; };
                CE485B960BC442BA00FA7109 /* nl */ = {isa = PBXFileReference; 
fileEncoding = 10; lastKnownFileType = text.plist.strings; name = nl; path = 
nl.lproj/InfoPlist.strings; sourceTree = "<group>"; };
@@ -926,6 +915,8 @@
                CE54AA8E0BBC037400008750 /* ReleaseNotes.rtf */ = {isa = 
PBXFileReference; lastKnownFileType = text.rtf; path = ReleaseNotes.rtf; 
sourceTree = "<group>"; };
                CE5545BF248DA3B000BEEAF0 /* en */ = {isa = PBXFileReference; 
lastKnownFileType = text; name = en; path = 
Skim.help/Contents/Resources/en.lproj/skim.texi; sourceTree = SOURCE_ROOT; };
                CE5545D1248DA3C200BEEAF0 /* nl */ = {isa = PBXFileReference; 
lastKnownFileType = text; name = nl; path = 
../Skim.help/Contents/Resources/nl.lproj/skim.texi; sourceTree = "<group>"; };
+               CE56F2C6276BFBA7002B3717 /* SKObtainCommand.h */ = {isa = 
PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SKObtainCommand.h; 
sourceTree = "<group>"; };
+               CE56F2C7276BFBA7002B3717 /* SKObtainCommand.m */ = {isa = 
PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = 
SKObtainCommand.m; sourceTree = "<group>"; };
                CE5A822E0E6C429D008C0AA9 /* it */ = {isa = PBXFileReference; 
lastKnownFileType = text.rtf; name = it; path = it.lproj/Credits.rtf; 
sourceTree = "<group>"; };
                CE5A822F0E6C42A7008C0AA9 /* it */ = {isa = PBXFileReference; 
fileEncoding = 10; lastKnownFileType = text.plist.strings; name = it; path = 
it.lproj/InfoPlist.strings; sourceTree = "<group>"; };
                CE5A82300E6C42B1008C0AA9 /* it */ = {isa = PBXFileReference; 
fileEncoding = 10; lastKnownFileType = text.plist.strings; name = it; path = 
it.lproj/Localizable.strings; sourceTree = "<group>"; };
@@ -1940,16 +1931,12 @@
                CE4643F10DF6BADC00CFD8D2 /* Commands */ = {
                        isa = PBXGroup;
                        children = (
-                               CE4643DC0DF6B77800CFD8D2 /* SKBoundsCommand.h 
*/,
-                               CE4643DD0DF6B77800CFD8D2 /* SKBoundsCommand.m 
*/,
                                CEFBC968103C5CBF00535C74 /* SKFormatCommand.h 
*/,
                                CEFBC969103C5CBF00535C74 /* SKFormatCommand.m 
*/,
-                               CE4643D90DF6B66000CFD8D2 /* SKIndexCommand.h */,
-                               CE4643DA0DF6B66000CFD8D2 /* SKIndexCommand.m */,
                                CE4643CD0DF6B5A400CFD8D2 /* SKJoinCommand.h */,
                                CE4643CE0DF6B5A400CFD8D2 /* SKJoinCommand.m */,
-                               CE4643D30DF6B60500CFD8D2 /* SKPagesCommand.h */,
-                               CE4643D40DF6B60500CFD8D2 /* SKPagesCommand.m */,
+                               CE56F2C6276BFBA7002B3717 /* SKObtainCommand.h 
*/,
+                               CE56F2C7276BFBA7002B3717 /* SKObtainCommand.m 
*/,
                                CEC29534275A7D58000F2D4C /* 
SKPreferencesCommand.h */,
                                CEC29535275A7D58000F2D4C /* 
SKPreferencesCommand.m */,
                                CE12A73C134F215F003AED67 /* SKSelectCommand.h 
*/,
@@ -1956,8 +1943,6 @@
                                CE12A73D134F215F003AED67 /* SKSelectCommand.m 
*/,
                                CECE6C3D2188AE9A00F6179D /* 
SKSelectionCommand.h */,
                                CECE6C3E2188AE9A00F6179D /* 
SKSelectionCommand.m */,
-                               CE4643D60DF6B63500CFD8D2 /* SKTextCommand.h */,
-                               CE4643D70DF6B63500CFD8D2 /* SKTextCommand.m */,
                        );
                        name = Commands;
                        sourceTree = "<group>";
@@ -2655,6 +2640,7 @@
                                CEED148C2709EE4D00A8C4AA /* SKBasePDFView.m in 
Sources */,
                                CE48EFB121C3DC3900249D4C /* SKDownloadsWindow.m 
in Sources */,
                                CE54898F0B35D50E00F8AFB6 /* 
SKInfoWindowController.m in Sources */,
+                               CE56F2C8276BFBA7002B3717 /* SKObtainCommand.m 
in Sources */,
                                F92DB5AD0B36FE1F002A26E9 /* SKSnapshotPDFView.m 
in Sources */,
                                F97751630B37461000DF673B /* 
SKConversionProgressController.m in Sources */,
                                CEFDF8BE0B3848C40091C61A /* 
SKNavigationWindow.m in Sources */,
@@ -2758,10 +2744,6 @@
                                CE0ECD1C0DE73604006EEDDB /* 
NSDocument_SKExtensions.m in Sources */,
                                CE4642E50DF5CBD900CFD8D2 /* 
PDFAnnotationText_SKExtensions.m in Sources */,
                                CE4643CF0DF6B5A400CFD8D2 /* SKJoinCommand.m in 
Sources */,
-                               CE4643D50DF6B60500CFD8D2 /* SKPagesCommand.m in 
Sources */,
-                               CE4643D80DF6B63500CFD8D2 /* SKTextCommand.m in 
Sources */,
-                               CE4643DB0DF6B66000CFD8D2 /* SKIndexCommand.m in 
Sources */,
-                               CE4643DE0DF6B77800CFD8D2 /* SKBoundsCommand.m 
in Sources */,
                                CE4645910DF8140200CFD8D2 /* 
SKNumberArrayFormatter.m in Sources */,
                                CE34FFA80DFF58FB00A7FFE6 /* 
NSEvent_SKExtensions.m in Sources */,
                                CE3400AC0E0034DF00A7FFE6 /* 
NSMenu_SKExtensions.m in Sources */,

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



_______________________________________________
Skim-app-commit mailing list
Skim-app-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to