[gnome-shell] Support resource:/// URL's in GNOME_SHELL_JS envvar
- From: Owen Taylor <otaylor src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] Support resource:/// URL's in GNOME_SHELL_JS envvar
- Date: Tue, 20 May 2014 00:47:30 +0000 (UTC)
commit 5d11941638fe2aef36390fdd55e66fdde2770f0d
Author: Owen W. Taylor <otaylor fishsoup net>
Date: Mon May 19 19:14:21 2014 -0400
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
src/shell-global.c | 26 ++++++++++++++++++++++++++
1 files changed, 26 insertions(+), 0 deletions(-)
---
diff --git a/src/shell-global.c b/src/shell-global.c
index 78d149f..f527c0f 100644
--- a/src/shell-global.c
+++ b/src/shell-global.c
@@ -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
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]