mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-08-12 12:14:06 +02:00
gspawn: Remove old win32 codepage ABI compat code
Makes new code link against the normal symbol names again. Variants with utf8 suffix are there for existing binaries/ABI compat. https://bugzilla.gnome.org/show_bug.cgi?id=780634
This commit is contained in:
@@ -211,25 +211,25 @@ G_DEFINE_QUARK (g-exec-error-quark, g_spawn_error)
|
|||||||
G_DEFINE_QUARK (g-spawn-exit-error-quark, g_spawn_exit_error)
|
G_DEFINE_QUARK (g-spawn-exit-error-quark, g_spawn_exit_error)
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
g_spawn_async_utf8 (const gchar *working_directory,
|
g_spawn_async (const gchar *working_directory,
|
||||||
gchar **argv,
|
gchar **argv,
|
||||||
gchar **envp,
|
gchar **envp,
|
||||||
GSpawnFlags flags,
|
GSpawnFlags flags,
|
||||||
GSpawnChildSetupFunc child_setup,
|
GSpawnChildSetupFunc child_setup,
|
||||||
gpointer user_data,
|
gpointer user_data,
|
||||||
GPid *child_handle,
|
GPid *child_handle,
|
||||||
GError **error)
|
GError **error)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (argv != NULL, FALSE);
|
g_return_val_if_fail (argv != NULL, FALSE);
|
||||||
|
|
||||||
return g_spawn_async_with_pipes_utf8 (working_directory,
|
return g_spawn_async_with_pipes (working_directory,
|
||||||
argv, envp,
|
argv, envp,
|
||||||
flags,
|
flags,
|
||||||
child_setup,
|
child_setup,
|
||||||
user_data,
|
user_data,
|
||||||
child_handle,
|
child_handle,
|
||||||
NULL, NULL, NULL,
|
NULL, NULL, NULL,
|
||||||
error);
|
error);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Avoids a danger in threaded situations (calling close()
|
/* Avoids a danger in threaded situations (calling close()
|
||||||
@@ -876,16 +876,16 @@ do_spawn_with_pipes (gint *exit_status,
|
|||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
g_spawn_sync_utf8 (const gchar *working_directory,
|
g_spawn_sync (const gchar *working_directory,
|
||||||
gchar **argv,
|
gchar **argv,
|
||||||
gchar **envp,
|
gchar **envp,
|
||||||
GSpawnFlags flags,
|
GSpawnFlags flags,
|
||||||
GSpawnChildSetupFunc child_setup,
|
GSpawnChildSetupFunc child_setup,
|
||||||
gpointer user_data,
|
gpointer user_data,
|
||||||
gchar **standard_output,
|
gchar **standard_output,
|
||||||
gchar **standard_error,
|
gchar **standard_error,
|
||||||
gint *exit_status,
|
gint *exit_status,
|
||||||
GError **error)
|
GError **error)
|
||||||
{
|
{
|
||||||
gint outpipe = -1;
|
gint outpipe = -1;
|
||||||
gint errpipe = -1;
|
gint errpipe = -1;
|
||||||
@@ -1118,17 +1118,17 @@ g_spawn_sync_utf8 (const gchar *working_directory,
|
|||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
g_spawn_async_with_pipes_utf8 (const gchar *working_directory,
|
g_spawn_async_with_pipes (const gchar *working_directory,
|
||||||
gchar **argv,
|
gchar **argv,
|
||||||
gchar **envp,
|
gchar **envp,
|
||||||
GSpawnFlags flags,
|
GSpawnFlags flags,
|
||||||
GSpawnChildSetupFunc child_setup,
|
GSpawnChildSetupFunc child_setup,
|
||||||
gpointer user_data,
|
gpointer user_data,
|
||||||
GPid *child_handle,
|
GPid *child_handle,
|
||||||
gint *standard_input,
|
gint *standard_input,
|
||||||
gint *standard_output,
|
gint *standard_output,
|
||||||
gint *standard_error,
|
gint *standard_error,
|
||||||
GError **error)
|
GError **error)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (argv != NULL, FALSE);
|
g_return_val_if_fail (argv != NULL, FALSE);
|
||||||
g_return_val_if_fail (standard_output == NULL ||
|
g_return_val_if_fail (standard_output == NULL ||
|
||||||
@@ -1155,11 +1155,11 @@ g_spawn_async_with_pipes_utf8 (const gchar *working_directory,
|
|||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
g_spawn_command_line_sync_utf8 (const gchar *command_line,
|
g_spawn_command_line_sync (const gchar *command_line,
|
||||||
gchar **standard_output,
|
gchar **standard_output,
|
||||||
gchar **standard_error,
|
gchar **standard_error,
|
||||||
gint *exit_status,
|
gint *exit_status,
|
||||||
GError **error)
|
GError **error)
|
||||||
{
|
{
|
||||||
gboolean retval;
|
gboolean retval;
|
||||||
gchar **argv = 0;
|
gchar **argv = 0;
|
||||||
@@ -1171,24 +1171,24 @@ g_spawn_command_line_sync_utf8 (const gchar *command_line,
|
|||||||
error))
|
error))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
retval = g_spawn_sync_utf8 (NULL,
|
retval = g_spawn_sync (NULL,
|
||||||
argv,
|
argv,
|
||||||
NULL,
|
NULL,
|
||||||
G_SPAWN_SEARCH_PATH,
|
G_SPAWN_SEARCH_PATH,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
standard_output,
|
standard_output,
|
||||||
standard_error,
|
standard_error,
|
||||||
exit_status,
|
exit_status,
|
||||||
error);
|
error);
|
||||||
g_strfreev (argv);
|
g_strfreev (argv);
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
g_spawn_command_line_async_utf8 (const gchar *command_line,
|
g_spawn_command_line_async (const gchar *command_line,
|
||||||
GError **error)
|
GError **error)
|
||||||
{
|
{
|
||||||
gboolean retval;
|
gboolean retval;
|
||||||
gchar **argv = 0;
|
gchar **argv = 0;
|
||||||
@@ -1200,14 +1200,14 @@ g_spawn_command_line_async_utf8 (const gchar *command_line,
|
|||||||
error))
|
error))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
retval = g_spawn_async_utf8 (NULL,
|
retval = g_spawn_async (NULL,
|
||||||
argv,
|
argv,
|
||||||
NULL,
|
NULL,
|
||||||
G_SPAWN_SEARCH_PATH,
|
G_SPAWN_SEARCH_PATH,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
error);
|
error);
|
||||||
g_strfreev (argv);
|
g_strfreev (argv);
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
@@ -1238,273 +1238,138 @@ g_spawn_check_exit_status (gint exit_status,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined (_WIN64)
|
#endif /* !GSPAWN_HELPER */
|
||||||
|
|
||||||
/* Binary compatibility versions that take system codepage pathnames,
|
#ifdef G_OS_WIN32
|
||||||
* argument vectors and environments. These get used only by code
|
|
||||||
* built against 2.8.1 or earlier. Code built against 2.8.2 or later
|
|
||||||
* will use the _utf8 versions above (see the #defines in gspawn.h).
|
|
||||||
*/
|
|
||||||
|
|
||||||
#undef g_spawn_async
|
/* Binary compatibility versions. Not for newly compiled code. */
|
||||||
#undef g_spawn_async_with_pipes
|
|
||||||
#undef g_spawn_sync
|
|
||||||
#undef g_spawn_command_line_sync
|
|
||||||
#undef g_spawn_command_line_async
|
|
||||||
|
|
||||||
static gboolean
|
_GLIB_EXTERN gboolean g_spawn_async_utf8 (const gchar *working_directory,
|
||||||
setup_utf8_copies (const gchar *working_directory,
|
gchar **argv,
|
||||||
gchar **utf8_working_directory,
|
gchar **envp,
|
||||||
gchar **argv,
|
GSpawnFlags flags,
|
||||||
gchar ***utf8_argv,
|
GSpawnChildSetupFunc child_setup,
|
||||||
gchar **envp,
|
gpointer user_data,
|
||||||
gchar ***utf8_envp,
|
GPid *child_pid,
|
||||||
GError **error)
|
GError **error);
|
||||||
|
_GLIB_EXTERN gboolean g_spawn_async_with_pipes_utf8 (const gchar *working_directory,
|
||||||
|
gchar **argv,
|
||||||
|
gchar **envp,
|
||||||
|
GSpawnFlags flags,
|
||||||
|
GSpawnChildSetupFunc child_setup,
|
||||||
|
gpointer user_data,
|
||||||
|
GPid *child_pid,
|
||||||
|
gint *standard_input,
|
||||||
|
gint *standard_output,
|
||||||
|
gint *standard_error,
|
||||||
|
GError **error);
|
||||||
|
_GLIB_EXTERN gboolean g_spawn_sync_utf8 (const gchar *working_directory,
|
||||||
|
gchar **argv,
|
||||||
|
gchar **envp,
|
||||||
|
GSpawnFlags flags,
|
||||||
|
GSpawnChildSetupFunc child_setup,
|
||||||
|
gpointer user_data,
|
||||||
|
gchar **standard_output,
|
||||||
|
gchar **standard_error,
|
||||||
|
gint *exit_status,
|
||||||
|
GError **error);
|
||||||
|
_GLIB_EXTERN gboolean g_spawn_command_line_sync_utf8 (const gchar *command_line,
|
||||||
|
gchar **standard_output,
|
||||||
|
gchar **standard_error,
|
||||||
|
gint *exit_status,
|
||||||
|
GError **error);
|
||||||
|
_GLIB_EXTERN gboolean g_spawn_command_line_async_utf8 (const gchar *command_line,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
g_spawn_async_utf8 (const gchar *working_directory,
|
||||||
|
gchar **argv,
|
||||||
|
gchar **envp,
|
||||||
|
GSpawnFlags flags,
|
||||||
|
GSpawnChildSetupFunc child_setup,
|
||||||
|
gpointer user_data,
|
||||||
|
GPid *child_handle,
|
||||||
|
GError **error)
|
||||||
{
|
{
|
||||||
gint i, argc, envc;
|
return g_spawn_async (working_directory,
|
||||||
|
argv,
|
||||||
if (working_directory == NULL)
|
envp,
|
||||||
*utf8_working_directory = NULL;
|
flags,
|
||||||
else
|
child_setup,
|
||||||
{
|
user_data,
|
||||||
GError *conv_error = NULL;
|
child_handle,
|
||||||
|
error);
|
||||||
*utf8_working_directory = g_locale_to_utf8 (working_directory, -1, NULL, NULL, &conv_error);
|
|
||||||
if (*utf8_working_directory == NULL)
|
|
||||||
{
|
|
||||||
g_set_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_CHDIR,
|
|
||||||
_("Invalid working directory: %s"),
|
|
||||||
conv_error->message);
|
|
||||||
g_error_free (conv_error);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
argc = 0;
|
|
||||||
while (argv[argc])
|
|
||||||
++argc;
|
|
||||||
*utf8_argv = g_new (gchar *, argc + 1);
|
|
||||||
for (i = 0; i < argc; i++)
|
|
||||||
{
|
|
||||||
GError *conv_error = NULL;
|
|
||||||
|
|
||||||
(*utf8_argv)[i] = g_locale_to_utf8 (argv[i], -1, NULL, NULL, &conv_error);
|
|
||||||
if ((*utf8_argv)[i] == NULL)
|
|
||||||
{
|
|
||||||
g_set_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_FAILED,
|
|
||||||
_("Invalid string in argument vector at %d: %s"),
|
|
||||||
i, conv_error->message);
|
|
||||||
g_error_free (conv_error);
|
|
||||||
|
|
||||||
g_strfreev (*utf8_argv);
|
|
||||||
*utf8_argv = NULL;
|
|
||||||
|
|
||||||
g_free (*utf8_working_directory);
|
|
||||||
*utf8_working_directory = NULL;
|
|
||||||
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
(*utf8_argv)[argc] = NULL;
|
|
||||||
|
|
||||||
if (envp == NULL)
|
|
||||||
{
|
|
||||||
*utf8_envp = NULL;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
envc = 0;
|
|
||||||
while (envp[envc])
|
|
||||||
++envc;
|
|
||||||
*utf8_envp = g_new (gchar *, envc + 1);
|
|
||||||
for (i = 0; i < envc; i++)
|
|
||||||
{
|
|
||||||
GError *conv_error = NULL;
|
|
||||||
|
|
||||||
(*utf8_envp)[i] = g_locale_to_utf8 (envp[i], -1, NULL, NULL, &conv_error);
|
|
||||||
if ((*utf8_envp)[i] == NULL)
|
|
||||||
{
|
|
||||||
g_set_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_FAILED,
|
|
||||||
_("Invalid string in environment: %s"),
|
|
||||||
conv_error->message);
|
|
||||||
g_error_free (conv_error);
|
|
||||||
|
|
||||||
g_strfreev (*utf8_envp);
|
|
||||||
*utf8_envp = NULL;
|
|
||||||
|
|
||||||
g_strfreev (*utf8_argv);
|
|
||||||
*utf8_argv = NULL;
|
|
||||||
|
|
||||||
g_free (*utf8_working_directory);
|
|
||||||
*utf8_working_directory = NULL;
|
|
||||||
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
(*utf8_envp)[envc] = NULL;
|
|
||||||
}
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
free_utf8_copies (gchar *utf8_working_directory,
|
|
||||||
gchar **utf8_argv,
|
|
||||||
gchar **utf8_envp)
|
|
||||||
{
|
|
||||||
g_free (utf8_working_directory);
|
|
||||||
g_strfreev (utf8_argv);
|
|
||||||
g_strfreev (utf8_envp);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
g_spawn_async_with_pipes (const gchar *working_directory,
|
g_spawn_async_with_pipes_utf8 (const gchar *working_directory,
|
||||||
gchar **argv,
|
gchar **argv,
|
||||||
gchar **envp,
|
gchar **envp,
|
||||||
GSpawnFlags flags,
|
GSpawnFlags flags,
|
||||||
GSpawnChildSetupFunc child_setup,
|
GSpawnChildSetupFunc child_setup,
|
||||||
gpointer user_data,
|
gpointer user_data,
|
||||||
GPid *child_handle,
|
GPid *child_handle,
|
||||||
gint *standard_input,
|
gint *standard_input,
|
||||||
gint *standard_output,
|
gint *standard_output,
|
||||||
gint *standard_error,
|
gint *standard_error,
|
||||||
GError **error)
|
GError **error)
|
||||||
{
|
|
||||||
gchar *utf8_working_directory;
|
|
||||||
gchar **utf8_argv;
|
|
||||||
gchar **utf8_envp;
|
|
||||||
gboolean retval;
|
|
||||||
|
|
||||||
if (!setup_utf8_copies (working_directory, &utf8_working_directory,
|
|
||||||
argv, &utf8_argv,
|
|
||||||
envp, &utf8_envp,
|
|
||||||
error))
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
retval = g_spawn_async_with_pipes_utf8 (utf8_working_directory,
|
|
||||||
utf8_argv, utf8_envp,
|
|
||||||
flags, child_setup, user_data,
|
|
||||||
child_handle,
|
|
||||||
standard_input, standard_output, standard_error,
|
|
||||||
error);
|
|
||||||
|
|
||||||
free_utf8_copies (utf8_working_directory, utf8_argv, utf8_envp);
|
|
||||||
|
|
||||||
return retval;
|
|
||||||
}
|
|
||||||
|
|
||||||
gboolean
|
|
||||||
g_spawn_async (const gchar *working_directory,
|
|
||||||
gchar **argv,
|
|
||||||
gchar **envp,
|
|
||||||
GSpawnFlags flags,
|
|
||||||
GSpawnChildSetupFunc child_setup,
|
|
||||||
gpointer user_data,
|
|
||||||
GPid *child_handle,
|
|
||||||
GError **error)
|
|
||||||
{
|
{
|
||||||
return g_spawn_async_with_pipes (working_directory,
|
return g_spawn_async_with_pipes (working_directory,
|
||||||
argv, envp,
|
argv,
|
||||||
flags,
|
envp,
|
||||||
child_setup,
|
flags,
|
||||||
user_data,
|
child_setup,
|
||||||
child_handle,
|
user_data,
|
||||||
NULL, NULL, NULL,
|
child_handle,
|
||||||
error);
|
standard_input,
|
||||||
|
standard_output,
|
||||||
|
standard_error,
|
||||||
|
error);
|
||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
g_spawn_sync (const gchar *working_directory,
|
g_spawn_sync_utf8 (const gchar *working_directory,
|
||||||
gchar **argv,
|
gchar **argv,
|
||||||
gchar **envp,
|
gchar **envp,
|
||||||
GSpawnFlags flags,
|
GSpawnFlags flags,
|
||||||
GSpawnChildSetupFunc child_setup,
|
GSpawnChildSetupFunc child_setup,
|
||||||
gpointer user_data,
|
gpointer user_data,
|
||||||
gchar **standard_output,
|
gchar **standard_output,
|
||||||
gchar **standard_error,
|
gchar **standard_error,
|
||||||
gint *exit_status,
|
gint *exit_status,
|
||||||
GError **error)
|
GError **error)
|
||||||
{
|
{
|
||||||
gchar *utf8_working_directory;
|
return g_spawn_sync (working_directory,
|
||||||
gchar **utf8_argv;
|
argv,
|
||||||
gchar **utf8_envp;
|
envp,
|
||||||
gboolean retval;
|
flags,
|
||||||
|
child_setup,
|
||||||
if (!setup_utf8_copies (working_directory, &utf8_working_directory,
|
user_data,
|
||||||
argv, &utf8_argv,
|
standard_output,
|
||||||
envp, &utf8_envp,
|
standard_error,
|
||||||
error))
|
exit_status,
|
||||||
return FALSE;
|
error);
|
||||||
|
|
||||||
retval = g_spawn_sync_utf8 (utf8_working_directory,
|
|
||||||
utf8_argv, utf8_envp,
|
|
||||||
flags, child_setup, user_data,
|
|
||||||
standard_output, standard_error, exit_status,
|
|
||||||
error);
|
|
||||||
|
|
||||||
free_utf8_copies (utf8_working_directory, utf8_argv, utf8_envp);
|
|
||||||
|
|
||||||
return retval;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
g_spawn_command_line_sync (const gchar *command_line,
|
g_spawn_command_line_sync_utf8 (const gchar *command_line,
|
||||||
gchar **standard_output,
|
gchar **standard_output,
|
||||||
gchar **standard_error,
|
gchar **standard_error,
|
||||||
gint *exit_status,
|
gint *exit_status,
|
||||||
GError **error)
|
GError **error)
|
||||||
{
|
{
|
||||||
gboolean retval;
|
return g_spawn_command_line_sync (command_line,
|
||||||
gchar **argv = 0;
|
standard_output,
|
||||||
|
standard_error,
|
||||||
g_return_val_if_fail (command_line != NULL, FALSE);
|
exit_status,
|
||||||
|
error);
|
||||||
if (!g_shell_parse_argv (command_line,
|
|
||||||
NULL, &argv,
|
|
||||||
error))
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
retval = g_spawn_sync (NULL,
|
|
||||||
argv,
|
|
||||||
NULL,
|
|
||||||
G_SPAWN_SEARCH_PATH,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
standard_output,
|
|
||||||
standard_error,
|
|
||||||
exit_status,
|
|
||||||
error);
|
|
||||||
g_strfreev (argv);
|
|
||||||
|
|
||||||
return retval;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
g_spawn_command_line_async (const gchar *command_line,
|
g_spawn_command_line_async_utf8 (const gchar *command_line,
|
||||||
GError **error)
|
GError **error)
|
||||||
{
|
{
|
||||||
gboolean retval;
|
return g_spawn_command_line_async (command_line, error);
|
||||||
gchar **argv = 0;
|
|
||||||
|
|
||||||
g_return_val_if_fail (command_line != NULL, FALSE);
|
|
||||||
|
|
||||||
if (!g_shell_parse_argv (command_line,
|
|
||||||
NULL, &argv,
|
|
||||||
error))
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
retval = g_spawn_async (NULL,
|
|
||||||
argv,
|
|
||||||
NULL,
|
|
||||||
G_SPAWN_SEARCH_PATH,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
error);
|
|
||||||
g_strfreev (argv);
|
|
||||||
|
|
||||||
return retval;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* !_WIN64 */
|
#endif
|
||||||
|
|
||||||
#endif /* !GSPAWN_HELPER */
|
|
||||||
|
@@ -249,59 +249,6 @@ gboolean g_spawn_check_exit_status (gint exit_status,
|
|||||||
GLIB_AVAILABLE_IN_ALL
|
GLIB_AVAILABLE_IN_ALL
|
||||||
void g_spawn_close_pid (GPid pid);
|
void g_spawn_close_pid (GPid pid);
|
||||||
|
|
||||||
#ifndef __GTK_DOC_IGNORE__
|
|
||||||
#ifdef G_OS_WIN32
|
|
||||||
#define g_spawn_async g_spawn_async_utf8
|
|
||||||
#define g_spawn_async_with_pipes g_spawn_async_with_pipes_utf8
|
|
||||||
#define g_spawn_sync g_spawn_sync_utf8
|
|
||||||
#define g_spawn_command_line_sync g_spawn_command_line_sync_utf8
|
|
||||||
#define g_spawn_command_line_async g_spawn_command_line_async_utf8
|
|
||||||
|
|
||||||
GLIB_AVAILABLE_IN_ALL
|
|
||||||
gboolean g_spawn_async_utf8 (const gchar *working_directory,
|
|
||||||
gchar **argv,
|
|
||||||
gchar **envp,
|
|
||||||
GSpawnFlags flags,
|
|
||||||
GSpawnChildSetupFunc child_setup,
|
|
||||||
gpointer user_data,
|
|
||||||
GPid *child_pid,
|
|
||||||
GError **error);
|
|
||||||
GLIB_AVAILABLE_IN_ALL
|
|
||||||
gboolean g_spawn_async_with_pipes_utf8 (const gchar *working_directory,
|
|
||||||
gchar **argv,
|
|
||||||
gchar **envp,
|
|
||||||
GSpawnFlags flags,
|
|
||||||
GSpawnChildSetupFunc child_setup,
|
|
||||||
gpointer user_data,
|
|
||||||
GPid *child_pid,
|
|
||||||
gint *standard_input,
|
|
||||||
gint *standard_output,
|
|
||||||
gint *standard_error,
|
|
||||||
GError **error);
|
|
||||||
GLIB_AVAILABLE_IN_ALL
|
|
||||||
gboolean g_spawn_sync_utf8 (const gchar *working_directory,
|
|
||||||
gchar **argv,
|
|
||||||
gchar **envp,
|
|
||||||
GSpawnFlags flags,
|
|
||||||
GSpawnChildSetupFunc child_setup,
|
|
||||||
gpointer user_data,
|
|
||||||
gchar **standard_output,
|
|
||||||
gchar **standard_error,
|
|
||||||
gint *exit_status,
|
|
||||||
GError **error);
|
|
||||||
|
|
||||||
GLIB_AVAILABLE_IN_ALL
|
|
||||||
gboolean g_spawn_command_line_sync_utf8 (const gchar *command_line,
|
|
||||||
gchar **standard_output,
|
|
||||||
gchar **standard_error,
|
|
||||||
gint *exit_status,
|
|
||||||
GError **error);
|
|
||||||
GLIB_AVAILABLE_IN_ALL
|
|
||||||
gboolean g_spawn_command_line_async_utf8 (const gchar *command_line,
|
|
||||||
GError **error);
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif /* __G_SPAWN_H__ */
|
#endif /* __G_SPAWN_H__ */
|
||||||
|
Reference in New Issue
Block a user