handle shell execution failure exit code too :) and use a dialog... :)
SVN revision: 20026
This commit is contained in:
parent
e8b2bc91d9
commit
39ac053aa6
|
@ -1860,25 +1860,45 @@ _e_apps_cb_exit(void *data, int type, void *event)
|
||||||
a = ai->app;
|
a = ai->app;
|
||||||
if (!a) return 1;
|
if (!a) return 1;
|
||||||
|
|
||||||
if ( (ev->exited) && (ev->exit_code == 127) ) /* /bin/sh uses this if cmd not found */
|
/* /bin/sh uses this if cmd not found */
|
||||||
|
if ((ev->exited) &&
|
||||||
|
((ev->exit_code == 127) || (ev->exit_code == 255)))
|
||||||
{
|
{
|
||||||
e_error_dialog_show(_("Run Error"),
|
E_Dialog *dia;
|
||||||
_("Enlightenment was unable to run the program:\n"
|
|
||||||
"\n"
|
dia = e_dialog_new(e_container_current_get(e_manager_current_get()));
|
||||||
"%s\n"),
|
if (dia)
|
||||||
a->exe);
|
{
|
||||||
}
|
char buf[4096];
|
||||||
else if ( ! ((ev->exited) && (ev->exit_code == EXIT_SUCCESS)) ) /* Let's hope that everyhing returns this properly. */
|
|
||||||
{ /* Show the error dialog with details from the exe. */
|
e_dialog_title_set(dia, _("Application run error"));
|
||||||
E_App_Autopsy *aut;
|
snprintf(buf, sizeof(buf),
|
||||||
|
_("Enlightenment was unable to run the application:<br>"
|
||||||
aut = E_NEW(E_App_Autopsy, 1);
|
"<br>"
|
||||||
aut->app = a;
|
"%s<br>"
|
||||||
aut->del = *ev;
|
"<br>"
|
||||||
aut->error = ecore_exe_event_data_get(ai->exe, ECORE_EXE_PIPE_ERROR);
|
"The application failed to start."),
|
||||||
aut->read = ecore_exe_event_data_get(ai->exe, ECORE_EXE_PIPE_READ);
|
a->exe);
|
||||||
_e_app_error_dialog(NULL, aut);
|
e_dialog_text_set(dia, buf);
|
||||||
}
|
// e_dialog_icon_set(dia, "enlightenment/error", 64);
|
||||||
|
e_dialog_button_add(dia, _("OK"), NULL, NULL, NULL);
|
||||||
|
e_dialog_button_focus_num(dia, 1);
|
||||||
|
e_win_centered_set(dia->win, 1);
|
||||||
|
e_dialog_show(dia);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* Let's hope that everyhing returns this properly. */
|
||||||
|
else if (!((ev->exited) && (ev->exit_code == EXIT_SUCCESS)))
|
||||||
|
{ /* Show the error dialog with details from the exe. */
|
||||||
|
E_App_Autopsy *aut;
|
||||||
|
|
||||||
|
aut = E_NEW(E_App_Autopsy, 1);
|
||||||
|
aut->app = a;
|
||||||
|
aut->del = *ev;
|
||||||
|
aut->error = ecore_exe_event_data_get(ai->exe, ECORE_EXE_PIPE_ERROR);
|
||||||
|
aut->read = ecore_exe_event_data_get(ai->exe, ECORE_EXE_PIPE_READ);
|
||||||
|
_e_app_error_dialog(NULL, aut);
|
||||||
|
}
|
||||||
if (ai->expire_timer) ecore_timer_del(ai->expire_timer);
|
if (ai->expire_timer) ecore_timer_del(ai->expire_timer);
|
||||||
free(ai);
|
free(ai);
|
||||||
a->instances = evas_list_remove(a->instances, ai);
|
a->instances = evas_list_remove(a->instances, ai);
|
||||||
|
|
Loading…
Reference in New Issue