Revision: 7800
          http://skim-app.svn.sourceforge.net/skim-app/?rev=7800&view=rev
Author:   hofman
Date:     2012-11-15 19:23:49 +0000 (Thu, 15 Nov 2012)
Log Message:
-----------
use NSURL API to resolve alias file

Modified Paths:
--------------
    trunk/SKNotesDocument.m

Modified: trunk/SKNotesDocument.m
===================================================================
--- trunk/SKNotesDocument.m     2012-11-13 13:45:32 UTC (rev 7799)
+++ trunk/SKNotesDocument.m     2012-11-15 19:23:49 UTC (rev 7800)
@@ -442,13 +442,12 @@
     NSError *error = nil;
     if ([[NSFileManager defaultManager] fileExistsAtURL:url]) {
         // resolve symlinks and aliases
-        FSRef fileRef;
-        Boolean isFolder, isAlias;
-        if (noErr == FSPathMakeRef((const unsigned char *)[[[url 
URLByResolvingSymlinksInPath] path] fileSystemRepresentation], &fileRef, NULL)) 
{
-            CFStringRef theUTI = NULL;
-            if (noErr == LSCopyItemAttribute(&fileRef, kLSRolesAll, 
kLSItemContentType, (CFTypeRef *)&theUTI) && theUTI && UTTypeConformsTo(theUTI, 
kUTTypeResolvable))
-                FSResolveAliasFileWithMountFlags(&fileRef, TRUE, &isFolder, 
&isAlias, kResolveAliasFileNoUI);
-           url = [(NSURL *)CFURLCreateFromFSRef(NULL, &fileRef) autorelease] 
?: url;
+        NSNumber *isAlias = nil;
+        url = [url URLByResolvingSymlinksInPath];
+        while ([url getResourceValue:&isAlias forKey:NSURLIsAliasFileKey 
error:NULL] && [isAlias boolValue]) {
+            NSData *data = [NSURL bookmarkDataWithContentsOfURL:url 
error:NULL];
+            if (data)
+                url = [NSURL URLByResolvingBookmarkData:data 
options:NSURLBookmarkResolutionWithoutUI relativeToURL:nil 
bookmarkDataIsStale:NULL error:NULL] ?: url;
         }
         if (nil == [[NSDocumentController sharedDocumentController] 
openDocumentWithContentsOfURL:url display:YES error:&error] && [error 
isUserCancelledError] == NO)
             [NSApp presentError:error];

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


------------------------------------------------------------------------------
Monitor your physical, virtual and cloud infrastructure from a single
web console. Get in-depth insight into apps, servers, databases, vmware,
SAP, cloud infrastructure, etc. Download 30-day Free Trial.
Pricing starts from $795 for 25 servers or applications!
http://p.sf.net/sfu/zoho_dev2dev_nov
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to