Use E_FREE for things created with E_NEW.

Formatting & Whitespace Removal


SVN revision: 41442
This commit is contained in:
Christopher Michael 2009-07-19 20:26:10 +00:00
parent 0df3f4e2d9
commit b0a07a8ac6
1 changed files with 71 additions and 66 deletions

View File

@ -12,20 +12,20 @@
* - Launch .desktop in terminal if .desktop requires it * - Launch .desktop in terminal if .desktop requires it
*/ */
typedef struct _E_Exec_Launch E_Exec_Launch; typedef struct _E_Exec_Launch E_Exec_Launch;
typedef struct _E_Exec_Search E_Exec_Search; typedef struct _E_Exec_Search E_Exec_Search;
struct _E_Exec_Launch struct _E_Exec_Launch
{ {
E_Zone *zone; E_Zone *zone;
const char *launch_method; const char *launch_method;
}; };
struct _E_Exec_Search struct _E_Exec_Search
{ {
Efreet_Desktop *desktop; Efreet_Desktop *desktop;
int startup_id; int startup_id;
pid_t pid; pid_t pid;
}; };
struct _E_Config_Dialog_Data struct _E_Config_Dialog_Data
@ -33,35 +33,33 @@ struct _E_Config_Dialog_Data
Efreet_Desktop *desktop; Efreet_Desktop *desktop;
char *exec; char *exec;
Ecore_Exe_Event_Del event; Ecore_Exe_Event_Del event;
Ecore_Exe_Event_Data *error; Ecore_Exe_Event_Data *error;
Ecore_Exe_Event_Data *read; Ecore_Exe_Event_Data *read;
char *label; char *label, *exit, *signal;
char *exit;
char *signal;
}; };
/* local subsystem functions */ /* local subsystem functions */
static E_Exec_Instance *_e_exec_cb_exec(void *data, Efreet_Desktop *desktop, char *exec, int remaining); static E_Exec_Instance *_e_exec_cb_exec(void *data, Efreet_Desktop *desktop, char *exec, int remaining);
static int _e_exec_cb_expire_timer(void *data); static int _e_exec_cb_expire_timer(void *data);
static int _e_exec_cb_exit(void *data, int type, void *event); static int _e_exec_cb_exit(void *data, int type, void *event);
static Eina_Bool _e_exec_startup_id_pid_find(const Eina_Hash *hash __UNUSED__, const void *key __UNUSED__, void *value, void *data); static Eina_Bool _e_exec_startup_id_pid_find(const Eina_Hash *hash __UNUSED__, const void *key __UNUSED__, void *value, void *data);
static void _e_exec_error_dialog(Efreet_Desktop *desktop, const char *exec, Ecore_Exe_Event_Del *event, Ecore_Exe_Event_Data *error, Ecore_Exe_Event_Data *read); static void _e_exec_error_dialog(Efreet_Desktop *desktop, const char *exec, Ecore_Exe_Event_Del *event, Ecore_Exe_Event_Data *error, Ecore_Exe_Event_Data *read);
static void _fill_data(E_Config_Dialog_Data *cfdata); static void _fill_data(E_Config_Dialog_Data *cfdata);
static void *_create_data(E_Config_Dialog *cfd); static void *_create_data(E_Config_Dialog *cfd);
static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
static Evas_Object *_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata); static Evas_Object *_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata);
static Evas_Object *_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata); static Evas_Object *_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata);
static Evas_Object *_dialog_scrolltext_create(Evas *evas, char *title, Ecore_Exe_Event_Data_Line *lines); static Evas_Object *_dialog_scrolltext_create(Evas *evas, char *title, Ecore_Exe_Event_Data_Line *lines);
static void _dialog_save_cb(void *data, void *data2); static void _dialog_save_cb(void *data, void *data2);
/* local subsystem globals */ /* local subsystem globals */
static Eina_List *e_exec_start_pending = NULL; static Eina_List *e_exec_start_pending = NULL;
static Eina_Hash *e_exec_instances = NULL; static Eina_Hash *e_exec_instances = NULL;
static int startup_id = 0; static int startup_id = 0;
static Ecore_Event_Handler *_e_exec_exit_handler = NULL; static Ecore_Event_Handler *_e_exec_exit_handler = NULL;
static Ecore_Event_Handler *_e_exec_border_add_handler = NULL; static Ecore_Event_Handler *_e_exec_border_add_handler = NULL;
@ -90,7 +88,8 @@ e_exec_shutdown(void)
e_util_env_set("E_STARTUP_ID", buf); e_util_env_set("E_STARTUP_ID", buf);
if (_e_exec_exit_handler) ecore_event_handler_del(_e_exec_exit_handler); if (_e_exec_exit_handler) ecore_event_handler_del(_e_exec_exit_handler);
if (_e_exec_border_add_handler) ecore_event_handler_del(_e_exec_border_add_handler); if (_e_exec_border_add_handler)
ecore_event_handler_del(_e_exec_border_add_handler);
eina_hash_free(e_exec_instances); eina_hash_free(e_exec_instances);
eina_list_free(e_exec_start_pending); eina_list_free(e_exec_start_pending);
return 1; return 1;
@ -119,7 +118,8 @@ e_exec(E_Zone *zone, Efreet_Desktop *desktop, const char *exec,
if (exec) if (exec)
inst = _e_exec_cb_exec(launch, NULL, strdup(exec), 0); inst = _e_exec_cb_exec(launch, NULL, strdup(exec), 0);
else else
inst = efreet_desktop_command_get(desktop, files, _e_exec_cb_exec, launch); inst =
efreet_desktop_command_get(desktop, files, _e_exec_cb_exec, launch);
} }
else else
inst = _e_exec_cb_exec(launch, NULL, strdup(exec), 0); inst = _e_exec_cb_exec(launch, NULL, strdup(exec), 0);
@ -158,6 +158,7 @@ _e_exec_cb_exec(void *data, Efreet_Desktop *desktop, char *exec, int remaining)
if (startup_id == 0) if (startup_id == 0)
{ {
const char *p; const char *p;
p = getenv("E_STARTUP_ID"); p = getenv("E_STARTUP_ID");
if (p) startup_id = atoi(p); if (p) startup_id = atoi(p);
e_util_env_set("E_STARTUP_ID", NULL); e_util_env_set("E_STARTUP_ID", NULL);
@ -242,7 +243,8 @@ _e_exec_cb_exec(void *data, Efreet_Desktop *desktop, char *exec, int remaining)
inst->exe = exe; inst->exe = exe;
inst->startup_id = startup_id; inst->startup_id = startup_id;
inst->launch_time = ecore_time_get(); inst->launch_time = ecore_time_get();
inst->expire_timer = ecore_timer_add(10.0, _e_exec_cb_expire_timer, inst); inst->expire_timer = ecore_timer_add(10.0,
_e_exec_cb_expire_timer, inst);
l = eina_hash_find(e_exec_instances, desktop->orig_path); l = eina_hash_find(e_exec_instances, desktop->orig_path);
if (l) if (l)
@ -265,7 +267,7 @@ _e_exec_cb_exec(void *data, Efreet_Desktop *desktop, char *exec, int remaining)
inst = NULL; inst = NULL;
ecore_exe_free(exe); ecore_exe_free(exe);
} }
if (!remaining) if (!remaining)
{ {
if (launch->launch_method) eina_stringshare_del(launch->launch_method); if (launch->launch_method) eina_stringshare_del(launch->launch_method);
@ -279,7 +281,7 @@ static int
_e_exec_cb_expire_timer(void *data) _e_exec_cb_expire_timer(void *data)
{ {
E_Exec_Instance *inst; E_Exec_Instance *inst;
inst = data; inst = data;
e_exec_start_pending = eina_list_remove(e_exec_start_pending, inst->desktop); e_exec_start_pending = eina_list_remove(e_exec_start_pending, inst->desktop);
inst->expire_timer = NULL; inst->expire_timer = NULL;
@ -306,13 +308,13 @@ _e_exec_cb_exit(void *data, int type, void *event)
((ev->exit_code == 127) || (ev->exit_code == 255))) ((ev->exit_code == 127) || (ev->exit_code == 255)))
{ {
E_Dialog *dia; E_Dialog *dia;
dia = e_dialog_new(e_container_current_get(e_manager_current_get()), dia = e_dialog_new(e_container_current_get(e_manager_current_get()),
"E", "_e_exec_run_error_dialog"); "E", "_e_exec_run_error_dialog");
if (dia) if (dia)
{ {
char buf[4096]; char buf[4096];
e_dialog_title_set(dia, _("Application run error")); e_dialog_title_set(dia, _("Application run error"));
snprintf(buf, sizeof(buf), snprintf(buf, sizeof(buf),
_("Enlightenment was unable to run the application:<br>" _("Enlightenment was unable to run the application:<br>"
@ -333,8 +335,7 @@ _e_exec_cb_exit(void *data, int type, void *event)
{ {
/* filter out common exits via signals - int/term/quit. not really /* filter out common exits via signals - int/term/quit. not really
* worth popping up a dialog for */ * worth popping up a dialog for */
if (! if (!((ev->signalled) &&
((ev->signalled) &&
((ev->exit_signal == SIGINT) || ((ev->exit_signal == SIGINT) ||
(ev->exit_signal == SIGQUIT) || (ev->exit_signal == SIGQUIT) ||
(ev->exit_signal == SIGTERM))) (ev->exit_signal == SIGTERM)))
@ -375,13 +376,13 @@ _e_exec_startup_id_pid_find(const Eina_Hash *hash __UNUSED__, const void *key __
search = data; search = data;
EINA_LIST_FOREACH(value, l, inst) EINA_LIST_FOREACH(value, l, inst)
if (((search->startup_id > 0) && (search->startup_id == inst->startup_id)) || if (((search->startup_id > 0) && (search->startup_id == inst->startup_id)) ||
((inst->exe) && (search->pid > 1) && ((inst->exe) && (search->pid > 1) &&
(search->pid == ecore_exe_pid_get(inst->exe)))) (search->pid == ecore_exe_pid_get(inst->exe))))
{ {
search->desktop = inst->desktop; search->desktop = inst->desktop;
return EINA_FALSE; return EINA_FALSE;
} }
return EINA_TRUE; return EINA_TRUE;
} }
@ -400,7 +401,7 @@ _e_exec_error_dialog(Efreet_Desktop *desktop, const char *exec, Ecore_Exe_Event_
cfdata = E_NEW(E_Config_Dialog_Data, 1); cfdata = E_NEW(E_Config_Dialog_Data, 1);
if (!cfdata) if (!cfdata)
{ {
free(v); E_FREE(v);
return; return;
} }
cfdata->desktop = desktop; cfdata->desktop = desktop;
@ -435,14 +436,16 @@ _fill_data(E_Config_Dialog_Data *cfdata)
if ((cfdata->event.exited) && (!cfdata->exit)) if ((cfdata->event.exited) && (!cfdata->exit))
{ {
snprintf(buf, sizeof(buf), snprintf(buf, sizeof(buf),
_("An exit code of %i was returned from %s."), cfdata->event.exit_code, cfdata->exec); _("An exit code of %i was returned from %s."),
cfdata->event.exit_code, cfdata->exec);
cfdata->exit = strdup(buf); cfdata->exit = strdup(buf);
} }
if ((cfdata->event.signalled) && (!cfdata->signal)) if ((cfdata->event.signalled) && (!cfdata->signal))
{ {
if (cfdata->event.exit_signal == SIGINT) if (cfdata->event.exit_signal == SIGINT)
snprintf(buf, sizeof(buf), snprintf(buf, sizeof(buf),
_("%s was interrupted by an Interrupt Signal."), cfdata->desktop->exec); _("%s was interrupted by an Interrupt Signal."),
cfdata->desktop->exec);
else if (cfdata->event.exit_signal == SIGQUIT) else if (cfdata->event.exit_signal == SIGQUIT)
snprintf(buf, sizeof(buf), _("%s was interrupted by a Quit Signal."), snprintf(buf, sizeof(buf), _("%s was interrupted by a Quit Signal."),
cfdata->exec); cfdata->exec);
@ -451,19 +454,23 @@ _fill_data(E_Config_Dialog_Data *cfdata)
_("%s was interrupted by an Abort Signal."), cfdata->exec); _("%s was interrupted by an Abort Signal."), cfdata->exec);
else if (cfdata->event.exit_signal == SIGFPE) else if (cfdata->event.exit_signal == SIGFPE)
snprintf(buf, sizeof(buf), snprintf(buf, sizeof(buf),
_("%s was interrupted by a Floating Point Error."), cfdata->exec); _("%s was interrupted by a Floating Point Error."),
cfdata->exec);
else if (cfdata->event.exit_signal == SIGKILL) else if (cfdata->event.exit_signal == SIGKILL)
snprintf(buf, sizeof(buf), snprintf(buf, sizeof(buf),
_("%s was interrupted by an Uninterruptable Kill Signal."), cfdata->exec); _("%s was interrupted by an Uninterruptable Kill Signal."),
cfdata->exec);
else if (cfdata->event.exit_signal == SIGSEGV) else if (cfdata->event.exit_signal == SIGSEGV)
snprintf(buf, sizeof(buf), snprintf(buf, sizeof(buf),
_("%s was interrupted by a Segmentation Fault."), cfdata->exec); _("%s was interrupted by a Segmentation Fault."),
cfdata->exec);
else if (cfdata->event.exit_signal == SIGPIPE) else if (cfdata->event.exit_signal == SIGPIPE)
snprintf(buf, sizeof(buf), snprintf(buf, sizeof(buf),
_("%s was interrupted by a Broken Pipe."), cfdata->exec); _("%s was interrupted by a Broken Pipe."), cfdata->exec);
else if (cfdata->event.exit_signal == SIGTERM) else if (cfdata->event.exit_signal == SIGTERM)
snprintf(buf, sizeof(buf), snprintf(buf, sizeof(buf),
_("%s was interrupted by a Termination Signal."), cfdata->exec); _("%s was interrupted by a Termination Signal."),
cfdata->exec);
else if (cfdata->event.exit_signal == SIGBUS) else if (cfdata->event.exit_signal == SIGBUS)
snprintf(buf, sizeof(buf), snprintf(buf, sizeof(buf),
_("%s was interrupted by a Bus Error."), cfdata->exec); _("%s was interrupted by a Bus Error."), cfdata->exec);
@ -517,18 +524,16 @@ _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
E_FREE(cfdata->signal); E_FREE(cfdata->signal);
E_FREE(cfdata->exit); E_FREE(cfdata->exit);
E_FREE(cfdata->label); E_FREE(cfdata->label);
E_FREE(cfdata);
free(cfdata);
} }
static Evas_Object * static Evas_Object *
_dialog_scrolltext_create(Evas *evas, char *title, Ecore_Exe_Event_Data_Line *lines) _dialog_scrolltext_create(Evas *evas, char *title, Ecore_Exe_Event_Data_Line *lines)
{ {
int i;
Evas_Object *obj, *os; Evas_Object *obj, *os;
char *text; char *text;
char *trunc_note = _("***The remaining output has been truncated. Save the output to view.***\n"); char *trunc_note = _("***The remaining output has been truncated. Save the output to view.***\n");
int tlen, max_lines; int tlen, max_lines, i;
os = e_widget_framelist_add(evas, _(title), 0); os = e_widget_framelist_add(evas, _(title), 0);
@ -561,8 +566,7 @@ _dialog_scrolltext_create(Evas *evas, char *title, Ecore_Exe_Event_Data_Line *li
} }
/* Append the warning about truncated output. */ /* Append the warning about truncated output. */
if (lines[max_lines].line != NULL) if (lines[max_lines].line != NULL) strcat(text, trunc_note);
strcat(text, trunc_note);
e_widget_textblock_plain_set(obj, text); e_widget_textblock_plain_set(obj, text);
} }
@ -587,11 +591,11 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
ob = e_widget_label_add(evas, cfdata->label); ob = e_widget_label_add(evas, cfdata->label);
e_widget_list_object_append(o, ob, 1, 1, 0.5); e_widget_list_object_append(o, ob, 1, 1, 0.5);
if (cfdata->error) if (cfdata->error) error_length = cfdata->error->size;
error_length = cfdata->error->size;
if (error_length) if (error_length)
{ {
os = _dialog_scrolltext_create(evas, _("Error Logs"), cfdata->error->lines); os = _dialog_scrolltext_create(evas, _("Error Logs"),
cfdata->error->lines);
e_widget_list_object_append(o, os, 1, 1, 0.5); e_widget_list_object_append(o, os, 1, 1, 0.5);
} }
else else
@ -603,7 +607,7 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
ob = e_widget_button_add(evas, _("Save This Message"), "system-run", ob = e_widget_button_add(evas, _("Save This Message"), "system-run",
_dialog_save_cb, NULL, cfdata); _dialog_save_cb, NULL, cfdata);
e_widget_list_object_append(o, ob, 0, 0, 0.5); e_widget_list_object_append(o, ob, 0, 0, 0.5);
snprintf(buf, sizeof(buf), _("This error log will be saved as %s/%s.log"), snprintf(buf, sizeof(buf), _("This error log will be saved as %s/%s.log"),
e_user_homedir_get(), cfdata->desktop->name); e_user_homedir_get(), cfdata->desktop->name);
ob = e_widget_label_add(evas, buf); ob = e_widget_label_add(evas, buf);
@ -644,12 +648,12 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
e_widget_list_object_append(o, of, 1, 1, 0.5); e_widget_list_object_append(o, of, 1, 1, 0.5);
} }
if (cfdata->read) if (cfdata->read) read_length = cfdata->read->size;
read_length = cfdata->read->size;
if (read_length) if (read_length)
{ {
of = _dialog_scrolltext_create(evas, _("Output Data"), cfdata->read->lines); of = _dialog_scrolltext_create(evas, _("Output Data"),
cfdata->read->lines);
/* FIXME: Add stdout "start". */ /* FIXME: Add stdout "start". */
/* FIXME: Add stdout "end". */ /* FIXME: Add stdout "end". */
} }
@ -661,11 +665,11 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
} }
e_widget_table_object_append(ot, of, 0, 0, 1, 1, 1, 1, 1, 1); e_widget_table_object_append(ot, of, 0, 0, 1, 1, 1, 1, 1, 1);
if (cfdata->error) if (cfdata->error) error_length = cfdata->error->size;
error_length = cfdata->error->size;
if (error_length) if (error_length)
{ {
of = _dialog_scrolltext_create(evas, _("Error Logs"), cfdata->error->lines); of = _dialog_scrolltext_create(evas, _("Error Logs"),
cfdata->error->lines);
/* FIXME: Add stderr "start". */ /* FIXME: Add stderr "start". */
/* FIXME: Add stderr "end". */ /* FIXME: Add stderr "end". */
} }
@ -679,7 +683,8 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
e_widget_list_object_append(o, ot, 1, 1, 0.5); e_widget_list_object_append(o, ot, 1, 1, 0.5);
ob = e_widget_button_add(evas, _("Save This Message"), "system-run", _dialog_save_cb, NULL, cfdata); ob = e_widget_button_add(evas, _("Save This Message"), "system-run",
_dialog_save_cb, NULL, cfdata);
e_widget_list_object_append(o, ob, 0, 0, 0.5); e_widget_list_object_append(o, ob, 0, 0, 0.5);
snprintf(buf, sizeof(buf), _("This error log will be saved as %s/%s.log"), snprintf(buf, sizeof(buf), _("This error log will be saved as %s/%s.log"),
@ -710,17 +715,18 @@ _dialog_save_cb(void *data, void *data2)
if (cfdata->exit) if (cfdata->exit)
{ {
snprintf(buffer, sizeof(buffer), "Error Information:\n\t%s\n\n", cfdata->exit); snprintf(buffer, sizeof(buffer), "Error Information:\n\t%s\n\n",
cfdata->exit);
fwrite(buffer, sizeof(char), strlen(buffer), f); fwrite(buffer, sizeof(char), strlen(buffer), f);
} }
if (cfdata->signal) if (cfdata->signal)
{ {
snprintf(buffer, sizeof(buffer), "Error Signal Information:\n\t%s\n\n", cfdata->signal); snprintf(buffer, sizeof(buffer), "Error Signal Information:\n\t%s\n\n",
cfdata->signal);
fwrite(buffer, sizeof(char), strlen(buffer), f); fwrite(buffer, sizeof(char), strlen(buffer), f);
} }
if (cfdata->read) if (cfdata->read) read_length = cfdata->read->size;
read_length = cfdata->read->size;
if (read_length) if (read_length)
{ {
@ -749,8 +755,7 @@ _dialog_save_cb(void *data, void *data2)
/* Reusing this var */ /* Reusing this var */
read_length = 0; read_length = 0;
if (cfdata->error) if (cfdata->error) read_length = cfdata->error->size;
read_length = cfdata->error->size;
if (read_length) if (read_length)
{ {