[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [51826] trunk/blender/source/blender/ editors/space_file/fsmenu.c: OSX: a more friendly way to get mounted volumes, alo allows for whitespaces etc .

jens verwiebe info at jensverwiebe.de
Fri Nov 2 21:26:42 CET 2012


Revision: 51826
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=51826
Author:   jensverwiebe
Date:     2012-11-02 20:26:37 +0000 (Fri, 02 Nov 2012)
Log Message:
-----------
OSX: a more friendly way to get mounted volumes, alo allows for whitespaces etc.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_file/fsmenu.c

Modified: trunk/blender/source/blender/editors/space_file/fsmenu.c
===================================================================
--- trunk/blender/source/blender/editors/space_file/fsmenu.c	2012-11-02 20:03:15 UTC (rev 51825)
+++ trunk/blender/source/blender/editors/space_file/fsmenu.c	2012-11-02 20:26:37 UTC (rev 51826)
@@ -425,14 +425,23 @@
 			if (err != noErr)
 				continue;
 			
-			pathString = CFURLCopyFileSystemPath(cfURL, kCFURLPOSIXPathStyle);
+			/* Get mounted volumes better method see: */
+			/*https://developer.apple.com/library/mac/#documentation/CoreFOundation/Reference/CFURLRef/Reference/reference.html*/
 			
-			if (!CFStringGetCString(pathString, line, 256, kCFStringEncodingASCII))
-				continue;
-			fsmenu_insert_entry(fsmenu, FS_CATEGORY_SYSTEM, line, FS_INSERT_SORTED);
+			CFURLEnumeratorResult result = kCFURLEnumeratorSuccess;
+			CFURLEnumeratorRef volEnum = CFURLEnumeratorCreateForMountedVolumes(NULL, kCFURLEnumeratorSkipInvisibles, NULL);
 			
-			CFRelease(pathString);
-			CFRelease(cfURL);
+			while (result != kCFURLEnumeratorEnd) {
+				unsigned char defPath[FILE_MAX];
+				
+				result = CFURLEnumeratorGetNextURL(volEnum, &cfURL, NULL);
+				if (result != kCFURLEnumeratorSuccess)
+					continue;
+				
+				CFURLGetFileSystemRepresentation(cfURL, false, (UInt8*)defPath, FILE_MAX);
+				fsmenu_insert_entry(fsmenu, FS_CATEGORY_SYSTEM, (char *)defPath, FS_INSERT_SORTED);
+			}
+			CFRelease(volEnum);
 		}
 		
 		CFRelease(pathesArray);




More information about the Bf-blender-cvs mailing list