Revision: 3933
          http://skim-app.svn.sourceforge.net/skim-app/?rev=3933&view=rev
Author:   hofman
Date:     2008-05-29 09:02:35 -0700 (Thu, 29 May 2008)

Log Message:
-----------
Use Downloads folder for downloads on Leopard. IC doesn't get the right folder.

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

Modified: trunk/Files_SKExtensions.m
===================================================================
--- trunk/Files_SKExtensions.m  2008-05-29 15:09:26 UTC (rev 3932)
+++ trunk/Files_SKExtensions.m  2008-05-29 16:02:35 UTC (rev 3933)
@@ -40,34 +40,40 @@
 #import <Carbon/Carbon.h>
 
 NSURL *SKDownloadFolderURL() {
-    OSStatus err;
-       ICInstance inst;
-       ICAttr junk = 0;
-       ICFileSpec spec;
     
-       static CFURLRef pathURL = NULL;
+       static NSURL *downloadsURL = nil;
     
-    if (NULL == pathURL) {
-        long size = sizeof(ICFileSpec);
-        FSRef pathRef;
-        
-        err = ICStart(&inst, 'SKim');
-        if (noErr == err)
-            err = ICBegin(inst, icReadOnlyPerm);
-        
-        if (err == noErr) {
-            err = ICGetPref(inst, kICDownloadFolder, &junk, &spec, &size);
-            if (noErr == err) {
-                ICEnd(inst);
-                ICStop(inst);
+    if (nil == downloadsURL) {
+        if (floor(NSAppKitVersionNumber) > NSAppKitVersionNumber10_4) {
+            NSArray *paths = 
NSSearchPathForDirectoriesInDomains(NSDownloadsDirectory, NSUserDomainMask, 
YES);
+            NSString *path = [paths count] ? [paths objectAtIndex:0] : 
[NSHomeDirectory() stringByAppendingPathComponent:@"Downloads"];
+            downloadsURL = [[NSURL alloc] initFileURLWithPath:path];
+        } else {
+            OSStatus err;
+            ICInstance inst;
+            ICAttr junk = 0;
+            ICFileSpec spec;
+            long size = sizeof(ICFileSpec);
+            FSRef pathRef;
+            
+            err = ICStart(&inst, 'SKim');
+            if (noErr == err)
+                err = ICBegin(inst, icReadOnlyPerm);
+            
+            if (err == noErr) {
+                err = ICGetPref(inst, kICDownloadFolder, &junk, &spec, &size);
+                if (noErr == err) {
+                    ICEnd(inst);
+                    ICStop(inst);
+                }
+                
+                err = FSpMakeFSRef(&(spec.fss), &pathRef);
+                if(err == noErr)
+                    downloadsURL = (NSURL 
*)CFURLCreateFromFSRef(CFAllocatorGetDefault(), &pathRef);
             }
-            
-            err = FSpMakeFSRef(&(spec.fss), &pathRef);
-            if(err == noErr)
-                pathURL = CFURLCreateFromFSRef(CFAllocatorGetDefault(), 
&pathRef);
         }
     }
-    return (NSURL *)pathURL;
+    return downloadsURL;
 }
 
 BOOL SKFileIsInTrash(NSURL *fileURL) {


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

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to