[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27172] trunk/blender: System dependent standard directory retrieval functions update : return const strings (as coded in libc) instead of malloc'ed buffers

Damien Plisson damien.plisson at yahoo.fr
Sat Feb 27 18:04:41 CET 2010


Revision: 27172
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27172
Author:   damien78
Date:     2010-02-27 18:03:46 +0100 (Sat, 27 Feb 2010)

Log Message:
-----------
System dependent standard directory retrieval functions update : return const strings (as coded in libc) instead of malloc'ed buffers

and plug them into wip BLI_bfile.c to replace the hardcoded paths

Modified Paths:
--------------
    trunk/blender/intern/ghost/GHOST_C-api.h
    trunk/blender/intern/ghost/GHOST_ISystem.h
    trunk/blender/intern/ghost/intern/GHOST_C-api.cpp
    trunk/blender/intern/ghost/intern/GHOST_System.h
    trunk/blender/intern/ghost/intern/GHOST_SystemCarbon.cpp
    trunk/blender/intern/ghost/intern/GHOST_SystemCarbon.h
    trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.h
    trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.mm
    trunk/blender/intern/ghost/intern/GHOST_SystemWin32.cpp
    trunk/blender/intern/ghost/intern/GHOST_SystemWin32.h
    trunk/blender/intern/ghost/intern/GHOST_SystemX11.cpp
    trunk/blender/intern/ghost/intern/GHOST_SystemX11.h
    trunk/blender/intern/ghost/intern/GHOST_WindowCarbon.cpp
    trunk/blender/source/blender/blenlib/CMakeLists.txt
    trunk/blender/source/blender/blenlib/SConscript
    trunk/blender/source/blender/blenlib/intern/BLI_bfile.c
    trunk/blender/source/blender/blenlib/intern/Makefile

Modified: trunk/blender/intern/ghost/GHOST_C-api.h
===================================================================
--- trunk/blender/intern/ghost/GHOST_C-api.h	2010-02-27 16:06:33 UTC (rev 27171)
+++ trunk/blender/intern/ghost/GHOST_C-api.h	2010-02-27 17:03:46 UTC (rev 27172)
@@ -824,14 +824,14 @@
  * "unpack and run" path, then look for properly installed path, not including versioning.
  * @return Unsigned char string pointing to system dir (eg /usr/share/blender/).
  */
-extern GHOST_TUns8* GHOST_getSystemDir();
+extern const GHOST_TUns8* GHOST_getSystemDir();
 
 /**
  * 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 ~/.blender/).
  */
-extern GHOST_TUns8* GHOST_getUserDir();
+extern const GHOST_TUns8* GHOST_getUserDir();
 
 
 #ifdef __cplusplus

Modified: trunk/blender/intern/ghost/GHOST_ISystem.h
===================================================================
--- trunk/blender/intern/ghost/GHOST_ISystem.h	2010-02-27 16:06:33 UTC (rev 27171)
+++ trunk/blender/intern/ghost/GHOST_ISystem.h	2010-02-27 17:03:46 UTC (rev 27172)
@@ -380,14 +380,14 @@
 	 * "unpack and run" path, then look for properly installed path, not including versioning.
 	 * @return Unsigned char string pointing to system dir (eg /usr/share/blender/).
 	 */
-	virtual GHOST_TUns8* getSystemDir() const = 0;
+	virtual const GHOST_TUns8* getSystemDir() const = 0;
 
 	/**
 	 * 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 ~/.blender/).
 	 */
-	virtual GHOST_TUns8* getUserDir() const = 0;
+	virtual const GHOST_TUns8* getUserDir() const = 0;
 
 protected:
 	/**

Modified: trunk/blender/intern/ghost/intern/GHOST_C-api.cpp
===================================================================
--- trunk/blender/intern/ghost/intern/GHOST_C-api.cpp	2010-02-27 16:06:33 UTC (rev 27171)
+++ trunk/blender/intern/ghost/intern/GHOST_C-api.cpp	2010-02-27 17:03:46 UTC (rev 27172)
@@ -855,13 +855,13 @@
 	system->putClipboard(buffer, selection);
 }
 
-GHOST_TUns8* GHOST_getSystemDir()
+const GHOST_TUns8* GHOST_getSystemDir()
 {
 	GHOST_ISystem* system = GHOST_ISystem::getSystem();
 	return system->getSystemDir();
 }
 
-GHOST_TUns8* GHOST_getUserDir()
+const GHOST_TUns8* GHOST_getUserDir()
 {
 	GHOST_ISystem* system = GHOST_ISystem::getSystem();
 	return system->getUserDir();

Modified: trunk/blender/intern/ghost/intern/GHOST_System.h
===================================================================
--- trunk/blender/intern/ghost/intern/GHOST_System.h	2010-02-27 16:06:33 UTC (rev 27171)
+++ trunk/blender/intern/ghost/intern/GHOST_System.h	2010-02-27 17:03:46 UTC (rev 27172)
@@ -302,14 +302,14 @@
 	 * "unpack and run" path, then look for properly installed path, not including versioning.
 	 * @return Unsigned char string pointing to system dir (eg /usr/share/blender/).
 	 */
-	virtual GHOST_TUns8* getSystemDir() const = 0;
+	virtual const GHOST_TUns8* getSystemDir() const = 0;
 
 	/**
 	 * 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 ~/.blender/).
 	 */
-	virtual GHOST_TUns8* getUserDir() const = 0;
+	virtual const GHOST_TUns8* getUserDir() const = 0;
 
 protected:
 	/**

Modified: trunk/blender/intern/ghost/intern/GHOST_SystemCarbon.cpp
===================================================================
--- trunk/blender/intern/ghost/intern/GHOST_SystemCarbon.cpp	2010-02-27 16:06:33 UTC (rev 27171)
+++ trunk/blender/intern/ghost/intern/GHOST_SystemCarbon.cpp	2010-02-27 17:03:46 UTC (rev 27172)
@@ -809,7 +809,7 @@
 		}
 	err = noErr;
 	}
-
+	return err;
 }
 
 OSStatus GHOST_SystemCarbon::handleMouseEvent(EventRef event)
@@ -1215,22 +1215,19 @@
 	}
 }
 
-GHOST_TUns8* GHOST_SystemCarbon::getSystemDir() const
+const GHOST_TUns8* GHOST_SystemCarbon::getSystemDir() const
 {
-	static GHOST_TUns8 sysPath[64];
-	
-	strcpy((char*)sysPath,"/Library/Application Support/Blender");
-	
-	return sysPath;
+	return (GHOST_TUns8*)"/Library/Application Support/Blender";
 }
 
-GHOST_TUns8* GHOST_SystemCarbon::getUserDir() const
+const GHOST_TUns8* GHOST_SystemCarbon::getUserDir() const
 {
-	static char usrPath[512] = "";
+	static char usrPath[256] = "";
 	char* env = getenv("HOME");
 	
 	if (env) {
-		strcpy(usrPath, env);
+		strncpy(usrPath, env, 245);
+		usrPath[245]=0;
 		strcat(usrPath, "/Library/Application Support/Blender");
 		return (GHOST_TUns8*) usrPath;
 	}

Modified: trunk/blender/intern/ghost/intern/GHOST_SystemCarbon.h
===================================================================
--- trunk/blender/intern/ghost/intern/GHOST_SystemCarbon.h	2010-02-27 16:06:33 UTC (rev 27171)
+++ trunk/blender/intern/ghost/intern/GHOST_SystemCarbon.h	2010-02-27 17:03:46 UTC (rev 27172)
@@ -195,14 +195,14 @@
 	 * "unpack and run" path, then look for properly installed path, not including versioning.
 	 * @return Unsigned char string pointing to system dir (eg /usr/share/blender/).
 	 */
-	virtual GHOST_TUns8* getSystemDir() const;
+	virtual const GHOST_TUns8* getSystemDir() const;
 
 	/**
 	 * 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 ~/.blender/).
 	 */
-	virtual GHOST_TUns8* getUserDir() const;
+	virtual const GHOST_TUns8* getUserDir() const;
 
 protected:
 	/**

Modified: trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.h
===================================================================
--- trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.h	2010-02-27 16:06:33 UTC (rev 27171)
+++ trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.h	2010-02-27 17:03:46 UTC (rev 27172)
@@ -218,14 +218,14 @@
 	 * "unpack and run" path, then look for properly installed path, not including versioning.
 	 * @return Unsigned char string pointing to system dir (eg /usr/share/blender/).
 	 */
-	virtual GHOST_TUns8* getSystemDir() const;
+	virtual const GHOST_TUns8* getSystemDir() const;
 
 	/**
 	 * 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 ~/.blender/).
 	 */
-	virtual GHOST_TUns8* getUserDir() const;
+	virtual const GHOST_TUns8* getUserDir() const;
 
 	/**
      * Handles a window event. Called by GHOST_WindowCocoa window delegate

Modified: trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.mm
===================================================================
--- trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.mm	2010-02-27 16:06:33 UTC (rev 27171)
+++ trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.mm	2010-02-27 17:03:46 UTC (rev 27172)
@@ -1714,7 +1714,7 @@
 
 #pragma mark Base directories retrieval
 
-GHOST_TUns8* GHOST_SystemCocoa::getSystemDir() const
+const GHOST_TUns8* GHOST_SystemCocoa::getSystemDir() const
 {
 	static GHOST_TUns8 tempPath[512] = "";
 	NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
@@ -1742,7 +1742,7 @@
 	return tempPath;
 }
 
-GHOST_TUns8* GHOST_SystemCocoa::getUserDir() const
+const GHOST_TUns8* GHOST_SystemCocoa::getUserDir() const
 {
 	static GHOST_TUns8 tempPath[512] = "";
 	NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

Modified: trunk/blender/intern/ghost/intern/GHOST_SystemWin32.cpp
===================================================================
--- trunk/blender/intern/ghost/intern/GHOST_SystemWin32.cpp	2010-02-27 16:06:33 UTC (rev 27171)
+++ trunk/blender/intern/ghost/intern/GHOST_SystemWin32.cpp	2010-02-27 17:03:46 UTC (rev 27172)
@@ -1095,12 +1095,12 @@
 	}
 }
 
-GHOST_TUns8* GHOST_SystemWin32::getSystemDir() const
+const GHOST_TUns8* GHOST_SystemWin32::getSystemDir() const
 {
 	return NULL;
 }
 
-GHOST_TUns8* GHOST_SystemWin32::getUserDir() const
+const GHOST_TUns8* GHOST_SystemWin32::getUserDir() const
 {
 	return NULL;
 }

Modified: trunk/blender/intern/ghost/intern/GHOST_SystemWin32.h
===================================================================
--- trunk/blender/intern/ghost/intern/GHOST_SystemWin32.h	2010-02-27 16:06:33 UTC (rev 27171)
+++ trunk/blender/intern/ghost/intern/GHOST_SystemWin32.h	2010-02-27 17:03:46 UTC (rev 27172)
@@ -193,14 +193,14 @@
 	 * "unpack and run" path, then look for properly installed path, not including versioning.
 	 * @return Unsigned char string pointing to system dir (eg /usr/share/blender/).
 	 */
-	GHOST_TUns8* getSystemDir() const;
+	virtual const GHOST_TUns8* getSystemDir() const;
 
 	/**
 	 * 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 ~/.blender/).
 	 */
-	 GHOST_TUns8* getUserDir() const;
+	 virtual const GHOST_TUns8* getUserDir() const;
 
 	/**
 	 * Creates a drag'n'drop event and pushes it immediately onto the event queue. 

Modified: trunk/blender/intern/ghost/intern/GHOST_SystemX11.cpp
===================================================================
--- trunk/blender/intern/ghost/intern/GHOST_SystemX11.cpp	2010-02-27 16:06:33 UTC (rev 27171)
+++ trunk/blender/intern/ghost/intern/GHOST_SystemX11.cpp	2010-02-27 17:03:46 UTC (rev 27172)
@@ -1458,19 +1458,19 @@
 	}
 }
 
-GHOST_TUns8* GHOST_SystemX11::getSystemDir() const
+const GHOST_TUns8* GHOST_SystemX11::getSystemDir() const
 {
-
+	return (GHOST_TUns8*)"/usr/share/blender";
 }
 
-GHOST_TUns8* GHOST_SystemX11::getUserDir() const
+const GHOST_TUns8* GHOST_SystemX11::getUserDir() const
 {
-	char* path;
+	static char path[256];
 	char* env = getenv("HOME");
 	if(env) {
-		path = (char*) malloc(strlen(env) + 10); // "/.blender/"
-		strcat(path, env);
-		strcat(path, "/,blender/");
+		strncpy(path, env, 245);
+		path[245]=0;
+		strcat(path, "/.blender/");
 		return (GHOST_TUns8*) path;
 	} else {
 		return NULL;

Modified: trunk/blender/intern/ghost/intern/GHOST_SystemX11.h
===================================================================
--- trunk/blender/intern/ghost/intern/GHOST_SystemX11.h	2010-02-27 16:06:33 UTC (rev 27171)

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list