Fixed spawning with root-manager.

This commit is contained in:
Hans Petter 2000-10-02 20:16:21 +00:00
parent f5d986cff6
commit 2c8e9b7ccd
2 changed files with 13 additions and 2 deletions

View file

@ -308,17 +308,25 @@ start_capplet_through_root_manager (GnomeDesktopEntry *gde)
}
else if (pid == 0) {
char *arg[2];
int i;
dup2 (pipe_fd[0], 0);
for (i = 3; i < OPEN_MAX; i++) close(i);
arg[0] = gnome_is_program_in_path ("root-manager");
arg[1] = NULL;
execv (arg[0], arg);
}
else
{
output = fdopen(pipe_fd[1], "a");
}
}
cmdline = g_strjoinv (" ", gde->exec + 1);
fprintf (output, "%s\n", cmdline);
fflush (output);
g_free (cmdline);
}

View file

@ -42,13 +42,14 @@ main (int argc, char **argv)
pid_t pid;
if (argc > 1) {
execv (gnome_is_program_in_path (args[1]), argv + 1);
execv (gnome_is_program_in_path (argv[1]), argv + 1);
g_error ("%s", g_strerror (errno));
}
buffer = g_new (char, buf_size);
while (1) {
while (!feof(stdin)) {
buffer[0] = buffer[1] = 0;
tmp = buffer;
fgets (tmp, 1023, stdin);
@ -59,6 +60,8 @@ main (int argc, char **argv)
fgets (tmp, 1023, stdin);
}
if (!strlen(buffer)) continue;
pid = fork ();
if (pid == (pid_t) -1) {