Support resource:/// URL's in GNOME_SHELL_JS envvar
It can be useful to augment the shell's search path by doing GNOME_SHELL_JS=resource:///org/gnome/shell:<mypath> But this doesn't work because resource: is split off. Special case path elements that are just 'resource' and recombine them with the next element. https://bugzilla.gnome.org/show_bug.cgi?id=730409
This commit is contained in:
parent
f1f659571b
commit
5d11941638
@ -286,7 +286,33 @@ shell_global_init (ShellGlobal *global)
|
||||
|
||||
if (shell_js)
|
||||
{
|
||||
int i, j;
|
||||
search_path = g_strsplit (shell_js, ":", -1);
|
||||
|
||||
/* The naive g_strsplit above will split 'resource:///foo/bar' into 'resource',
|
||||
* '///foo/bar'. Combine these back together by looking for a literal 'resource'
|
||||
* in the array. */
|
||||
for (i = 0, j = 0; search_path[i];)
|
||||
{
|
||||
char *out;
|
||||
|
||||
if (strcmp (search_path[i], "resource") == 0 && search_path[i + 1] != NULL)
|
||||
{
|
||||
out = g_strconcat (search_path[i], ":", search_path[i + 1], NULL);
|
||||
g_free (search_path[i]);
|
||||
g_free (search_path[i + 1]);
|
||||
i += 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
out = search_path[i];
|
||||
i += 1;
|
||||
}
|
||||
|
||||
search_path[j++] = out;
|
||||
}
|
||||
|
||||
search_path[j] = NULL; /* NULL-terminate the now possibly shorter array */
|
||||
}
|
||||
else
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user