Revision: 13873
          http://sourceforge.net/p/skim-app/code/13873
Author:   hofman
Date:     2023-12-10 17:13:19 +0000 (Sun, 10 Dec 2023)
Log Message:
-----------
Add NSPointerFunction category with convenianceclass factory methods, in 
particular for varias structs

Modified Paths:
--------------
    trunk/NSPointerArray_SKExtensions.h
    trunk/NSPointerArray_SKExtensions.m
    trunk/NSWindowController_SKExtensions.m
    trunk/SKMainDocument.m
    trunk/SKPDFSynchronizer.m
    trunk/Skim.xcodeproj/project.pbxproj

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

Modified: trunk/NSPointerArray_SKExtensions.h
===================================================================
--- trunk/NSPointerArray_SKExtensions.h 2023-12-10 16:46:14 UTC (rev 13872)
+++ trunk/NSPointerArray_SKExtensions.h 2023-12-10 17:13:19 UTC (rev 13873)
@@ -41,9 +41,9 @@
 
 @interface NSPointerArray (SKExtensions)
 
-+ (instancetype)rectPointerArray;
-+ (instancetype)rangePointerArray;
-- (instancetype)initForStructPointersWithSizeFunction:(NSUInteger (*)(const 
void *))sizeFunction descriptionFunction:(NSString *(*)(const void 
*))descriptionFunction;
+@property (class, nonatomic, readonly) NSPointerArray *rectPointerArray;
+@property (class, nonatomic, readonly) NSPointerArray *rangePointerArray;
+
 - (instancetype)initForRectPointers;
 - (instancetype)initForRangePointers;
 

Modified: trunk/NSPointerArray_SKExtensions.m
===================================================================
--- trunk/NSPointerArray_SKExtensions.m 2023-12-10 16:46:14 UTC (rev 13872)
+++ trunk/NSPointerArray_SKExtensions.m 2023-12-10 17:13:19 UTC (rev 13873)
@@ -37,35 +37,21 @@
  */
 
 #import "NSPointerArray_SKExtensions.h"
+#import "NSPointerFunctions_SKExtensions.h"
 
 
 @implementation NSPointerArray (SKExtensions)
 
-static NSUInteger rectSizeFunction(const void *item) { return sizeof(NSRect); }
-
-static NSUInteger rangeSizeFunction(const void *item) { return 
sizeof(NSRange); }
-
-static NSString *rectDescriptionFunction(const void *item) { return 
NSStringFromRect(*(NSRectPointer)item); }
-
-static NSString *rangeDescriptionFunction(const void *item) { return [NSString 
stringWithFormat:@"(%lu, %lu)", (unsigned long)(((NSRange *)item)->location), 
(unsigned long)(((NSRange *)item)->length)]; }
-
 + (instancetype)rectPointerArray { return [[[self alloc] initForRectPointers] 
autorelease]; }
 
 + (instancetype)rangePointerArray { return [[[self alloc] 
initForRangePointers] autorelease]; }
 
-- (instancetype)initForStructPointersWithSizeFunction:(NSUInteger (*)(const 
void *))sizeFunction descriptionFunction:(NSString *(*)(const void 
*))descriptionFunction {
-    NSPointerFunctions *pointerFunctions = [NSPointerFunctions 
pointerFunctionsWithOptions:NSPointerFunctionsMallocMemory | 
NSPointerFunctionsCopyIn | NSPointerFunctionsStructPersonality];
-    [pointerFunctions setSizeFunction:sizeFunction];
-    [pointerFunctions setDescriptionFunction:descriptionFunction];
-    return [self initWithPointerFunctions:pointerFunctions];
-}
-
 - (instancetype)initForRectPointers {
-    return [self initForStructPointersWithSizeFunction:&rectSizeFunction 
descriptionFunction:&rectDescriptionFunction];
+    return [self initWithPointerFunctions:[NSPointerFunctions 
rectPointerFunctions]];
 }
 
 - (instancetype)initForRangePointers {
-    return [self initForStructPointersWithSizeFunction:&rangeSizeFunction 
descriptionFunction:&rangeDescriptionFunction];
+    return [self initWithPointerFunctions:[NSPointerFunctions 
rangePointerFunctions]];
 }
 
 - (NSRect)rectAtIndex:(NSUInteger)anIndex {

Added: trunk/NSPointerFunctions_SKExtensions.h
===================================================================
--- trunk/NSPointerFunctions_SKExtensions.h                             (rev 0)
+++ trunk/NSPointerFunctions_SKExtensions.h     2023-12-10 17:13:19 UTC (rev 
13873)
@@ -0,0 +1,51 @@
+//
+//  NSPointerFunctions_SKExtensions.h
+//  Skim
+//
+//  Created by Christiaan Hofman on 10/12/2023.
+/*
+ This software is Copyright (c) 2023
+ 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 NSPointerFunctions (SKExtensions)
+
+@property (class, nonatomic, readonly) NSPointerFunctions 
*pointPointerFunctions;
+@property (class, nonatomic, readonly) NSPointerFunctions 
*rectPointerFunctions;
+@property (class, nonatomic, readonly) NSPointerFunctions 
*rangePointerFunctions;
+@property (class, nonatomic, readonly) NSPointerFunctions 
*strongPointerFunctions;
+@property (class, nonatomic, readonly) NSPointerFunctions 
*weakPointerFunctions;
+@property (class, nonatomic, readonly) NSPointerFunctions 
*integerPointerFunctions;
+
+@end

Added: trunk/NSPointerFunctions_SKExtensions.m
===================================================================
--- trunk/NSPointerFunctions_SKExtensions.m                             (rev 0)
+++ trunk/NSPointerFunctions_SKExtensions.m     2023-12-10 17:13:19 UTC (rev 
13873)
@@ -0,0 +1,86 @@
+//
+//  NSPointerFunctions_SKExtensions.m
+//  Skim
+//
+//  Created by Christiaan Hofman on 10/12/2023.
+/*
+ This software is Copyright (c) 2023
+ 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 "NSPointerFunctions_SKExtensions.h"
+
+static NSUInteger pointSizeFunction(const void *item) { return 
sizeof(NSPoint); }
+
+static NSUInteger rectSizeFunction(const void *item) { return sizeof(NSRect); }
+
+static NSUInteger rangeSizeFunction(const void *item) { return 
sizeof(NSRange); }
+
+static NSString *pointDescriptionFunction(const void *item) { return 
NSStringFromPoint(*(NSPointPointer)item); }
+
+static NSString *rectDescriptionFunction(const void *item) { return 
NSStringFromRect(*(NSRectPointer)item); }
+
+static NSString *rangeDescriptionFunction(const void *item) { return [NSString 
stringWithFormat:@"(%lu, %lu)", (unsigned long)(((NSRange *)item)->location), 
(unsigned long)(((NSRange *)item)->length)]; }
+
+@implementation NSPointerFunctions (SKExtensions)
+
++ (NSPointerFunctions *)structPointerFunctionsWithSizeFunction:(NSUInteger 
(*)(const void *))sizeFunction descriptionFunction:(NSString *(*)(const void 
*))descriptionFunction {
+    NSPointerFunctions *pointerFunctions = [self 
pointerFunctionsWithOptions:NSPointerFunctionsMallocMemory | 
NSPointerFunctionsCopyIn | NSPointerFunctionsStructPersonality];
+    [pointerFunctions setSizeFunction:sizeFunction];
+    [pointerFunctions setDescriptionFunction:descriptionFunction];
+    return pointerFunctions;
+}
+
++ (NSPointerFunctions *)pointPointerFunctions {
+    return [self structPointerFunctionsWithSizeFunction:pointSizeFunction 
descriptionFunction:pointDescriptionFunction];
+}
+
++ (NSPointerFunctions *)rectPointerFunctions {
+    return [self structPointerFunctionsWithSizeFunction:rectSizeFunction 
descriptionFunction:rectDescriptionFunction];
+}
+
++ (NSPointerFunctions *)rangePointerFunctions {
+    return [self structPointerFunctionsWithSizeFunction:rangeSizeFunction 
descriptionFunction:rangeDescriptionFunction];
+}
+
++ (NSPointerFunctions *)strongPointerFunctions {
+    return [self pointerFunctionsWithOptions:NSPointerFunctionsStrongMemory | 
NSPointerFunctionsObjectPersonality];
+}
+
++ (NSPointerFunctions *)weakPointerFunctions {
+    return [self pointerFunctionsWithOptions:NSPointerFunctionsWeakMemory | 
NSPointerFunctionsObjectPersonality];
+}
+
++ (NSPointerFunctions *)integerPointerFunctions {
+    return [self pointerFunctionsWithOptions:NSPointerFunctionsOpaqueMemory | 
NSPointerFunctionsIntegerPersonality];
+}
+
+@end

Modified: trunk/NSWindowController_SKExtensions.m
===================================================================
--- trunk/NSWindowController_SKExtensions.m     2023-12-10 16:46:14 UTC (rev 
13872)
+++ trunk/NSWindowController_SKExtensions.m     2023-12-10 17:13:19 UTC (rev 
13873)
@@ -39,22 +39,15 @@
 #import "NSWindowController_SKExtensions.h"
 #import "NSInvocation_SKExtensions.h"
 #import "NSPointerArray_SKExtensions.h"
+#import "NSPointerFunctions_SKExtensions.h"
 
 
 @implementation NSWindowController (SKExtensions)
 
-static NSUInteger pointSizeFunction(const void *item) { return 
sizeof(NSPoint); }
-static NSString *pointDescriptionFunction(const void *item) { return 
NSStringFromPoint(*(NSPointPointer)item); }
-
 - (void)setWindowFrameAutosaveNameOrCascade:(NSString *)name {
     static NSMapTable *nextWindowLocations = nil;
-    if (nextWindowLocations == nil) {
-        NSPointerFunctions *keyPointerFunctions = [NSPointerFunctions 
pointerFunctionsWithOptions:NSPointerFunctionsStrongMemory | 
NSPointerFunctionsObjectPersonality];
-        NSPointerFunctions *valuePointerFunctions = [NSPointerFunctions 
pointerFunctionsWithOptions:NSPointerFunctionsMallocMemory | 
NSPointerFunctionsCopyIn | NSPointerFunctionsStructPersonality];
-        [valuePointerFunctions setSizeFunction:pointSizeFunction];
-        [valuePointerFunctions 
setDescriptionFunction:pointDescriptionFunction];
-        nextWindowLocations = [[NSMapTable alloc] 
initWithKeyPointerFunctions:keyPointerFunctions 
valuePointerFunctions:valuePointerFunctions capacity:0];
-    }
+    if (nextWindowLocations == nil)
+        nextWindowLocations = [[NSMapTable alloc] 
initWithKeyPointerFunctions:[NSPointerFunctions strongPointerFunctions] 
valuePointerFunctions:[NSPointerFunctions pointPointerFunctions] capacity:0];
     
     NSPointPointer pointPtr = (NSPointPointer)NSMapGet(nextWindowLocations, 
name);
     NSPoint point;

Modified: trunk/SKMainDocument.m
===================================================================
--- trunk/SKMainDocument.m      2023-12-10 16:46:14 UTC (rev 13872)
+++ trunk/SKMainDocument.m      2023-12-10 17:13:19 UTC (rev 13873)
@@ -92,6 +92,7 @@
 #import "PDFView_SKExtensions.h"
 #import "SKLine.h"
 #import "NSPasteboard_SKExtensions.h"
+#import "NSPointerFunctions_SKExtensions.h"
 
 #define BUNDLE_DATA_FILENAME @"data"
 #define PRESENTATION_OPTIONS_KEY 
@"net_sourceforge_skim-app_presentation_options"
@@ -1155,13 +1156,8 @@
         }
         
         if (NSEqualPoints(pageOrigin, NSZeroPoint) == NO) {
-            if (offsets == nil) {
-                NSPointerFunctions *keyPointerFunctions = [NSPointerFunctions 
pointerFunctionsWithOptions:NSPointerFunctionsOpaqueMemory | 
NSPointerFunctionsIntegerPersonality];
-                NSPointerFunctions *valuePointerFunctions = 
[NSPointerFunctions pointerFunctionsWithOptions:NSPointerFunctionsMallocMemory 
| NSPointerFunctionsCopyIn | NSPointerFunctionsStructPersonality];
-                [valuePointerFunctions setSizeFunction:pointSizeFunction];
-                [valuePointerFunctions 
setDescriptionFunction:pointDescriptionFunction];
-                offsets = [[NSMapTable alloc] 
initWithKeyPointerFunctions:keyPointerFunctions 
valuePointerFunctions:valuePointerFunctions capacity:0];
-            }
+            if (offsets == nil)
+                offsets = [[NSMapTable alloc] 
initWithKeyPointerFunctions:[NSPointerFunctions integerPointerFunctions] 
valuePointerFunctions:[NSPointerFunctions pointPointerFunctions] capacity:0];
             NSMapInsert(offsets, (const void *)[page pageIndex], &pageOrigin);
         }
     }

Modified: trunk/SKPDFSynchronizer.m
===================================================================
--- trunk/SKPDFSynchronizer.m   2023-12-10 16:46:14 UTC (rev 13872)
+++ trunk/SKPDFSynchronizer.m   2023-12-10 17:13:19 UTC (rev 13873)
@@ -42,6 +42,7 @@
 #import "NSScanner_SKExtensions.h"
 #import <CoreFoundation/CoreFoundation.h>
 #import "NSFileManager_SKExtensions.h"
+#import "NSPointerFunctions_SKExtensions.h"
 
 #define PDFSYNC_TO_PDF(coord) ((CGFloat)coord / 65536.0)
 
@@ -221,10 +222,10 @@
     if (lines) {
         [lines removeAllObjects];
     } else {
-        NSPointerFunctions *keyPointerFunctions = [NSPointerFunctions 
pointerFunctionsWithOptions:NSPointerFunctionsStrongMemory | 
NSPointerFunctionsObjectPersonality];
+        NSPointerFunctions *keyPointerFunctions = [NSPointerFunctions 
strongPointerFunctions];
         [keyPointerFunctions setIsEqualFunction:&caseInsensitiveStringEqual];
         [keyPointerFunctions setHashFunction:&caseInsensitiveStringHash];
-        NSPointerFunctions *valuePointerFunctions = [NSPointerFunctions 
pointerFunctionsWithOptions:NSPointerFunctionsStrongMemory | 
NSPointerFunctionsObjectPersonality];
+        NSPointerFunctions *valuePointerFunctions = [NSPointerFunctions 
strongPointerFunctions];
         lines = [[NSMapTable alloc] 
initWithKeyPointerFunctions:keyPointerFunctions 
valuePointerFunctions:valuePointerFunctions capacity:0];
     }
     
@@ -473,7 +474,7 @@
         if (filenames) {
             [filenames removeAllObjects];
         } else {
-            NSPointerFunctions *keyPointerFunctions = [NSPointerFunctions 
pointerFunctionsWithOptions:NSPointerFunctionsStrongMemory | 
NSPointerFunctionsObjectPersonality];
+            NSPointerFunctions *keyPointerFunctions = [NSPointerFunctions 
strongPointerFunctions];
             [keyPointerFunctions 
setIsEqualFunction:&caseInsensitiveStringEqual];
             [keyPointerFunctions setHashFunction:&caseInsensitiveStringHash];
             NSPointerFunctions *valuePointerFunctions = [NSPointerFunctions 
pointerFunctionsWithOptions:NSPointerFunctionsMallocMemory | 
NSPointerFunctionsCStringPersonality | NSPointerFunctionsCopyIn];

Modified: trunk/Skim.xcodeproj/project.pbxproj
===================================================================
--- trunk/Skim.xcodeproj/project.pbxproj        2023-12-10 16:46:14 UTC (rev 
13872)
+++ trunk/Skim.xcodeproj/project.pbxproj        2023-12-10 17:13:19 UTC (rev 
13873)
@@ -35,6 +35,7 @@
                8D15AC310486D014006FF6A4 /* SKMainDocument.m in Sources */ = 
{isa = PBXBuildFile; fileRef = 2A37F4ACFDCFA73011CA2CEA /* SKMainDocument.m */; 
settings = {ATTRIBUTES = (); }; };
                8D15AC320486D014006FF6A4 /* main.m in Sources */ = {isa = 
PBXBuildFile; fileRef = 2A37F4B0FDCFA73011CA2CEA /* main.m */; settings = 
{ATTRIBUTES = (); }; };
                8D15AC340486D014006FF6A4 /* Cocoa.framework in Frameworks */ = 
{isa = PBXBuildFile; fileRef = 1058C7A7FEA54F5311CA2CBB /* Cocoa.framework */; 
};
+               CE017E812B2623A800F5FC1E /* NSPointerFunctions_SKExtensions.m 
in Sources */ = {isa = PBXBuildFile; fileRef = CE017E802B2623A800F5FC1E /* 
NSPointerFunctions_SKExtensions.m */; };
                CE030C6113C07A57007A47E9 /* PDFView_SKExtensions.m in Sources 
*/ = {isa = PBXBuildFile; fileRef = CE030C6013C07A57007A47E9 /* 
PDFView_SKExtensions.m */; };
                CE042E2325F6893F00279FA5 /* Assets.xcassets in Resources */ = 
{isa = PBXBuildFile; fileRef = CE042E2225F6893F00279FA5 /* Assets.xcassets */; 
};
                CE0463CB0B84D24300C11E4A /* SKApplication.m in Sources */ = 
{isa = PBXBuildFile; fileRef = CE0463CA0B84D24300C11E4A /* SKApplication.m */; 
};
@@ -314,6 +315,69 @@
 /* End PBXBuildFile section */
 
 /* Begin PBXContainerItemProxy section */
+               CE017E9C2B2623A800F5FC1E /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = CE2BD8170BD4127A00A5F4DB /* 
Sparkle.xcodeproj */;
+                       proxyType = 2;
+                       remoteGlobalIDString = 726E07AD1CAF08D6001A286B;
+                       remoteInfo = SparkleInstallerLauncher;
+               };
+               CE017E9E2B2623A800F5FC1E /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = CE2BD8170BD4127A00A5F4DB /* 
Sparkle.xcodeproj */;
+                       proxyType = 2;
+                       remoteGlobalIDString = 724BB36C1D31D0B7005D534A;
+                       remoteInfo = SparkleInstallerConnection;
+               };
+               CE017EA02B2623A800F5FC1E /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = CE2BD8170BD4127A00A5F4DB /* 
Sparkle.xcodeproj */;
+                       proxyType = 2;
+                       remoteGlobalIDString = 724BB3931D333832005D534A;
+                       remoteInfo = SparkleInstallerStatus;
+               };
+               CE017EA22B2623A800F5FC1E /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = CE2BD8170BD4127A00A5F4DB /* 
Sparkle.xcodeproj */;
+                       proxyType = 2;
+                       remoteGlobalIDString = 726E07EF1CAF37BD001A286B;
+                       remoteInfo = SparkleDownloader;
+               };
+               CE017EA42B2623A800F5FC1E /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = CE2BD8170BD4127A00A5F4DB /* 
Sparkle.xcodeproj */;
+                       proxyType = 2;
+                       remoteGlobalIDString = 726E4A161C86C88F00C57C6A;
+                       remoteInfo = TestAppHelper;
+               };
+               CE017EA62B2623A800F5FC1E /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = CE2BD8170BD4127A00A5F4DB /* 
Sparkle.xcodeproj */;
+                       proxyType = 2;
+                       remoteGlobalIDString = 72D9549E1CBB415B006F28BD;
+                       remoteInfo = "sparkle-cli";
+               };
+               CE017EA82B2623A800F5FC1E /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = CE2BD8170BD4127A00A5F4DB /* 
Sparkle.xcodeproj */;
+                       proxyType = 2;
+                       remoteGlobalIDString = 721C24451CB753E6005440CB;
+                       remoteInfo = "Installer Progress";
+               };
+               CE017EAA2B2623A800F5FC1E /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = CE2BD8170BD4127A00A5F4DB /* 
Sparkle.xcodeproj */;
+                       proxyType = 2;
+                       remoteGlobalIDString = EA1E280F22B64522004AA304;
+                       remoteInfo = bsdiff;
+               };
+               CE017EAC2B2623A800F5FC1E /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = CE2BD8170BD4127A00A5F4DB /* 
Sparkle.xcodeproj */;
+                       proxyType = 2;
+                       remoteGlobalIDString = EA1E282D22B660BE004AA304;
+                       remoteInfo = ed25519;
+               };
                CE11CFF329D86E5A00C6C217 /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = CE7DC7280E09286500D6D76D /* 
SkimNotes.xcodeproj */;
@@ -377,13 +441,6 @@
                        remoteGlobalIDString = 726B2B5D1C645FC900388755;
                        remoteInfo = "UI Tests";
                };
-               CE30E5052268C3A20013CB7F /* PBXContainerItemProxy */ = {
-                       isa = PBXContainerItemProxy;
-                       containerPortal = CE2BD8170BD4127A00A5F4DB /* 
Sparkle.xcodeproj */;
-                       proxyType = 2;
-                       remoteGlobalIDString = 722954B41D04ADAF00ECF9CA;
-                       remoteInfo = fileop;
-               };
                CE30E5072268C3A20013CB7F /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = CE2BD8170BD4127A00A5F4DB /* 
Sparkle.xcodeproj */;
@@ -598,6 +655,8 @@
                45B113BF0B329A7E00DE0660 /* LICENSE */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE; 
sourceTree = "<group>"; };
                8D15AC360486D014006FF6A4 /* Info.plist */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = 
Info.plist; sourceTree = "<group>"; };
                8D15AC370486D014006FF6A4 /* Skim.app */ = {isa = 
PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; 
path = Skim.app; sourceTree = BUILT_PRODUCTS_DIR; };
+               CE017E7F2B2623A800F5FC1E /* NSPointerFunctions_SKExtensions.h 
*/ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = 
NSPointerFunctions_SKExtensions.h; sourceTree = "<group>"; };
+               CE017E802B2623A800F5FC1E /* NSPointerFunctions_SKExtensions.m 
*/ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = 
NSPointerFunctions_SKExtensions.m; sourceTree = "<group>"; };
                CE030C5F13C07A57007A47E9 /* PDFView_SKExtensions.h */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 
PDFView_SKExtensions.h; sourceTree = "<group>"; };
                CE030C6013C07A57007A47E9 /* PDFView_SKExtensions.m */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path 
= PDFView_SKExtensions.m; sourceTree = "<group>"; };
                CE042E2225F6893F00279FA5 /* Assets.xcassets */ = {isa = 
PBXFileReference; lastKnownFileType = folder.assetcatalog; path = 
Assets.xcassets; sourceTree = "<group>"; };
@@ -1550,6 +1609,8 @@
                                CE08EBF4218C5DCD00D2DFCC /* 
NSPasteboard_SKExtensions.m */,
                                CE42B8EA106996C60091F588 /* 
NSPointerArray_SKExtensions.h */,
                                CE42B8EB106996C60091F588 /* 
NSPointerArray_SKExtensions.m */,
+                               CE017E7F2B2623A800F5FC1E /* 
NSPointerFunctions_SKExtensions.h */,
+                               CE017E802B2623A800F5FC1E /* 
NSPointerFunctions_SKExtensions.m */,
                                CE1E301A0BDB9D5C0011D9DD /* 
NSScanner_SKExtensions.h */,
                                CE1E301B0BDB9D5C0011D9DD /* 
NSScanner_SKExtensions.m */,
                                CE1D798D129FE44E00EA3AF0 /* 
NSScriptCommand_SKExtensions.h */,
@@ -1673,15 +1734,23 @@
                        isa = PBXGroup;
                        children = (
                                CE2BD8200BD4127A00A5F4DB /* Sparkle.framework 
*/,
+                               CE30E5022268C3A20013CB7F /* Autoupdate */,
+                               CE017E9D2B2623A800F5FC1E /* Installer.xpc */,
+                               CE017E9F2B2623A800F5FC1E /* 
InstallerConnection.xpc */,
+                               CE017EA12B2623A800F5FC1E /* InstallerStatus.xpc 
*/,
+                               CE017EA32B2623A800F5FC1E /* Downloader.xpc */,
                                CE2BD8220BD4127A00A5F4DB /* Sparkle Test 
App.app */,
+                               CE017EA52B2623A800F5FC1E /* TestAppHelper.xpc 
*/,
                                CEB34A930F5C20E60037E086 /* Sparkle Unit 
Tests.xctest */,
                                CE30E5002268C3A20013CB7F /* BinaryDelta */,
-                               CE30E5022268C3A20013CB7F /* Autoupdate.app */,
+                               CE017EA72B2623A800F5FC1E /* sparkle.app */,
+                               CE017EA92B2623A800F5FC1E /* Updater.app */,
                                CE30E5042268C3A20013CB7F /* UI Tests.xctest */,
-                               CE30E5062268C3A20013CB7F /* fileop */,
                                CE30E5082268C3A20013CB7F /* generate_appcast */,
                                CE30E50A2268C3A20013CB7F /* generate_keys */,
                                CE30E50C2268C3A20013CB7F /* sign_update */,
+                               CE017EAB2B2623A800F5FC1E /* libbsdiff.a */,
+                               CE017EAD2B2623A800F5FC1E /* libed25519.a */,
                        );
                        name = Products;
                        sourceTree = "<group>";
@@ -2309,6 +2378,69 @@
 /* End PBXProject section */
 
 /* Begin PBXReferenceProxy section */
+               CE017E9D2B2623A800F5FC1E /* Installer.xpc */ = {
+                       isa = PBXReferenceProxy;
+                       fileType = "wrapper.xpc-service";
+                       path = Installer.xpc;
+                       remoteRef = CE017E9C2B2623A800F5FC1E /* 
PBXContainerItemProxy */;
+                       sourceTree = BUILT_PRODUCTS_DIR;
+               };
+               CE017E9F2B2623A800F5FC1E /* InstallerConnection.xpc */ = {
+                       isa = PBXReferenceProxy;
+                       fileType = "wrapper.xpc-service";
+                       path = InstallerConnection.xpc;
+                       remoteRef = CE017E9E2B2623A800F5FC1E /* 
PBXContainerItemProxy */;
+                       sourceTree = BUILT_PRODUCTS_DIR;
+               };
+               CE017EA12B2623A800F5FC1E /* InstallerStatus.xpc */ = {
+                       isa = PBXReferenceProxy;
+                       fileType = "wrapper.xpc-service";
+                       path = InstallerStatus.xpc;
+                       remoteRef = CE017EA02B2623A800F5FC1E /* 
PBXContainerItemProxy */;
+                       sourceTree = BUILT_PRODUCTS_DIR;
+               };
+               CE017EA32B2623A800F5FC1E /* Downloader.xpc */ = {
+                       isa = PBXReferenceProxy;
+                       fileType = "wrapper.xpc-service";
+                       path = Downloader.xpc;
+                       remoteRef = CE017EA22B2623A800F5FC1E /* 
PBXContainerItemProxy */;
+                       sourceTree = BUILT_PRODUCTS_DIR;
+               };
+               CE017EA52B2623A800F5FC1E /* TestAppHelper.xpc */ = {
+                       isa = PBXReferenceProxy;
+                       fileType = "wrapper.xpc-service";
+                       path = TestAppHelper.xpc;
+                       remoteRef = CE017EA42B2623A800F5FC1E /* 
PBXContainerItemProxy */;
+                       sourceTree = BUILT_PRODUCTS_DIR;
+               };
+               CE017EA72B2623A800F5FC1E /* sparkle.app */ = {
+                       isa = PBXReferenceProxy;
+                       fileType = wrapper.application;
+                       path = sparkle.app;
+                       remoteRef = CE017EA62B2623A800F5FC1E /* 
PBXContainerItemProxy */;
+                       sourceTree = BUILT_PRODUCTS_DIR;
+               };
+               CE017EA92B2623A800F5FC1E /* Updater.app */ = {
+                       isa = PBXReferenceProxy;
+                       fileType = wrapper.application;
+                       path = Updater.app;
+                       remoteRef = CE017EA82B2623A800F5FC1E /* 
PBXContainerItemProxy */;
+                       sourceTree = BUILT_PRODUCTS_DIR;
+               };
+               CE017EAB2B2623A800F5FC1E /* libbsdiff.a */ = {
+                       isa = PBXReferenceProxy;
+                       fileType = archive.ar;
+                       path = libbsdiff.a;
+                       remoteRef = CE017EAA2B2623A800F5FC1E /* 
PBXContainerItemProxy */;
+                       sourceTree = BUILT_PRODUCTS_DIR;
+               };
+               CE017EAD2B2623A800F5FC1E /* libed25519.a */ = {
+                       isa = PBXReferenceProxy;
+                       fileType = archive.ar;
+                       path = libed25519.a;
+                       remoteRef = CE017EAC2B2623A800F5FC1E /* 
PBXContainerItemProxy */;
+                       sourceTree = BUILT_PRODUCTS_DIR;
+               };
                CE11CFF429D86E5A00C6C217 /* SkimNotes.framework */ = {
                        isa = PBXReferenceProxy;
                        fileType = wrapper.framework;
@@ -2351,10 +2483,10 @@
                        remoteRef = CE30E4FF2268C3A20013CB7F /* 
PBXContainerItemProxy */;
                        sourceTree = BUILT_PRODUCTS_DIR;
                };
-               CE30E5022268C3A20013CB7F /* Autoupdate.app */ = {
+               CE30E5022268C3A20013CB7F /* Autoupdate */ = {
                        isa = PBXReferenceProxy;
-                       fileType = wrapper.application;
-                       path = Autoupdate.app;
+                       fileType = "compiled.mach-o.executable";
+                       path = Autoupdate;
                        remoteRef = CE30E5012268C3A20013CB7F /* 
PBXContainerItemProxy */;
                        sourceTree = BUILT_PRODUCTS_DIR;
                };
@@ -2365,13 +2497,6 @@
                        remoteRef = CE30E5032268C3A20013CB7F /* 
PBXContainerItemProxy */;
                        sourceTree = BUILT_PRODUCTS_DIR;
                };
-               CE30E5062268C3A20013CB7F /* fileop */ = {
-                       isa = PBXReferenceProxy;
-                       fileType = "compiled.mach-o.executable";
-                       path = fileop;
-                       remoteRef = CE30E5052268C3A20013CB7F /* 
PBXContainerItemProxy */;
-                       sourceTree = BUILT_PRODUCTS_DIR;
-               };
                CE30E5082268C3A20013CB7F /* generate_appcast */ = {
                        isa = PBXReferenceProxy;
                        fileType = "compiled.mach-o.executable";
@@ -2734,6 +2859,7 @@
                                CEAF079D0C4139EB00C3ECBB /* SKStatusBar.m in 
Sources */,
                                CE1ADEBF0C4C341100071840 /* 
SKTransitionController.m in Sources */,
                                CECDC4FF0C5966A80026AAEC /* 
NSImage_SKExtensions.m in Sources */,
+                               CE017E812B2623A800F5FC1E /* 
NSPointerFunctions_SKExtensions.m in Sources */,
                                CE2093910C5F9A8D009D3EFB /* SKTopBarView.m in 
Sources */,
                                CEAA55800C6DE030006BD633 /* 
SKDownloadController.m in Sources */,
                                CE3ED121218CAA7900474EF3 /* 
NSScroller_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
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to