@@ -337,7 +337,6 @@ - (BOOL)writeToURL:(NSURL *)url error:(NSError *__autoreleasing *)outError {
337337
338338#if TARGET_OS_OSX
339339- (BOOL )writeToURL : (NSURL *)url forSaveOperation : (NSSaveOperationType )saveOperation originalContentsURL : (nullable NSURL *)absoluteOriginalContentsURL backupDocumentURL : (nullable NSURL *)backupFileURL error : (NSError *__autoreleasing *)outError {
340- [url startAccessingSecurityScopedResource ];
341340 switch (saveOperation) {
342341 case NSAutosaveInPlaceOperation:
343342 // Auto overwrite
@@ -350,18 +349,15 @@ - (BOOL)writeToURL:(NSURL *)url forSaveOperation:(NSSaveOperationType)saveOperat
350349 }
351350 if (absoluteOriginalContentsURL) {
352351 if (![self writeUpdatesToURL: absoluteOriginalContentsURL error: outError]) {
353- [url stopAccessingSecurityScopedResource ];
354352 return NO ;
355353 }
356354 if (![url isEqual: absoluteOriginalContentsURL]) {
357355 if (![[NSFileManager defaultManager ] copyItemAtURL: absoluteOriginalContentsURL toURL: url error: outError]) {
358- [url stopAccessingSecurityScopedResource ];
359356 return NO ;
360357 }
361358 }
362359 } else {
363360 if (![self writeToURL: url error: outError]) {
364- [url stopAccessingSecurityScopedResource ];
365361 return NO ;
366362 }
367363 }
@@ -371,46 +367,37 @@ - (BOOL)writeToURL:(NSURL *)url forSaveOperation:(NSSaveOperationType)saveOperat
371367 case NSSaveAsOperation:
372368 // New with switch
373369 if (![self writeToURL: url error: outError]) {
374- [url stopAccessingSecurityScopedResource ];
375370 return NO ;
376371 }
377372 // Switches self to new NSURL
378- if (self) {
379- filename = [url lastPathComponent ];
380- writtenURL = url;
381- isDirectory = YES ;
382- _reserve = 0 ;
383- fileWrappers = [[NSMutableDictionary alloc ] init ];
384- for (NSURL *childUrl in [[NSFileManager defaultManager ] contentsOfDirectoryAtURL: url
385- includingPropertiesForKeys: nil
386- options: 0
387- error: nil ]) {
388- LSFileWrapper *fileWrapper = [[LSFileWrapper alloc ] initWithURL: childUrl isDirectory: NO ];
389- [fileWrapper setParent: self ];
390- [fileWrappers setObject: fileWrapper forKey: [childUrl lastPathComponent ]];
391- }
373+ filename = [url lastPathComponent ];
374+ writtenURL = url;
375+ isDirectory = YES ;
376+ _reserve = 0 ;
377+ fileWrappers = [[NSMutableDictionary alloc ] init ];
378+ for (NSURL *childUrl in [[NSFileManager defaultManager ] contentsOfDirectoryAtURL: url
379+ includingPropertiesForKeys: nil
380+ options: 0
381+ error: nil ]) {
382+ LSFileWrapper *fileWrapper = [[LSFileWrapper alloc ] initWithURL: childUrl isDirectory: NO ];
383+ [fileWrapper setParent: self ];
384+ [fileWrappers setObject: fileWrapper forKey: [childUrl lastPathComponent ]];
392385 }
393- [url setResourceValues: @{NSURLIsHiddenKey : @YES } error: nil ];
386+ [url setResourceValues: @{NSURLHasHiddenExtensionKey : @YES } error: nil ];
394387 break ;
395388 case NSAutosaveElsewhereOperation:
396389 // Auto totally new
397390 case NSSaveToOperation:
398391 // Totally new
399392 if (![self writeToURL: url error: outError]) {
400- [url stopAccessingSecurityScopedResource ];
401393 return NO ;
402394 }
403- [url setResourceValues: @{NSURLIsHiddenKey : @YES } error: nil ];
395+ [url setResourceValues: @{NSURLHasHiddenExtensionKey : @YES } error: nil ];
404396 break ;
405397 default :
406398 break ;
407399 }
408- BOOL success = [url setResourceValues: @{NSURLContentModificationDateKey : [NSDate date ]} error: outError];
409- [url stopAccessingSecurityScopedResource ];
410- if (!success) {
411- return NO ;
412- }
413- return YES ;
400+ return [url setResourceValues: @{NSURLContentModificationDateKey : [NSDate date ]} error: outError];
414401}
415402#endif
416403
0 commit comments