Bug 557468 – Support for GI_TYPELIB_PATH

2008-10-23  Johan Bilien  <jobi@via.ecp.fr>

	Bug 557468 – Support for GI_TYPELIB_PATH

	* girepository/girepository.c: if the GI_TYPELIB_PATH is set, add the
	provided paths to the global search path.


svn path=/trunk/; revision=786
This commit is contained in:
Johan Bilien 2008-10-23 09:10:04 +00:00 committed by Johan Bilien
parent 9a32d9b093
commit bb2b5e1ee3

View File

@ -93,14 +93,37 @@ init_globals ()
{ {
const gchar *const *datadirs; const gchar *const *datadirs;
const gchar *const *dir; const gchar *const *dir;
const gchar *type_lib_path_env;
type_lib_path_env = g_getenv ("GI_TYPELIB_PATH");
search_path = NULL;
if (type_lib_path_env)
{
gchar **custom_dirs;
gchar **d;
custom_dirs = g_strsplit (type_lib_path_env, G_SEARCHPATH_SEPARATOR_S, 0);
d = custom_dirs;
while (*d)
{
search_path = g_slist_prepend (search_path, *d);
d++;
}
/* ownership of the array content was passed to the list */
g_free (custom_dirs);
}
datadirs = g_get_system_data_dirs (); datadirs = g_get_system_data_dirs ();
search_path = NULL; for (dir = datadirs; *dir; dir++)
for (dir = datadirs; *dir; dir++) { {
char *path = g_build_filename (*dir, "girepository", NULL); char *path = g_build_filename (*dir, "girepository", NULL);
search_path = g_slist_prepend (search_path, path); search_path = g_slist_prepend (search_path, path);
} }
search_path = g_slist_reverse (search_path); search_path = g_slist_reverse (search_path);
} }