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. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to