]> Pileus Git - ~andy/gtk/blob - gdk/directfb/gdkspawn-directfb.c
gdk/: fully remove gdkalias hacks
[~andy/gtk] / gdk / directfb / gdkspawn-directfb.c
1 /*
2  * Copyright (C) 2003 Sun Microsystems Inc.
3  *
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.
8  *
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.
13  *
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.
18  *
19  * Authors: Mark McLoughlin <mark@skynet.ie>
20  */
21
22 #include "config.h"
23 #include <glib.h>
24 #include "gdk.h"
25 #include "gdkspawn.h"
26 #include "gdkprivate.h"
27
28
29 gboolean
30 gdk_spawn_on_screen (GdkScreen             *screen,
31                      const gchar           *working_directory,
32                      gchar                **argv,
33                      gchar                **envp,
34                      GSpawnFlags            flags,
35                      GSpawnChildSetupFunc   child_setup,
36                      gpointer               user_data,
37                      GPid                  *child_pid,
38                      GError               **error)
39 {
40   g_return_val_if_fail (GDK_IS_SCREEN (screen), FALSE);
41
42   return g_spawn_async (working_directory,
43                         argv,
44                         envp,
45                         flags,
46                         child_setup,
47                         user_data,
48                         child_pid,
49                         error);
50 }
51
52 gboolean
53 gdk_spawn_on_screen_with_pipes (GdkScreen            *screen,
54                                 const gchar          *working_directory,
55                                 gchar               **argv,
56                                 gchar               **envp,
57                                 GSpawnFlags           flags,
58                                 GSpawnChildSetupFunc  child_setup,
59                                 gpointer              user_data,
60                                 GPid                 *child_pid,
61                                 gint                 *standard_input,
62                                 gint                 *standard_output,
63                                 gint                 *standard_error,
64                                 GError              **error)
65 {
66   g_return_val_if_fail (GDK_IS_SCREEN (screen), FALSE);
67
68   return g_spawn_async_with_pipes (working_directory,
69                                    argv,
70                                    envp,
71                                    flags,
72                                    child_setup,
73                                    user_data,
74                                    child_pid,
75                                    standard_input,
76                                    standard_output,
77                                    standard_error,
78                                    error);
79 }
80
81 gboolean
82 gdk_spawn_command_line_on_screen (GdkScreen    *screen,
83                                   const gchar  *command_line,
84                                   GError      **error)
85 {
86   gchar    **argv = NULL;
87   gboolean   retval;
88
89   g_return_val_if_fail (command_line != NULL, FALSE);
90
91   if (!g_shell_parse_argv (command_line,
92                            NULL, &argv,
93                            error))
94     return FALSE;
95
96   retval = gdk_spawn_on_screen (screen,
97                                 NULL, argv, NULL,
98                                 G_SPAWN_SEARCH_PATH,
99                                 NULL, NULL, NULL,
100                                 error);
101   g_strfreev (argv);
102
103   return retval;
104 }