forked from enlightenment/enlightenment
* ecore_exe patch to e_zone from Victor Kojouharov
SVN revision: 22132
This commit is contained in:
parent
a14c4870b6
commit
bace06a352
|
@ -562,6 +562,8 @@ e_zone_exec(E_Zone *zone, char *exe)
|
||||||
char *penv_display;
|
char *penv_display;
|
||||||
char buf[4096], buf2[32];
|
char buf[4096], buf2[32];
|
||||||
Ecore_Exe *ex;
|
Ecore_Exe *ex;
|
||||||
|
E_App_Instance *inst = NULL;
|
||||||
|
E_App *a;
|
||||||
|
|
||||||
E_OBJECT_CHECK_RETURN(zone, 0);
|
E_OBJECT_CHECK_RETURN(zone, 0);
|
||||||
E_OBJECT_TYPE_CHECK_RETURN(zone, E_ZONE_TYPE, 0);
|
E_OBJECT_TYPE_CHECK_RETURN(zone, E_ZONE_TYPE, 0);
|
||||||
|
@ -601,9 +603,21 @@ e_zone_exec(E_Zone *zone, char *exe)
|
||||||
snprintf(buf, sizeof(buf), "E_START|%i", startup_id);
|
snprintf(buf, sizeof(buf), "E_START|%i", startup_id);
|
||||||
e_util_env_set("DESKTOP_STARTUP_ID", buf);
|
e_util_env_set("DESKTOP_STARTUP_ID", buf);
|
||||||
/* execute */
|
/* execute */
|
||||||
ex = ecore_exe_run(exe, NULL);
|
a = e_app_exe_find(exe);
|
||||||
|
if (!a)
|
||||||
|
{
|
||||||
|
a = E_NEW(E_App, 1);
|
||||||
|
a->name = strdup (exe);
|
||||||
|
a->exe = strdup (exe);
|
||||||
|
}
|
||||||
|
|
||||||
|
inst = E_NEW(E_App_Instance, 1);
|
||||||
|
if (!inst) return 0;
|
||||||
|
|
||||||
|
ex = ecore_exe_pipe_run(exe, ECORE_EXE_PIPE_AUTO | ECORE_EXE_PIPE_READ | ECORE_EXE_PIPE_ERROR | ECORE_EXE_PIPE_READ_LINE_BUFFERED | ECORE_EXE_PIPE_ERROR_LINE_BUFFERED, inst);
|
||||||
if (!ex)
|
if (!ex)
|
||||||
{
|
{
|
||||||
|
free(inst);
|
||||||
e_error_dialog_show(_("Run Error"),
|
e_error_dialog_show(_("Run Error"),
|
||||||
_("Enlightenment was unable to fork a child process:\n"
|
_("Enlightenment was unable to fork a child process:\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
@ -612,17 +626,22 @@ e_zone_exec(E_Zone *zone, char *exe)
|
||||||
exe);
|
exe);
|
||||||
ret = 0;
|
ret = 0;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
ecore_exe_free(ex);
|
|
||||||
ret = 1;
|
|
||||||
}
|
|
||||||
/* reset env vars */
|
/* reset env vars */
|
||||||
|
else ret = 1;
|
||||||
if (penv_display)
|
if (penv_display)
|
||||||
{
|
{
|
||||||
e_util_env_set("DISPLAY", penv_display);
|
e_util_env_set("DISPLAY", penv_display);
|
||||||
free(penv_display);
|
free(penv_display);
|
||||||
}
|
}
|
||||||
|
/* 20 lines at start and end, 20x100 limit on bytes at each end. */
|
||||||
|
ecore_exe_auto_limits_set(ex, 2000, 2000, 20, 20);
|
||||||
|
ecore_exe_tag_set(ex, "E/app");
|
||||||
|
inst->app = a;
|
||||||
|
inst->exe = ex;
|
||||||
|
inst->launch_id = startup_id;
|
||||||
|
inst->launch_time = ecore_time_get();
|
||||||
|
a->instances = evas_list_append(a->instances, inst);
|
||||||
|
if (a->startup_notify) a->starting = 1;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue