mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-25 19:52:10 +01:00
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:
parent
9a32d9b093
commit
bb2b5e1ee3
@ -84,8 +84,8 @@ init_globals ()
|
|||||||
{
|
{
|
||||||
g_static_mutex_lock (&globals_lock);
|
g_static_mutex_lock (&globals_lock);
|
||||||
|
|
||||||
if (default_repository == NULL)
|
if (default_repository == NULL)
|
||||||
{
|
{
|
||||||
default_repository = g_object_new (G_TYPE_IREPOSITORY, NULL);
|
default_repository = g_object_new (G_TYPE_IREPOSITORY, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -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;
|
||||||
datadirs = g_get_system_data_dirs ();
|
|
||||||
|
type_lib_path_env = g_getenv ("GI_TYPELIB_PATH");
|
||||||
|
|
||||||
search_path = NULL;
|
search_path = NULL;
|
||||||
for (dir = datadirs; *dir; dir++) {
|
if (type_lib_path_env)
|
||||||
char *path = g_build_filename (*dir, "girepository", NULL);
|
{
|
||||||
search_path = g_slist_prepend (search_path, path);
|
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 ();
|
||||||
|
|
||||||
|
for (dir = datadirs; *dir; dir++)
|
||||||
|
{
|
||||||
|
char *path = g_build_filename (*dir, "girepository", NULL);
|
||||||
|
search_path = g_slist_prepend (search_path, path);
|
||||||
|
}
|
||||||
|
|
||||||
search_path = g_slist_reverse (search_path);
|
search_path = g_slist_reverse (search_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user