File/installation paths: osx (cocoa & carbon) update in ghost
This commit is contained in:
		@@ -45,8 +45,7 @@ extern const GHOST_TUns8* GHOST_getSystemDir();
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Determine the base dir in which user configuration is stored, not including versioning.
 | 
					 * Determine the base dir in which user configuration is stored, not including versioning.
 | 
				
			||||||
 * If needed, it will create the base directory.
 | 
					 * @return Unsigned char string pointing to user dir (eg ~).
 | 
				
			||||||
 * @return Unsigned char string pointing to user dir (eg ~/.blender/).
 | 
					 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
extern const GHOST_TUns8* GHOST_getUserDir();
 | 
					extern const GHOST_TUns8* GHOST_getUserDir();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1238,5 +1238,15 @@ const GHOST_TUns8* GHOST_SystemCarbon::getUserDir() const
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
const GHOST_TUns8* GHOST_SystemCarbon::getBinaryDir() const
 | 
					const GHOST_TUns8* GHOST_SystemCarbon::getBinaryDir() const
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	return NULL;
 | 
						CFURLRef bundleURL;
 | 
				
			||||||
 | 
						CFStringRef pathStr;
 | 
				
			||||||
 | 
						static char path[256];
 | 
				
			||||||
 | 
						CFBundleRef mainBundle = CFBundleGetMainBundle();
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						bundleURL = CFBundleCopyBundleURL(mainBundle);
 | 
				
			||||||
 | 
						pathStr = CFURLCopyFileSystemPath(bundleURL, kCFURLPOSIXPathStyle);
 | 
				
			||||||
 | 
						CFStringGetCString(pathStr, path, 255, kCFStringEncodingASCII);
 | 
				
			||||||
 | 
						CFRelease(pathStr);
 | 
				
			||||||
 | 
						CFRelease(bundleURL);
 | 
				
			||||||
 | 
						return (GHOST_TUns8*)path;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1783,27 +1783,20 @@ void GHOST_SystemCocoa::putClipboard(GHOST_TInt8 *buffer, bool selection) const
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#pragma mark Base directories retrieval
 | 
					#pragma mark Base directories retrieval
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// TODO: this should only return base path, remove the appending of Blender or .blender
 | 
					 | 
				
			||||||
const GHOST_TUns8* GHOST_SystemCocoa::getSystemDir() const
 | 
					const GHOST_TUns8* GHOST_SystemCocoa::getSystemDir() const
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	static GHOST_TUns8 tempPath[512] = "";
 | 
						static GHOST_TUns8 tempPath[512] = "";
 | 
				
			||||||
	NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
 | 
						NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
 | 
				
			||||||
	NSFileManager *fileManager;
 | 
					 | 
				
			||||||
	NSString *basePath;
 | 
						NSString *basePath;
 | 
				
			||||||
	NSArray *paths;
 | 
						NSArray *paths;
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSLocalDomainMask, YES);
 | 
						paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSLocalDomainMask, YES);
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	if ([paths count] > 0)
 | 
						if ([paths count] > 0)
 | 
				
			||||||
		basePath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"Blender"];
 | 
							basePath = [paths objectAtIndex:0];
 | 
				
			||||||
	else { //Fall back to standard unix path in case of issue
 | 
						else { 
 | 
				
			||||||
		basePath = @"/usr/share/blender";
 | 
							[pool drain];
 | 
				
			||||||
	}
 | 
							return NULL;
 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	/* Ensure path exists, creates it if needed */
 | 
					 | 
				
			||||||
	fileManager = [NSFileManager defaultManager];
 | 
					 | 
				
			||||||
	if (![fileManager fileExistsAtPath:basePath isDirectory:NULL]) {
 | 
					 | 
				
			||||||
		[fileManager createDirectoryAtPath:basePath attributes:nil];
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	strcpy((char*)tempPath, [basePath cStringUsingEncoding:NSASCIIStringEncoding]);
 | 
						strcpy((char*)tempPath, [basePath cStringUsingEncoding:NSASCIIStringEncoding]);
 | 
				
			||||||
@@ -1812,56 +1805,39 @@ const GHOST_TUns8* GHOST_SystemCocoa::getSystemDir() const
 | 
				
			|||||||
	return tempPath;
 | 
						return tempPath;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// TODO: this should only return base path, remove the appending of Blenbder or .blender
 | 
					 | 
				
			||||||
const GHOST_TUns8* GHOST_SystemCocoa::getUserDir() const
 | 
					const GHOST_TUns8* GHOST_SystemCocoa::getUserDir() const
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	static GHOST_TUns8 tempPath[512] = "";
 | 
						static GHOST_TUns8 tempPath[512] = "";
 | 
				
			||||||
	NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
 | 
						NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
 | 
				
			||||||
	NSFileManager *fileManager;
 | 
					 | 
				
			||||||
	NSString *basePath;
 | 
						NSString *basePath;
 | 
				
			||||||
	NSArray *paths;
 | 
						NSArray *paths;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
 | 
						paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ([paths count] > 0)
 | 
						if ([paths count] > 0)
 | 
				
			||||||
		basePath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"Blender"];
 | 
							basePath = [paths objectAtIndex:0];
 | 
				
			||||||
	else { //Fall back to HOME in case of issue
 | 
						else { 
 | 
				
			||||||
		basePath = [NSHomeDirectory() stringByAppendingPathComponent:@".blender"];
 | 
							[pool drain];
 | 
				
			||||||
 | 
							return NULL;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
					
 | 
				
			||||||
	/* Ensure path exists, creates it if needed */
 | 
					 | 
				
			||||||
	fileManager = [NSFileManager defaultManager];
 | 
					 | 
				
			||||||
	if (![fileManager fileExistsAtPath:basePath isDirectory:NULL]) {
 | 
					 | 
				
			||||||
		[fileManager createDirectoryAtPath:basePath attributes:nil];
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	strcpy((char*)tempPath, [basePath cStringUsingEncoding:NSASCIIStringEncoding]);
 | 
						strcpy((char*)tempPath, [basePath cStringUsingEncoding:NSASCIIStringEncoding]);
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	[pool drain];
 | 
						[pool drain];
 | 
				
			||||||
	return tempPath;
 | 
						return tempPath;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// TODO: this is same as getUserDir for now
 | 
					 | 
				
			||||||
const GHOST_TUns8* GHOST_SystemCocoa::getBinaryDir() const
 | 
					const GHOST_TUns8* GHOST_SystemCocoa::getBinaryDir() const
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	static GHOST_TUns8 tempPath[512] = "";
 | 
						static GHOST_TUns8 tempPath[512] = "";
 | 
				
			||||||
	NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
 | 
						NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
 | 
				
			||||||
	NSFileManager *fileManager;
 | 
					 | 
				
			||||||
	NSString *basePath;
 | 
						NSString *basePath;
 | 
				
			||||||
	NSArray *paths;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if ([paths count] > 0)
 | 
					 | 
				
			||||||
		basePath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"Blender"];
 | 
					 | 
				
			||||||
	else { //Fall back to HOME in case of issue
 | 
					 | 
				
			||||||
		basePath = [NSHomeDirectory() stringByAppendingPathComponent:@".blender"];
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	/* Ensure path exists, creates it if needed */
 | 
						basePath = [[NSBundle mainBundle] bundlePath];
 | 
				
			||||||
	fileManager = [NSFileManager defaultManager];
 | 
						
 | 
				
			||||||
	if (![fileManager fileExistsAtPath:basePath isDirectory:NULL]) {
 | 
						if (basePath == nil) {
 | 
				
			||||||
		[fileManager createDirectoryAtPath:basePath attributes:nil];
 | 
							[pool drain];
 | 
				
			||||||
 | 
							return NULL;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	strcpy((char*)tempPath, [basePath cStringUsingEncoding:NSASCIIStringEncoding]);
 | 
						strcpy((char*)tempPath, [basePath cStringUsingEncoding:NSASCIIStringEncoding]);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user