2 * Copyright (C) 2003 Sun Microsystems Inc.
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Library General Public License for more details.
14 * You should have received a copy of the GNU Library General Public
15 * License along with this library; if not, write to the
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17 * Boston, MA 02111-1307, USA.
19 * Authors: Mark McLoughlin <mark@skynet.ie>
33 GSpawnChildSetupFunc child_setup;
38 set_environment (gpointer user_data)
40 UserChildSetup *setup = user_data;
42 g_setenv ("DISPLAY", setup->display, TRUE);
44 if (setup->child_setup)
45 setup->child_setup (setup->user_data);
49 gdk_spawn_on_screen (GdkScreen *screen,
50 const gchar *working_directory,
54 GSpawnChildSetupFunc child_setup,
59 UserChildSetup setup_data;
61 g_return_val_if_fail (GDK_IS_SCREEN (screen), FALSE);
63 setup_data.display = gdk_screen_make_display_name (screen);
64 setup_data.child_setup = child_setup;
65 setup_data.user_data = user_data;
67 return g_spawn_async (working_directory,
78 gdk_spawn_on_screen_with_pipes (GdkScreen *screen,
79 const gchar *working_directory,
83 GSpawnChildSetupFunc child_setup,
87 gint *standard_output,
91 UserChildSetup setup_data;
93 g_return_val_if_fail (GDK_IS_SCREEN (screen), FALSE);
95 setup_data.display = gdk_screen_make_display_name (screen);
96 setup_data.child_setup = child_setup;
97 setup_data.user_data = user_data;
99 return g_spawn_async_with_pipes (working_directory,
114 gdk_spawn_command_line_on_screen (GdkScreen *screen,
115 const gchar *command_line,
121 g_return_val_if_fail (command_line != NULL, FALSE);
123 if (!g_shell_parse_argv (command_line,
128 retval = gdk_spawn_on_screen (screen,