[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30380] trunk/blender/source/blender/ blenlib/intern/path_util.c: Fix for use of path environment variables, was not appending subfolder.
Brecht Van Lommel
brecht at blender.org
Thu Jul 15 17:03:42 CEST 2010
Revision: 30380
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30380
Author: blendix
Date: 2010-07-15 17:03:42 +0200 (Thu, 15 Jul 2010)
Log Message:
-----------
Fix for use of path environment variables, was not appending subfolder.
Modified Paths:
--------------
trunk/blender/source/blender/blenlib/intern/path_util.c
Modified: trunk/blender/source/blender/blenlib/intern/path_util.c
===================================================================
--- trunk/blender/source/blender/blenlib/intern/path_util.c 2010-07-15 13:34:14 UTC (rev 30379)
+++ trunk/blender/source/blender/blenlib/intern/path_util.c 2010-07-15 15:03:42 UTC (rev 30380)
@@ -947,13 +947,13 @@
}
}
-static int test_env_path(char *path, char *envvar)
+static int test_env_path(char *path, char *subfolder_name, char *envvar)
{
char *env = envvar?getenv(envvar):NULL;
if (!env) return 0;
if (BLI_is_dir(env)) {
- BLI_strncpy(path, env, FILE_MAX);
+ BLI_make_file_string("/", path, env, subfolder_name);
return 1;
} else {
path[0] = '\0';
@@ -1002,14 +1002,14 @@
return 0;
}
-static int get_path_user(char *targetpath, char *folder_name, char *envvar)
+static int get_path_user(char *targetpath, char *folder_name, char *subfolder_name, char *envvar)
{
char user_path[FILE_MAX];
const char *user_base_path;
user_path[0] = '\0';
- if (test_env_path(targetpath, envvar))
+ if (test_env_path(targetpath, subfolder_name, envvar))
return 1;
user_base_path = (const char *)GHOST_getUserDir();
@@ -1028,14 +1028,14 @@
return test_path(targetpath, user_path, NULL, folder_name);
}
-static int get_path_system(char *targetpath, char *folder_name, char *envvar)
+static int get_path_system(char *targetpath, char *folder_name, char *subfolder_name, char *envvar)
{
char system_path[FILE_MAX];
const char *system_base_path;
system_path[0] = '\0';
- if (test_env_path(targetpath, envvar))
+ if (test_env_path(targetpath, subfolder_name, envvar))
return 1;
system_base_path = (const char *)GHOST_getSystemDir();
@@ -1065,66 +1065,66 @@
case BLENDER_DATAFILES: /* general case */
BLI_join_dirfile(search_path, "datafiles", subfolder);
if (get_path_local(path, search_path)) break;
- if (get_path_user(path, search_path, "BLENDER_USER_DATAFILES")) break;
- if (get_path_system(path, search_path, "BLENDER_SYSTEM_DATAFILES")) break;
+ if (get_path_user(path, search_path, subfolder, "BLENDER_USER_DATAFILES")) break;
+ if (get_path_system(path, search_path, subfolder, "BLENDER_SYSTEM_DATAFILES")) break;
return NULL;
case BLENDER_USER_DATAFILES:
BLI_join_dirfile(search_path, "datafiles", subfolder);
if (get_path_local(path, search_path)) break;
- if (get_path_user(path, search_path, "BLENDER_USER_DATAFILES")) break;
+ if (get_path_user(path, search_path, subfolder, "BLENDER_USER_DATAFILES")) break;
return NULL;
case BLENDER_SYSTEM_DATAFILES:
BLI_join_dirfile(search_path, "datafiles", subfolder);
- if (get_path_system(path, search_path, "BLENDER_SYSTEM_DATAFILES")) break;
+ if (get_path_system(path, search_path, subfolder, "BLENDER_SYSTEM_DATAFILES")) break;
return NULL;
case BLENDER_CONFIG: /* general case */
BLI_join_dirfile(search_path, "config", subfolder);
if (get_path_local(path, search_path)) break;
- if (get_path_user(path, search_path, "BLENDER_USER_CONFIG")) break;
- if (get_path_system(path, search_path, "BLENDER_SYSTEM_CONFIG")) break;
+ if (get_path_user(path, search_path, subfolder, "BLENDER_USER_CONFIG")) break;
+ if (get_path_system(path, search_path, subfolder, "BLENDER_SYSTEM_CONFIG")) break;
return NULL;
case BLENDER_USER_CONFIG:
BLI_join_dirfile(search_path, "config", subfolder);
if (get_path_local(path, search_path)) break;
- if (get_path_user(path, search_path, "BLENDER_USER_CONFIG")) break;
+ if (get_path_user(path, search_path, subfolder, "BLENDER_USER_CONFIG")) break;
return NULL;
case BLENDER_SYSTEM_CONFIG:
BLI_join_dirfile(search_path, "config", subfolder);
- if (get_path_system(path, search_path, "BLENDER_SYSTEM_CONFIG")) break;
+ if (get_path_system(path, search_path, subfolder, "BLENDER_SYSTEM_CONFIG")) break;
return NULL;
case BLENDER_SCRIPTS: /* general case */
BLI_join_dirfile(search_path, "scripts", subfolder);
if (get_path_local(path, search_path)) break;
- if (get_path_user(path, search_path, "BLENDER_USER_SCRIPTS")) break;
- if (get_path_system(path, search_path, "BLENDER_SYSTEM_SCRIPTS")) break;
+ if (get_path_user(path, search_path, subfolder, "BLENDER_USER_SCRIPTS")) break;
+ if (get_path_system(path, search_path, subfolder, "BLENDER_SYSTEM_SCRIPTS")) break;
return NULL;
case BLENDER_USER_SCRIPTS:
BLI_join_dirfile(search_path, "scripts", subfolder);
if (get_path_local(path, search_path)) break;
- if (get_path_user(path, search_path, "BLENDER_USER_SCRIPTS")) break;
+ if (get_path_user(path, search_path, subfolder, "BLENDER_USER_SCRIPTS")) break;
return NULL;
case BLENDER_SYSTEM_SCRIPTS:
BLI_join_dirfile(search_path, "scripts", subfolder);
- if (get_path_system(path, search_path, "BLENDER_SYSTEM_SCRIPTS")) break;
+ if (get_path_system(path, search_path, subfolder, "BLENDER_SYSTEM_SCRIPTS")) break;
return NULL;
case BLENDER_PYTHON: /* general case */
BLI_join_dirfile(search_path, "python", subfolder);
if (get_path_local(path, search_path)) break;
- if (get_path_system(path, search_path, "BLENDER_SYSTEM_PYTHON")) break;
+ if (get_path_system(path, search_path, subfolder, "BLENDER_SYSTEM_PYTHON")) break;
return NULL;
case BLENDER_SYSTEM_PYTHON:
BLI_join_dirfile(search_path, "python", subfolder);
- if (get_path_system(path, search_path, "BLENDER_SYSTEM_PYTHON")) break;
+ if (get_path_system(path, search_path, subfolder, "BLENDER_SYSTEM_PYTHON")) break;
return NULL;
}
@@ -1139,11 +1139,11 @@
switch (folder_id) {
case BLENDER_USER_DATAFILES:
BLI_join_dirfile(search_path, "datafiles", subfolder);
- get_path_user(path, search_path, "BLENDER_USER_DATAFILES");
+ get_path_user(path, search_path, subfolder, "BLENDER_USER_DATAFILES");
break;
case BLENDER_USER_CONFIG:
BLI_join_dirfile(search_path, "config", subfolder);
- get_path_user(path, search_path, "BLENDER_USER_CONFIG");
+ get_path_user(path, search_path, subfolder, "BLENDER_USER_CONFIG");
break;
}
if ('\0' == path[0]) {
More information about the Bf-blender-cvs
mailing list