[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