Revision: 29838
          http://sourceforge.net/p/bibdesk/svn/29838
Author:   hofman
Date:     2025-11-17 16:27:43 +0000 (Mon, 17 Nov 2025)
Log Message:
-----------
avoid deprecated (un)archiving mthods

Modified Paths:
--------------
    trunk/bibdesk/BDSKComplexString.m
    trunk/bibdesk/BDSKEdgeView.m
    trunk/bibdesk/BDSKFileContentSearchController.m
    trunk/bibdesk/BDSKFileSearchIndex.m
    trunk/bibdesk/BDSKFontWell.m
    trunk/bibdesk/BDSKLinkedFile.m
    trunk/bibdesk/BDSKPublicationCommand.m
    trunk/bibdesk/BDSKSharingServer.m
    trunk/bibdesk/BDSKStringNode.m
    trunk/bibdesk/BDSKTemplate.m
    trunk/bibdesk/BDSKTemplateDocument.m
    trunk/bibdesk/BDSKTypeInfoEditor.m
    trunk/bibdesk/BibDocument.m
    trunk/bibdesk/BibItem.m
    trunk/bibdesk/BibPref_Export.m

Modified: trunk/bibdesk/BDSKComplexString.m
===================================================================
--- trunk/bibdesk/BDSKComplexString.m   2025-11-17 15:47:30 UTC (rev 29837)
+++ trunk/bibdesk/BDSKComplexString.m   2025-11-17 16:27:43 UTC (rev 29838)
@@ -366,7 +366,7 @@
     if([coder allowsKeyedCoding]){
         self = [self initWithNodes:[coder decodeObjectOfClasses:[NSSet 
setWithObjects:[NSArray class], [BDSKStringNode class], nil] forKey:@"nodes"] 
macroResolver:[coder macroResolverForComplexString] isComplex:[coder 
decodeBoolForKey:@"complex"] isInherited:[coder decodeBoolForKey:@"inherited"]];
     } else {
-        self = [NSKeyedUnarchiver unarchiveObjectWithData:[coder 
decodeDataObject]];
+        self = [NSKeyedUnarchiver unarchivedObjectOfClass:[NSString class] 
fromData:[coder decodeDataObject] error:NULL];
     }
     return self;
 }
@@ -378,7 +378,7 @@
         [coder encodeBool:isComplex forKey:@"complex"];
         [coder encodeBool:isInherited forKey:@"inherited"];
     } else {
-        [coder encodeDataObject:[NSKeyedArchiver 
archivedDataWithRootObject:self]];
+        [coder encodeDataObject:[NSKeyedArchiver 
archivedDataWithRootObject:self requiringSecureCoding:YES error:NULL]];
     }
 }
 

Modified: trunk/bibdesk/BDSKEdgeView.m
===================================================================
--- trunk/bibdesk/BDSKEdgeView.m        2025-11-17 15:47:30 UTC (rev 29837)
+++ trunk/bibdesk/BDSKEdgeView.m        2025-11-17 16:27:43 UTC (rev 29838)
@@ -266,7 +266,10 @@
     if (animate == NO) {
         [(BDSKReflectionView *)backgroundView 
setReflectedScrollView:scrollView];
     } else {
-        BDSKReflectionView *bgView = [NSKeyedUnarchiver 
unarchiveObjectWithData:[NSKeyedArchiver 
archivedDataWithRootObject:backgroundView]];
+        NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] 
initForReadingFromData:[NSKeyedArchiver 
archivedDataWithRootObject:backgroundView requiringSecureCoding:NO error:NULL] 
error:NULL];
+        [unarchiver setRequiresSecureCoding:NO];
+        BDSKReflectionView *bgView = [unarchiver 
decodeObjectForKey:NSKeyedArchiveRootObjectKey];
+        [unarchiver finishDecoding];
         [bgView setReflectedScrollView:scrollView];
         wantsSubviews = YES;
         [[self animator] replaceSubview:backgroundView with:bgView];

Modified: trunk/bibdesk/BDSKFileContentSearchController.m
===================================================================
--- trunk/bibdesk/BDSKFileContentSearchController.m     2025-11-17 15:47:30 UTC 
(rev 29837)
+++ trunk/bibdesk/BDSKFileContentSearchController.m     2025-11-17 16:27:43 UTC 
(rev 29838)
@@ -189,10 +189,7 @@
 - (NSData *)sortDescriptorData
 {
     [self view];
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-    return [NSKeyedArchiver archivedDataWithRootObject:[resultsArrayController 
sortDescriptors]];
-#pragma clang diagnostic pop
+    return [NSKeyedArchiver archivedDataWithRootObject:[resultsArrayController 
sortDescriptors] requiringSecureCoding:YES error:NULL];
 }
 
 - (void)setSortDescriptorData:(NSData *)data

Modified: trunk/bibdesk/BDSKFileSearchIndex.m
===================================================================
--- trunk/bibdesk/BDSKFileSearchIndex.m 2025-11-17 15:47:30 UTC (rev 29837)
+++ trunk/bibdesk/BDSKFileSearchIndex.m 2025-11-17 16:27:43 UTC (rev 29838)
@@ -276,13 +276,12 @@
             indexCacheURL = [[NSFileManager defaultManager] 
uniqueFileURLWithName:indexCacheName atURL:[[self class] indexCacheFolderURL] 
isDirectory:NO];
         }
         
-        NSMutableData *data = [NSMutableData data];
-        NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] 
initForWritingWithMutableData:data];
+        NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] 
initRequiringSecureCoding:YES];
         [archiver encodeObject:documentURL forKey:@"documentURL"];
         [archiver encodeObject:indexData forKey:@"indexData"];
         [archiver encodeObject:signatures forKey:@"signatures"];
         [archiver finishEncoding];
-        [data writeToURL:indexCacheURL atomically:YES];
+        [[archiver encodedData] writeToURL:indexCacheURL atomically:YES];
     }
 }
 

Modified: trunk/bibdesk/BDSKFontWell.m
===================================================================
--- trunk/bibdesk/BDSKFontWell.m        2025-11-17 15:47:30 UTC (rev 29837)
+++ trunk/bibdesk/BDSKFontWell.m        2025-11-17 16:27:43 UTC (rev 29838)
@@ -255,7 +255,7 @@
         }];
         
         NSDictionary *dict = @{BDSKNSFontCollectionFontDescriptors: @[[[self 
font] fontDescriptor]], NSFontSizeAttribute: [NSNumber numberWithDouble:[[self 
font] pointSize]]};
-        NSData *data = [NSKeyedArchiver archivedDataWithRootObject:dict];
+        NSData *data = [NSKeyedArchiver archivedDataWithRootObject:dict 
requiringSecureCoding:NO error:NULL];
         NSPasteboardItem *item = [[NSPasteboardItem alloc] init];
         [item setData:data 
forType:UTIForNSPboardType(BDSKNSFontPanelDescriptorsPboardType)];
         
@@ -304,7 +304,13 @@
     @try {
         if ([type isEqualToString:BDSKNSFontPanelDescriptorsPboardType]) {
             NSData *data = [pboard dataForType:type];
-            NSDictionary *dict = [data isKindOfClass:[NSData class]] ? 
[NSKeyedUnarchiver unarchiveObjectWithData:data] : nil;
+            NSDictionary *dict = nil;
+            if (data) {
+                NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] 
initForReadingFromData:data error:NULL];
+                [unarchiver setRequiresSecureCoding:NO];
+                dict = [unarchiver 
decodeObjectForKey:NSKeyedArchiveRootObjectKey];
+                [unarchiver finishDecoding];
+            }
             if ([dict isKindOfClass:[NSDictionary class]]) {
                 NSArray *fontDescriptors = [dict 
objectForKey:BDSKNSFontCollectionFontDescriptors];
                 NSFontDescriptor *fontDescriptor = ([fontDescriptors 
isKindOfClass:[NSArray class]] && [fontDescriptors count]) ? [fontDescriptors 
objectAtIndex:0] : nil;

Modified: trunk/bibdesk/BDSKLinkedFile.m
===================================================================
--- trunk/bibdesk/BDSKLinkedFile.m      2025-11-17 15:47:30 UTC (rev 29837)
+++ trunk/bibdesk/BDSKLinkedFile.m      2025-11-17 16:27:43 UTC (rev 29838)
@@ -514,7 +514,7 @@
     if (dictionary == nil)
         dictionary = [NSDictionary dictionaryWithObjectsAndKeys:path, 
RELATIVEPATH_KEY, nil];
     if (saveArchivedData)
-        return [[NSKeyedArchiver archivedDataWithRootObject:dictionary] 
base64EncodedStringWithOptions:0];
+        return [[NSKeyedArchiver archivedDataWithRootObject:dictionary 
requiringSecureCoding:YES error:NULL] base64EncodedStringWithOptions:0];
     else
         return [[NSPropertyListSerialization dataWithPropertyList:dictionary 
format:NSPropertyListBinaryFormat_v1_0 options:0 error:NULL] 
base64EncodedStringWithOptions:0];
 }

Modified: trunk/bibdesk/BDSKPublicationCommand.m
===================================================================
--- trunk/bibdesk/BDSKPublicationCommand.m      2025-11-17 15:47:30 UTC (rev 
29837)
+++ trunk/bibdesk/BDSKPublicationCommand.m      2025-11-17 16:27:43 UTC (rev 
29838)
@@ -56,7 +56,10 @@
             containerSpecifier = [containerSpecifier containerSpecifier];
         } else {
             [receiversSpecifier setContainerSpecifier:nil];
-            keySpecifier = [NSKeyedUnarchiver 
unarchiveObjectWithData:[NSKeyedArchiver 
archivedDataWithRootObject:receiversSpecifier]];
+            NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] 
initForReadingFromData:[NSKeyedArchiver 
archivedDataWithRootObject:receiversSpecifier requiringSecureCoding:NO 
error:NULL] error:NULL];
+            [unarchiver setRequiresSecureCoding:NO];
+            keySpecifier = [unarchiver 
decodeObjectForKey:NSKeyedArchiveRootObjectKey];
+            [unarchiver finishDecoding];
             [receiversSpecifier setContainerSpecifier:containerSpecifier];
         }
         [super setReceiversSpecifier:containerSpecifier];

Modified: trunk/bibdesk/BDSKSharingServer.m
===================================================================
--- trunk/bibdesk/BDSKSharingServer.m   2025-11-17 15:47:30 UTC (rev 29837)
+++ trunk/bibdesk/BDSKSharingServer.m   2025-11-17 16:27:43 UTC (rev 29838)
@@ -796,9 +796,9 @@
             for (NSString *key in macroDefs)
                 [allMacros setObject:[macroDefs objectForKey:key] forKey:key];
         }
-        NSData *pubsData = [NSKeyedArchiver 
archivedDataWithRootObject:[allPubs allObjects]];
+        NSData *pubsData = [NSKeyedArchiver 
archivedDataWithRootObject:[allPubs allObjects] requiringSecureCoding:YES 
error:NULL];
         if ([pubsData length]) {
-            NSData *macrosData = [NSKeyedArchiver 
archivedDataWithRootObject:allMacros];
+            NSData *macrosData = [NSKeyedArchiver 
archivedDataWithRootObject:allMacros requiringSecureCoding:YES error:NULL];
             if ([macrosData length] == 0)
                 macrosData = nil;
             pubsAndMacros = [[NSDictionary alloc] 
initWithObjectsAndKeys:pubsData, BDSKSharedArchivedDataKey, macrosData, 
BDSKSharedArchivedDataKey, nil];

Modified: trunk/bibdesk/BDSKStringNode.m
===================================================================
--- trunk/bibdesk/BDSKStringNode.m      2025-11-17 15:47:30 UTC (rev 29837)
+++ trunk/bibdesk/BDSKStringNode.m      2025-11-17 16:27:43 UTC (rev 29838)
@@ -73,7 +73,7 @@
             value = [coder decodeObjectOfClass:[NSString class] 
forKey:@"value"];
         }
     } else {       
-        self = [NSKeyedUnarchiver unarchiveObjectWithData:[coder 
decodeDataObject]];
+        self = [NSKeyedUnarchiver unarchivedObjectOfClass:[NSString class] 
fromData:[coder decodeDataObject] error:NULL];
     }
        return self;
 }
@@ -83,7 +83,7 @@
         [encoder encodeInteger:type forKey:@"type"];
         [encoder encodeObject:value forKey:@"value"];
     } else {
-        [encoder encodeDataObject:[NSKeyedArchiver 
archivedDataWithRootObject:self]];
+        [encoder encodeDataObject:[NSKeyedArchiver 
archivedDataWithRootObject:self requiringSecureCoding:YES error:NULL]];
     }
 }
 

Modified: trunk/bibdesk/BDSKTemplate.m
===================================================================
--- trunk/bibdesk/BDSKTemplate.m        2025-11-17 15:47:30 UTC (rev 29837)
+++ trunk/bibdesk/BDSKTemplate.m        2025-11-17 16:27:43 UTC (rev 29838)
@@ -285,7 +285,7 @@
         exportTemplateTree = nil;
         [[NSNotificationCenter defaultCenter] 
postNotificationName:BDSKExportTemplatesChangedNotification object:self];
     } else {
-        NSData *data = [NSKeyedArchiver archivedDataWithRootObject:tree];
+        NSData *data = [NSKeyedArchiver archivedDataWithRootObject:tree 
requiringSecureCoding:YES error:NULL];
         if (nil == data) {
             NSLog(@"Unable to archive %@", tree);
         } else {
@@ -313,7 +313,7 @@
     if (tree == nil) {
         serviceTemplateTree = nil;
     } else {
-        NSData *data = [NSKeyedArchiver archivedDataWithRootObject:tree];
+        NSData *data = [NSKeyedArchiver archivedDataWithRootObject:tree 
requiringSecureCoding:YES error:NULL];
         if (nil == data) {
             NSLog(@"Unable to archive %@", tree);
         } else {

Modified: trunk/bibdesk/BDSKTemplateDocument.m
===================================================================
--- trunk/bibdesk/BDSKTemplateDocument.m        2025-11-17 15:47:30 UTC (rev 
29837)
+++ trunk/bibdesk/BDSKTemplateDocument.m        2025-11-17 16:27:43 UTC (rev 
29838)
@@ -981,7 +981,7 @@
     for (id object in objects)
         [str appendString:[self tokenField:tokenField 
displayStringForRepresentedObject:object]];
     
-    NSData *data = [NSKeyedArchiver archivedDataWithRootObject:objects];
+    NSData *data = [NSKeyedArchiver archivedDataWithRootObject:objects 
requiringSecureCoding:NO error:NULL];
     
     NSPasteboardItem *item = [[NSPasteboardItem alloc] init];
     [item setData:data forType:BDSKPasteboardTypeTemplateTokens];
@@ -996,7 +996,11 @@
     if (tokenField == itemTemplateTokenField) {
         if ([pboard 
availableTypeFromArray:@[BDSKPasteboardTypeTemplateTokens]]) {
             NSData *data = [pboard 
dataForType:BDSKPasteboardTypeTemplateTokens];
-            return [NSKeyedUnarchiver unarchiveObjectWithData:data];
+            NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] 
initForReadingFromData:data error:NULL];
+            [unarchiver setRequiresSecureCoding:NO];
+            NSArray *tokens = [unarchiver 
decodeObjectForKey:NSKeyedArchiveRootObjectKey];
+            [unarchiver finishDecoding];
+            return tokens;
         } else {
             NSArray *strings = [pboard readObjectsForClasses:@[[NSString 
class]] options:@{}];
             if ([strings count] > 0)

Modified: trunk/bibdesk/BDSKTypeInfoEditor.m
===================================================================
--- trunk/bibdesk/BDSKTypeInfoEditor.m  2025-11-17 15:47:30 UTC (rev 29837)
+++ trunk/bibdesk/BDSKTypeInfoEditor.m  2025-11-17 16:27:43 UTC (rev 29838)
@@ -590,7 +590,7 @@
        // we only drag our own rows
        [pboard clearContents];
        // write the rows to the pasteboard
-       [pboard setData:[NSKeyedArchiver archivedDataWithRootObject:rowIndexes] 
forType:BDSKPasteboardTypeInfoRows];
+       [pboard setData:[NSKeyedArchiver archivedDataWithRootObject:rowIndexes 
requiringSecureCoding:YES error:NULL] forType:BDSKPasteboardTypeInfoRows];
     if ([tv isEqual:typeTableView] && [rowIndexes count]) {
         NSMutableArray *newTypes = [NSMutableArray array];
         [rowIndexes enumerateIndexesUsingBlock:^(NSUInteger row, BOOL *stop){
@@ -635,7 +635,7 @@
         return NO;
     }
     
-       NSIndexSet *rowIndexes = [NSKeyedUnarchiver 
unarchiveObjectWithData:[pboard dataForType:BDSKPasteboardTypeInfoRows]];
+       NSIndexSet *rowIndexes = [NSKeyedUnarchiver 
unarchivedObjectOfClass:[NSIndexSet class] fromData:[pboard 
dataForType:BDSKPasteboardTypeInfoRows] error:NULL];
     NSIndexSet *insertIndexes;
     NSTableView *sourceTv = [info draggingSource];
        

Modified: trunk/bibdesk/BibDocument.m
===================================================================
--- trunk/bibdesk/BibDocument.m 2025-11-17 15:47:30 UTC (rev 29837)
+++ trunk/bibdesk/BibDocument.m 2025-11-17 16:27:43 UTC (rev 29838)
@@ -737,7 +737,7 @@
             [dictionary setObject:[NSNumber 
numberWithUnsignedInteger:encoding] forKey:BDSKDocumentStringEncodingKey];
         
         // encode groups so we can select them later with isEqual: (saving row 
indexes would not be as reliable)
-        [dictionary setObject:([self 
hasGroupTypeSelected:BDSKExternalGroupType | BDSKLibraryGroupType] ? [NSData 
data] : [NSKeyedArchiver archivedDataWithRootObject:[self selectedGroups]]) 
forKey:BDSKSelectedGroupsKey];
+        [dictionary setObject:([self 
hasGroupTypeSelected:BDSKExternalGroupType | BDSKLibraryGroupType] ? [NSData 
data] : [NSKeyedArchiver archivedDataWithRootObject:[self selectedGroups] 
requiringSecureCoding:YES error:NULL]) forKey:BDSKSelectedGroupsKey];
         
         NSArray *selectedKeys = [[self selectedPublications] 
valueForKey:@"citeKey"];
         if ([selectedKeys count] == 0 || [self 
hasGroupTypeSelected:BDSKExternalGroupType])

Modified: trunk/bibdesk/BibItem.m
===================================================================
--- trunk/bibdesk/BibItem.m     2025-11-17 15:47:30 UTC (rev 29837)
+++ trunk/bibdesk/BibItem.m     2025-11-17 16:27:43 UTC (rev 29838)
@@ -477,13 +477,12 @@
 #pragma mark Archiving
 
 + (NSData *)archivedPublications:(NSArray *)array {
-    NSMutableData *data = [NSMutableData data];
-    NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] 
initForWritingWithMutableData:data];
+    NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] 
initRequiringSecureCoding:YES];
     
     [archiver encodeObject:array forKey:@"publications"];
     [archiver finishEncoding];
     
-    return data;
+    return [archiver encodedData];
 }
 
 + (NSArray *)publicationsFromPasteboard:(NSPasteboard *)pboard 
macroResolver:(BDSKMacroResolver *)aMacroResolver {

Modified: trunk/bibdesk/BibPref_Export.m
===================================================================
--- trunk/bibdesk/BibPref_Export.m      2025-11-17 15:47:30 UTC (rev 29837)
+++ trunk/bibdesk/BibPref_Export.m      2025-11-17 16:27:43 UTC (rev 29838)
@@ -218,7 +218,7 @@
 // return archived item
 - (id)outlineView:(NSOutlineView *)ov persistentObjectForItem:(id)item
 {
-    return [NSKeyedArchiver archivedDataWithRootObject:item];
+    return [NSKeyedArchiver archivedDataWithRootObject:item 
requiringSecureCoding:YES error:NULL];
 }
 
 // @@ Dark Mode

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



_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit

Reply via email to