From: Benjamin Reed Date: Tue, 21 Jul 2009 14:33:32 +0000 (-0400) Subject: Look up DISPLAY from launchd if not initialized. X-Git-Tag: dbus-1.4.1~21 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eb66c0a9c001ea08793b38470d12611ffaafa436;p=thirdparty%2Fdbus.git Look up DISPLAY from launchd if not initialized. --- diff --git a/dbus/dbus-server-launchd.c b/dbus/dbus-server-launchd.c index 83d384dff..db4673c55 100644 --- a/dbus/dbus-server-launchd.c +++ b/dbus/dbus-server-launchd.c @@ -71,9 +71,10 @@ _dbus_server_new_for_launchd (const char *launchd_env_var, DBusError * error) launch_data_t checkin_request; launch_data_t listening_fd_array, listening_fd; launch_data_t environment_dict, environment_param; - const char *launchd_socket_path; + const char *launchd_socket_path, *display; launchd_socket_path = _dbus_getenv (launchd_env_var); + display = _dbus_getenv ("DISPLAY"); _DBUS_ASSERT_ERROR_IS_CLEAR (error); @@ -158,6 +159,28 @@ _dbus_server_new_for_launchd (const char *launchd_env_var, DBusError * error) { _DBUS_ASSERT_ERROR_IS_SET (error); goto l_failed_0; + if (display == NULL || *display == '\0') + { + environment_dict = launch_data_dict_lookup (checkin_response, LAUNCH_JOBKEY_USERENVIRONMENTVARIABLES); + if (NULL == environment_dict) + { + _dbus_warn ("Unable to retrieve user environment from launchd."); + } + else + { + environment_param = launch_data_dict_lookup (environment_dict, "DISPLAY"); + if (NULL == environment_param) + { + _dbus_warn ("Unable to retrieve DISPLAY from launchd."); + } + else + { + display = launch_data_get_string(environment_param); + _dbus_setenv ("DISPLAY", display); + } + } + } + } server = _dbus_server_new_for_socket (&launchd_fd, 1, &address, 0);