diff options
Diffstat (limited to 'src/fr-command.c')
-rw-r--r-- | src/fr-command.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/fr-command.c b/src/fr-command.c index 1f00d84..5cf667e 100644 --- a/src/fr-command.c +++ b/src/fr-command.c @@ -29,6 +29,7 @@ #include "fr-command.h" #include "fr-enum-types.h" #include "fr-marshal.h" +#include "fr-proc-error.h" #include "fr-process.h" #include "glib-utils.h" @@ -219,12 +220,14 @@ fr_command_start (FrProcess *process, static void fr_command_done (FrProcess *process, + FrProcError *error, gpointer data) { FrCommand *comm = FR_COMMAND (data); comm->process->restart = FALSE; - fr_command_handle_error (comm, &process->error); + if (error->type != FR_PROC_ERROR_STOPPED) + fr_command_handle_error (comm, error); if (comm->process->restart) { fr_process_start (comm->process); @@ -240,7 +243,7 @@ fr_command_done (FrProcess *process, fr_command_signals[DONE], 0, comm->action, - &process->error); + error); } @@ -402,10 +405,10 @@ fr_command_class_init (FrCommandClass *class) G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (FrCommandClass, done), NULL, NULL, - fr_marshal_VOID__INT_POINTER, + fr_marshal_VOID__INT_BOXED, G_TYPE_NONE, 2, G_TYPE_INT, - G_TYPE_POINTER); + FR_TYPE_PROC_ERROR); fr_command_signals[PROGRESS] = g_signal_new ("progress", G_TYPE_FROM_CLASS (class), |