diff --git a/ChangeLog b/ChangeLog index 5a27ce0b2..acf6406b8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2002-04-19 Tor Lillqvist + + * glib/gspawn.c (g_spawn_command_line_sync): Add Windows-specific + note to the gtk-doc comment. + + * glib/gspawn-win32.c: Remove the copy-pasted gtk-doc comment + blocks. It's enough to have them in gspawn.c. + 2002-04-18 Sebastian Wilhelmi * gthread/gthread-impl.c (g_thread_init): Fixed typo. (#78985) diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 5a27ce0b2..acf6406b8 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,11 @@ +2002-04-19 Tor Lillqvist + + * glib/gspawn.c (g_spawn_command_line_sync): Add Windows-specific + note to the gtk-doc comment. + + * glib/gspawn-win32.c: Remove the copy-pasted gtk-doc comment + blocks. It's enough to have them in gspawn.c. + 2002-04-18 Sebastian Wilhelmi * gthread/gthread-impl.c (g_thread_init): Fixed typo. (#78985) diff --git a/ChangeLog.pre-2-12 b/ChangeLog.pre-2-12 index 5a27ce0b2..acf6406b8 100644 --- a/ChangeLog.pre-2-12 +++ b/ChangeLog.pre-2-12 @@ -1,3 +1,11 @@ +2002-04-19 Tor Lillqvist + + * glib/gspawn.c (g_spawn_command_line_sync): Add Windows-specific + note to the gtk-doc comment. + + * glib/gspawn-win32.c: Remove the copy-pasted gtk-doc comment + blocks. It's enough to have them in gspawn.c. + 2002-04-18 Sebastian Wilhelmi * gthread/gthread-impl.c (g_thread_init): Fixed typo. (#78985) diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 5a27ce0b2..acf6406b8 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,11 @@ +2002-04-19 Tor Lillqvist + + * glib/gspawn.c (g_spawn_command_line_sync): Add Windows-specific + note to the gtk-doc comment. + + * glib/gspawn-win32.c: Remove the copy-pasted gtk-doc comment + blocks. It's enough to have them in gspawn.c. + 2002-04-18 Sebastian Wilhelmi * gthread/gthread-impl.c (g_thread_init): Fixed typo. (#78985) diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 5a27ce0b2..acf6406b8 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,11 @@ +2002-04-19 Tor Lillqvist + + * glib/gspawn.c (g_spawn_command_line_sync): Add Windows-specific + note to the gtk-doc comment. + + * glib/gspawn-win32.c: Remove the copy-pasted gtk-doc comment + blocks. It's enough to have them in gspawn.c. + 2002-04-18 Sebastian Wilhelmi * gthread/gthread-impl.c (g_thread_init): Fixed typo. (#78985) diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 5a27ce0b2..acf6406b8 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,11 @@ +2002-04-19 Tor Lillqvist + + * glib/gspawn.c (g_spawn_command_line_sync): Add Windows-specific + note to the gtk-doc comment. + + * glib/gspawn-win32.c: Remove the copy-pasted gtk-doc comment + blocks. It's enough to have them in gspawn.c. + 2002-04-18 Sebastian Wilhelmi * gthread/gthread-impl.c (g_thread_init): Fixed typo. (#78985) diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 5a27ce0b2..acf6406b8 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,11 @@ +2002-04-19 Tor Lillqvist + + * glib/gspawn.c (g_spawn_command_line_sync): Add Windows-specific + note to the gtk-doc comment. + + * glib/gspawn-win32.c: Remove the copy-pasted gtk-doc comment + blocks. It's enough to have them in gspawn.c. + 2002-04-18 Sebastian Wilhelmi * gthread/gthread-impl.c (g_thread_init): Fixed typo. (#78985) diff --git a/glib/gspawn-win32.c b/glib/gspawn-win32.c index 2b851857c..6f6d8fc5e 100644 --- a/glib/gspawn-win32.c +++ b/glib/gspawn-win32.c @@ -124,22 +124,6 @@ g_spawn_error_quark (void) return quark; } -/** - * g_spawn_async: - * @working_directory: child's current working directory, or %NULL to inherit parent's - * @argv: child's argument vector - * @envp: child's environment, or %NULL to inherit parent's - * @flags: flags from #GSpawnFlags - * @child_setup: function to run in the child just before exec() - * @user_data: user data for @child_setup - * @child_pid: return location for child process ID, or %NULL - * @error: return location for error - * - * See g_spawn_async_with_pipes() for a full description; this function - * simply calls the g_spawn_async_with_pipes() without any pipes. - * - * Return value: %TRUE on success, %FALSE if error is set - **/ gboolean g_spawn_async (const gchar *working_directory, gchar **argv, @@ -219,32 +203,6 @@ read_data (GString *str, return READ_OK; } -/** - * g_spawn_sync: - * @working_directory: child's current working directory, or %NULL to inherit parent's - * @argv: child's argument vector - * @envp: child's environment, or %NULL to inherit parent's - * @flags: flags from #GSpawnFlags - * @child_setup: function to run in the child just before exec() - * @user_data: user data for @child_setup - * @standard_output: return location for child output - * @standard_error: return location for child error messages - * @exit_status: child exit status, as returned by waitpid() - * @error: return location for error - * - * Executes a child synchronously (waits for the child to exit before returning). - * All output from the child is stored in @standard_output and @standard_error, - * if those parameters are non-%NULL. If @exit_status is non-%NULL, the exit status - * of the child is stored there as it would be returned by waitpid(); standard UNIX - * macros such as WIFEXITED() and WEXITSTATUS() must be used to evaluate the - * exit status. If an error occurs, no data is returned in @standard_output, - * @standard_error, or @exit_status. - * - * This function calls g_spawn_async_with_pipes() internally; see that function - * for full details on the other parameters. - * - * Return value: %TRUE on success, %FALSE if an error was set. - **/ gboolean g_spawn_sync (const gchar *working_directory, gchar **argv, @@ -455,83 +413,6 @@ g_spawn_sync (const gchar *working_directory, } } -/** - * g_spawn_async_with_pipes: - * @working_directory: child's current working directory, or %NULL to inherit parent's - * @argv: child's argument vector - * @envp: child's environment, or %NULL to inherit parent's - * @flags: flags from #GSpawnFlags - * @child_setup: function to run in the child just before exec() - * @user_data: user data for @child_setup - * @child_pid: return location for child process ID, or %NULL - * @standard_input: return location for file descriptor to write to child's stdin, or %NULL - * @standard_output: return location for file descriptor to read child's stdout, or %NULL - * @standard_error: return location for file descriptor to read child's stderr, or %NULL - * @error: return location for error - * - * Executes a child program asynchronously (your program will not - * block waiting for the child to exit). The child program is - * specified by the only argument that must be provided, @argv. @argv - * should be a %NULL-terminated array of strings, to be passed as the - * argument vector for the child. The first string in @argv is of - * course the name of the program to execute. By default, the name of - * the program must be a full path; the PATH shell variable will only - * be searched if you pass the %G_SPAWN_SEARCH_PATH flag. - * - * @envp is a %NULL-terminated array of strings, where each string - * has the form KEY=VALUE. This will become - * the child's environment. If @envp is %NULL, the child inherits its - * parent's environment. - * - * @flags should be the bitwise OR of any flags you want to affect the - * function's behavior. The %G_SPAWN_DO_NOT_REAP_CHILD means that the - * child will not be automatically reaped; you must call - * waitpid() or handle %SIGCHLD yourself, or the - * child will become a zombie. %G_SPAWN_LEAVE_DESCRIPTORS_OPEN means - * that the parent's open file descriptors will be inherited by the child; - * otherwise all descriptors except stdin/stdout/stderr will be closed before - * calling exec() in the child. %G_SPAWN_SEARCH_PATH - * means that argv[0] need not be an absolute path, it - * will be looked for in the user's PATH. - * %G_SPAWN_STDOUT_TO_DEV_NULL means that the child's standard output - * will be discarded, instead of going to the same location as the parent's - * standard output. %G_SPAWN_STDERR_TO_DEV_NULL means that the child's - * standard error will be discarded. %G_SPAWN_CHILD_INHERITS_STDIN means that - * the child will inherit the parent's standard input (by default, - * the child's standard input is attached to /dev/null). - * - * @child_setup and @user_data are a function and user data to be - * called in the child after GLib has performed all the setup it plans - * to perform (including creating pipes, closing file descriptors, - * etc.) but before calling exec(). That is, @child_setup - * is called just before calling exec() in the child. - * Obviously actions taken in this function will only affect the child, not - * the parent. - * - * If non-%NULL, @child_pid will be filled with the child's process - * ID. You can use the process ID to send signals to the child, or - * to waitpid() if you specified the - * %G_SPAWN_DO_NOT_REAP_CHILD flag. - * - * If non-%NULL, the @standard_input, @standard_output, @standard_error - * locations will be filled with file descriptors for writing to the child's - * standard input or reading from its standard output or standard error. - * The caller of g_spawn_async_with_pipes() must close these file descriptors - * when they are no longer in use. If these parameters are %NULL, the - * corresponding pipe won't be created. - * - * @error can be %NULL to ignore errors, or non-%NULL to report errors. - * If an error is set, the function returns %FALSE. Errors - * are reported even if they occur in the child (for example if the - * executable in argv[0] is not found). Typically - * the message field of returned errors should be displayed - * to users. Possible errors are those from the #G_SPAWN_ERROR domain. - * - * If an error occurs, @child_pid, @standard_input, @standard_output, - * and @standard_error will not be filled with valid values. - * - * Return value: %TRUE on success, %FALSE if an error was set - **/ gboolean g_spawn_async_with_pipes (const gchar *working_directory, gchar **argv, @@ -572,25 +453,6 @@ g_spawn_async_with_pipes (const gchar *working_directory, error); } -/** - * g_spawn_command_line_sync: - * @command_line: a command line - * @standard_output: return location for child output - * @standard_error: return location for child errors - * @exit_status: return location for child exit status - * @error: return location for errors - * - * A simple version of g_spawn_sync() with little-used parameters - * removed, taking a command line instead of an argument vector. See - * g_spawn_sync() for full details. @command_line will be parsed by - * g_shell_parse_argv(). Unlike g_spawn_sync(), the %G_SPAWN_SEARCH_PATH flag - * is enabled. Note that %G_SPAWN_SEARCH_PATH can have security - * implications, so consider using g_spawn_sync() directly if - * appropriate. Possible errors are those from g_spawn_sync() and those - * from g_shell_parse_argv(). - * - * Return value: %TRUE on success, %FALSE if an error was set - **/ gboolean g_spawn_command_line_sync (const gchar *command_line, gchar **standard_output, @@ -623,21 +485,6 @@ g_spawn_command_line_sync (const gchar *command_line, return retval; } -/** - * g_spawn_command_line_async: - * @command_line: a command line - * @error: return location for errors - * - * A simple version of g_spawn_async() that parses a command line with - * g_shell_parse_argv() and passes it to g_spawn_async(). Runs a - * command line in the background. Unlike g_spawn_async(), the - * %G_SPAWN_SEARCH_PATH flag is enabled, other flags are not. Note - * that %G_SPAWN_SEARCH_PATH can have security implications, so - * consider using g_spawn_async() directly if appropriate. Possible - * errors are those from g_shell_parse_argv() and g_spawn_async(). - * - * Return value: %TRUE on success, %FALSE if error is set. - **/ gboolean g_spawn_command_line_async (const gchar *command_line, GError **error) diff --git a/glib/gspawn.c b/glib/gspawn.c index fd8ea60fe..33960e07c 100644 --- a/glib/gspawn.c +++ b/glib/gspawn.c @@ -545,6 +545,14 @@ g_spawn_async_with_pipes (const gchar *working_directory, * appropriate. Possible errors are those from g_spawn_sync() and those * from g_shell_parse_argv(). * + * On Windows, please note the implications of g_shell_parse_argv() + * parsing @command_line. Space is a separator, and backslashes are + * special. Thus you cannot simply pass a @command_line consisting of + * a canonical Windows path, like "c:\\program files\\app\\app.exe", + * as the backslashes will be eaten, and the space will act as a + * separator. You need to enclose the path with single quotes, like + * "'c:\\program files\\app\\app.exe'". + * * Return value: %TRUE on success, %FALSE if an error was set **/ gboolean @@ -592,6 +600,8 @@ g_spawn_command_line_sync (const gchar *command_line, * consider using g_spawn_async() directly if appropriate. Possible * errors are those from g_shell_parse_argv() and g_spawn_async(). * + * The same concerns on Windows apply as for g_spawn_command_line_sync(). + * * Return value: %TRUE on success, %FALSE if error is set. **/ gboolean