Ack.
On Thu, Feb 14, 2013 at 18:06:44 +0100, Jakub Filak wrote: > - realted to rhbz#905412 > - blocked by https://github.com/abrt/gnome-abrt/issues/10 > > Signed-off-by: Jakub Filak <[email protected]> > --- > src/applet/applet.c | 22 ++++++++++++++++------ > 1 file changed, 16 insertions(+), 6 deletions(-) > > diff --git a/src/applet/applet.c b/src/applet/applet.c > index b629e81..3f3b65f 100644 > --- a/src/applet/applet.c > +++ b/src/applet/applet.c > @@ -433,7 +433,7 @@ static void new_dir_exists(GList **new_dirs) > list_free_with_free(dirlist); > } > > -static void fork_exec_gui(void) > +static void fork_exec_gui(const char *problem_id) > { > fflush(NULL); /* paranoia */ > pid_t pid = fork(); > @@ -456,12 +456,22 @@ static void fork_exec_gui(void) > _exit(0); > } > > + // pass s_[] as DIR param(s) to 'gui executable' > + char *gui_args[4]; > + char **pp = gui_args; > + *pp++ = (char *)GUI_EXECUTABLE; > + if (problem_id != NULL) > + { > + *pp++ = (char *)"-p"; > + *pp++ = (char *)problem_id; > + } > + *pp = NULL; > + > /* grandchild */ > - //TODO: pass s_dirs[] as DIR param(s) to 'gui executable' > - execl(BIN_DIR"/"GUI_EXECUTABLE, GUI_EXECUTABLE, (char*) NULL); > + execv(BIN_DIR"/"GUI_EXECUTABLE, gui_args); > /* Did not find 'gui executable' in installation directory. Oh well > */ > /* Trying to find it in PATH */ > - execlp(GUI_EXECUTABLE, GUI_EXECUTABLE, (char*) NULL); > + execvp(GUI_EXECUTABLE, gui_args); > perror_msg_and_die(_("Can't execute '%s'"), GUI_EXECUTABLE); > } > > @@ -604,7 +614,7 @@ static void action_known(NotifyNotification > *notification, gchar *action, gpoint > } > else if (strcmp(A_KNOWN_OPEN_GUI, action) == 0) > /* TODO teach gui to select a problem passed on cmd line */ > - fork_exec_gui(); > + fork_exec_gui(pi->problem_dir); > else > /* This should not happen; otherwise it's a bug */ > error_msg("%s:%d %s(): BUG Unknown action '%s'", __FILE__, __LINE__, > __func__, action); > @@ -749,7 +759,7 @@ static GtkWidget *create_menu(void) > > static void on_applet_activate_cb(GtkStatusIcon *status_icon, gpointer > user_data) > { > - fork_exec_gui(); > + fork_exec_gui(/* problem id */ NULL); > hide_icon(); > } > > -- > 1.8.1.2 >
