BLI_setenv, use instead of copying ifdefs about for setting env vars.
authorCampbell Barton <ideasman42@gmail.com>
Tue, 21 Jul 2009 09:26:28 +0000 (09:26 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Tue, 21 Jul 2009 09:26:28 +0000 (09:26 +0000)
set PYTHONHOME as well as PYTHONPATH, quiets some warnings.

source/blender/blenlib/BLI_util.h
source/blender/blenlib/intern/util.c
source/blender/python/intern/bpy_interface.c
source/creator/creator.c

index d323f701ba50114310d40ea91b2f30b1aff87423..f9a84e071e7ecced06330bdafe4c719f037999fc 100644 (file)
@@ -43,6 +43,7 @@ struct direntry;
 
 char *BLI_gethome(void);
 char *BLI_gethome_folder(char *folder_name);
+void BLI_setenv(const char *env, const char *val);
 
 void BLI_make_file_string(const char *relabase, char *string,  const char *dir, const char *file);
 void BLI_make_exist(char *dir);
index 8eeca6900a1ac827d83c10b024a29b72542519d6..3c441a81d6bb723ccb7fe91f905183c8c99c7309 100644 (file)
@@ -951,6 +951,24 @@ char *BLI_gethome_folder(char *folder_name)
        return NULL;
 }
 
+void BLI_setenv(const char *env, const char*val)
+{
+       /* SGI or free windows */
+#if (defined(__sgi) || ((defined(WIN32) || defined(WIN64)) && defined(FREE_WINDOWS)))
+       char *envstr= malloc(sizeof(char) * (strlen(env) + strlen(val) + 2)); /* one for = another for \0 */
+
+       sprintf(envstr, "%s=%s", env, val);
+       putenv(envstr);
+       free(envstr);
+
+       /* non-free windows */
+#elif (defined(WIN32) || defined(WIN64)) /* not free windows */
+       _putenv_s(env, val);
+#else
+       /* linux/osx/bsd */
+       setenv(env, val, 1);
+#endif
+}
 
 void BLI_clean(char *path)
 {
index 76852d99b569618e75672026382466d6a51d6527..1a2bb57a423dbaf4c4d637a7fc84d235928eb4b3 100644 (file)
@@ -160,28 +160,8 @@ void BPY_start_python_path(void)
        /* set the environment path */
        printf("found bundled python: %s\n", py_path_bundle);
 
-#if (defined(WIN32) || defined(WIN64))
-#if defined(FREE_WINDOWS)
-       {
-               char py_path[FILE_MAXDIR + 11] = "";
-               sprintf(py_path, "PYTHONPATH=%s", py_path_bundle);
-               putenv(py_path);
-       }
-#else
-       _putenv_s("PYTHONPATH", py_path_bundle);
-#endif
-#else
-#ifdef __sgi
-       {
-               char py_path[FILE_MAXDIR + 11] = "";
-               sprintf(py_path, "PYTHONPATH=%s", py_path_bundle);
-               putenv(py_path);
-       }
-#else
-       setenv("PYTHONPATH", py_path_bundle, 1);
-#endif
-#endif
-
+       BLI_setenv("PYTHONHOME", py_path_bundle);
+       BLI_setenv("PYTHONPATH", py_path_bundle);
 }
 
 
index 45288bfb9b52a5354e6383ff2129d69c9c83f82a..8e0152b5e6388a28ac0045599adc88b831a42466 100644 (file)
@@ -501,25 +501,11 @@ int main(int argc, char **argv)
                BLI_where_is_temp( btempdir, 1 ); /* call after loading the .B.blend so we can read U.tempdir */
 
 #ifndef DISABLE_SDL
-#if (defined(WIN32) || defined(WIN64))
-#if defined(FREE_WINDOWS)
-               putenv("SDL_VIDEODRIVER=dummy");
-#else
-               _putenv_s("SDL_VIDEODRIVER", "dummy");
-#endif
-#else
-#ifdef __sgi
-               putenv("SDL_VIDEODRIVER=dummy");
-#else
-               setenv("SDL_VIDEODRIVER", "dummy", 1); /* initializing the video driver can cause crashes on some systems - Campbell */
-#endif
-#endif
+       BLI_setenv("SDL_VIDEODRIVER", "dummy");
 #ifdef __linux__
-               /* On linux the default SDL driver dma often would not play
-                * use alsa if none is set */
-               if ( getenv("SDL_AUDIODRIVER") == NULL) {
-                       setenv("SDL_AUDIODRIVER", "alsa", 1);
-               }
+       /* On linux the default SDL driver dma often would not play
+        * use alsa if none is set */
+       setenv("SDL_AUDIODRIVER", "alsa", 0);
 #endif
 #endif
        }