From 7c13349808fe02d559294fe18810f23e2722adf7 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Mon, 3 Nov 2008 07:34:44 +0000 Subject: [PATCH] make e_start run dbus-launch - if that fails, fall back. SVN revision: 37433 --- src/bin/e_start_main.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/bin/e_start_main.c b/src/bin/e_start_main.c index da6cd0afe..96536da81 100644 --- a/src/bin/e_start_main.c +++ b/src/bin/e_start_main.c @@ -388,14 +388,27 @@ main(int argc, char **argv) precache(); } done: + + /* try dbus-launch */ + snprintf(buf, sizeof(buf), "%s/bin/enlightenment", _prefix_path); - args = alloca((argc + 1) * sizeof(char *)); + args = alloca((argc + 3) * sizeof(char *)); + if (!getenv("DBUS_SESSION_BUS_ADDRESS")) + { + args[0] = "dbus-launch"; + args[1] = "--exit-with-session"; + args[2] = buf; + for (i = 1; i < argc; i++) args[2 + i] = argv[i]; + args[2 + i] = NULL; + execvp("dbus-launch", args); + } + + /* dbus-launch failed - run e direct */ args[0] = "enlightenment"; for (i = 1; i < argc; i++) args[i] = argv[i]; args[i] = NULL; - - snprintf(buf, sizeof(buf), "%s/bin/enlightenment", _prefix_path); execv(buf, args); + printf("FAILED TO RUN:\n"); printf(" %s\n", buf); perror("execv");