mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-11 20:06:18 +01:00
Merge branch 'issue-1998-gsettings-schema-dir-env-var-multiple-dirs' into 'master'
Support multiple directories in GSETTINGS_SCHEMA_DIR Closes #1998 See merge request GNOME/glib!1315
This commit is contained in:
commit
3499bd7713
@ -466,10 +466,9 @@ Gvfs is also heavily distributed and relies on a session bus to be present.
|
||||
<title><envar>GSETTINGS_SCHEMA_DIR</envar></title>
|
||||
|
||||
<para>
|
||||
This variable can be set to the name of a directory that is
|
||||
considered in addition to the <filename>glib-2.0/schemas</filename>
|
||||
subdirectories of the XDG system data dirs when looking
|
||||
for compiled schemas for #GSettings.
|
||||
This variable can be set to the names of directories to consider when looking for compiled schemas for #GSettings,
|
||||
in addition to the <filename>glib-2.0/schemas</filename>
|
||||
subdirectories of the XDG system data dirs. To specify multiple directories, use <constant>G_SEARCHPATH_SEPARATOR_S</constant> as a separator.
|
||||
</para>
|
||||
</formalpara>
|
||||
|
||||
|
@ -345,6 +345,7 @@ initialise_schema_sources (void)
|
||||
{
|
||||
const gchar * const *dirs;
|
||||
const gchar *path;
|
||||
gchar **extra_schema_dirs;
|
||||
gint i;
|
||||
|
||||
/* iterate in reverse: count up, then count down */
|
||||
@ -357,7 +358,15 @@ initialise_schema_sources (void)
|
||||
try_prepend_data_dir (g_get_user_data_dir ());
|
||||
|
||||
if ((path = g_getenv ("GSETTINGS_SCHEMA_DIR")) != NULL)
|
||||
try_prepend_dir (path);
|
||||
{
|
||||
extra_schema_dirs = g_strsplit (path, G_SEARCHPATH_SEPARATOR_S, 0);
|
||||
for (i = 0; extra_schema_dirs[i]; i++);
|
||||
|
||||
while (i--)
|
||||
try_prepend_dir (extra_schema_dirs[i]);
|
||||
|
||||
g_strfreev (extra_schema_dirs);
|
||||
}
|
||||
|
||||
g_once_init_leave (&initialised, TRUE);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user