2008-09-25 Tor Lillqvist <tml@novell.com>
* glib/gspawn-win32.c (do_spawn_with_pipes) (do_spawn_directly):
Just ignore the child_setup function, never call it. The is no
situation in which it could be useful on Windows. Do print a
warning, like before.
* glib/gspawn.c (g_spawn_async_with_pipes): Corresponding change
in documentation.
svn path=/trunk/; revision=7540
2008-06-11 Tor Lillqvist <tml@novell.com>
* glib/gmain.c
* glib/gspawn.c: Clarify what a "child pid" is in the doc
comments.
svn path=/trunk/; revision=6995
2007-10-16 Matthias Clasen <mclasen@redhat.com>
* configure.in: Check for sys/resource.h
* glib/gspawn.c: Improve the fdwalk implementation on Linux
to only walk over actually open file descriptors. (#469231,
Lennart Poettering)
svn path=/trunk/; revision=5783
2006-12-15 Matthias Clasen <mclasen@redhat.com>
Fix#357585, Padraig O'Briain.
* configure.in: Check for fdwalk.
* glib/gspawn.c (do_exec): Use fdwalk() to close all
file descriptors.
* glib/gspawn.c (fdwalk): Fallback implementation of
fdwalk.
2005-12-02 Matthias Clasen <mclasen@redhat.com>
* glib/gspawn.c:
* configure.in: Remove support for Solaris threads.
(#136971, Sebastian Wilhelmi, patch by Andrew Paprocki)
2005-08-25 Tor Lillqvist <tml@novell.com>
Make also the g_spawn*() functions take parameters in the GLib
file name encoding, i.e. UTF-8, on Windows. Has no impact on Unix
API or ABI. Like the other GLib API that was earlier changed to
use UTF-8 on Windows, the names of the functions that take UTF-8
have _utf8 suffixes added by using preprocessor macros in the
header file. The old names are kept for functions with the old
behaviour, taking parameters in the system codepage, for DLL ABI
stability.
* glib/gspawn.h: On Win32 add the suffix _utf8 to the names of the
g_spawn*() functions.
* glib/gspawn-win32.c: Use wide-char API on NT-based
Windows. Convert parameters from UTF-8 to wide chars (NT) or
system codepage (Win9x) and call the C library _wspawn*() or
spawn*() functions respectvely. Add DLL ABI stability versions
that take parameters in the system codepage.
* glib/gspawn-win32-helper.c: On NT-based Windows use the
wide-char versions of argv and envp, and use wide-char API to
change directory and spawn the program to run. Remove the verbose
debugging output, it was too complex to modify for the wide-char
features. (Just add temporary debugging printouts if needed, no
need to have them permanently in the source.)
* glib/gspawn.c: Corresponding documentation updates.
* glib/glib.symbols: Corresponding changes: Mark the ABI stability
symbols as PRIVATE, add the new _utf8-suffixed ones.
2005-05-20 Federico Mena Quintero <federico@ximian.com>
Merged from glib-2-6:
* glib/gspawn.c (g_spawn_command_line_sync): Clarify the meaning
of exit_status(); it's not the return code from the child, but
rather the waitpid() status.
2005-03-13 Matthias Clasen <mclasen@redhat.com>
Make PLT-reduction work with gcc4, and don't include
everything in galias.h:
* glib/glib.symbols: Group symbols by header and source file.
* glib/makegalias.pl: Protect definitions by the same
preprocessor symbols used to guard the headers. Move
the alias declarations to a separate file which is
produced when calling makegalias.pl -def
* glib/Makefile.am (galiasdef.c): Add a rule to generate this
file.
* glib/*.c: Include galias.h after the other GLib headers,
include galiasdef.c at the bottom.
2004-11-27 Matthias Clasen <mclasen@redhat.com>
* glib/gspawn.c (g_spawn_async_with_pipes): Update the @flags
documentation with references to GChildWatch and
g_spawn_close_pid(). (#136255, noted by Owen Taylor)
Sun Mar 14 13:23:36 2004 Owen Taylor <otaylor@redhat.com>
* glib/gspawn.c: Use fork1() not fork for
G_THREADS_IMPL_SOLARIS. (#136971, Sebastian Wilhelmi)
Mon Mar 1 15:39:57 2004 Owen Taylor <otaylor@redhat.com>
Patch from J. Ali Harlow
* configure.in: Use void * not HANDLE for GPid on win32.
* glib/gspawn.[ch] glib/gspawn-win32.[ch] glib/glib.def:
Add g_spawn_close_pid().
* glib/gspawn.[ch]: Make g_spawn functions take
GPid * instead if int * (GPid == int on unix, will
produce compile warnings until fixed on Win32.)
* tests/child-test.c: Make the test a little more
inappropriately verbose.
* glib/gmain.c: Add some documentation warnings about
not closing @pid while the source is active.
Mon Jun 2 14:18:21 2003 Owen Taylor <otaylor@redhat.com>
Patch from Jeffrey Stedfast <fejj@ximian.com> (#104825)
* glib/gspawn.c (read_data): Don't read() into '&buf', while this
is technically okay - it is clearer as just 'buf'.
(write_all): New helper function that handles write() interrupts.
(write_err_and_exit): Use write_all() instead of write().
(fork_exec_with_pipes): Same here.
2003-02-04 Tor Lillqvist <tml@iki.fi>
* glib/giowin32.c (g_io_channel_unix_new): Fix typo: Should be
SOCKET_ERROR, not SO_ERROR. Noticed by Daniel Kaufmann.
Merge from stable branch:
Fix for bug #104014, reported by Alex Shaduri:
* glib/gspawn-win32.c (protect_argv): New function. Add
double-quotes around argv elements that need it, and escape
embedded double-quotes with backslash.
(do_spawn_with_pipes) Call protect_argv().
* glib/gspawn-win32-helper.c (WinMain): Call protect_argv().
* glib/gspawn.c (g_spawn_async_with_pipes): Document argument
vector vs. command line details on Win32.
(g_spawn_command_line_sync): Improve documentation about
backslashes in the command line on Windows.
2002-11-18 Tor Lillqvist <tml@iki.fi>
* glib/gspawn-win32.c (do_spawn_with_pipes): Do handle
G_SPAWN_DO_NOT_REAP_CHILD after all, similarily as on Unix. If the
flag is not set, don't call DuplicateHandle() on the handle
returned by the helper process, and set the "child pid" returned
to the caller to zero. Close the handle to the helper process in
all cases.
* glib/gspawn.c (g_spawn_async_with_pipes): Document Windows
behaviour of G_SPAWN_DO_NOT_REAP_CHILD.
2002-11-17 Tor Lillqvist <tml@iki.fi>
* glib/gspawn-win32.c (g_spawn_async_with_pipes): Ignore the
G_SPAWN_DO_NOT_REAP_CHILD flag, can't be meaninfully implemented
on Windows, at least not now. Always pass dont_wait as TRUE to
do_spawn_with_pipes(). The semantics of the dont_wait parameter is
very different from the semantics of the intermediate_child
parameter to fork_exec_with_pipes() in the Unix version. This
fixes a serious bug, g_spawn_async() in fact behaved
synchronously.
(do_spawn_with_pipes, do_spawn): Rename from
fork_exec_with_pipes() and do_exec(), those names were from the
Unix bersion, and misleading.
(close_and_invalidate): Don't try to close invalid fds.
* glib/gspawn.c (g_spawn_async_with_pipes): Add warning about
Windows behaviour. There is no fork(), so the child_setup()
function is in fact called in the parent.
* glib/gspawn-win32-helper.c (WinMain): Insert spaces in argv
debugging output.
* tests/spawn-test-win32-gui.c: New file. Test program to be
linked as a GUI application. Behaves differently depending on how
invoked (by spawn-test).
* tests/spawn-test.c (run_tests): On Win32, run the
spawn-test-win32-gui program, too, in several ways, synchronously
and asynchronously.
* tests/Makefile.am: Corresponding change.
2002-09-23 Arvind Samptur <arvind.samptur@wipro.com>
* glib/gspawn.c (fork_exec_with_pipes) : when the child fails
we need to reap it to avoid a zombie. This would
happen in case of g_spawn_sync. Fixes#92658
Mon May 20 15:35:59 2002 Owen Taylor <otaylor@redhat.com>
* glib/gfileutils.c (get_contents_regfile): Fix double
close of file descriptor on error. (#82139, Wayne Schuller)
* glib/gspawn.c (close_and_invalidate): Don't close
fd's that have already been closed. (Fix from Michael
Meeks, #81959)
* glib/giochannel.c (g_io_channel_close): If not flushing,
dump the contents of the write buffers, so we won't try
to write them to an invalid fd later. (Patch from Ron Steinke,
fixing #78290, Andreas Persenius.)
2002-04-19 Tor Lillqvist <tml@iki.fi>
* 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.
Sun Feb 17 11:37:06 2002 Owen Taylor <otaylor@redhat.com>
* 1.3.14
* glib/glibintl.h: Error out of config.h wasn't included
rather than including it, since config.h must be the
first thing included.
* glib/gconvert.c glib/gmarkup.c glib/gshell.c glib/gspawn.c
glib/gunibreak.c glib/gunidecomp.c glib/guniprop.c:
Include config.h as the first thing. (#71704, Morten
Welinder)
* glib/gshell.c, glib/gspawn.c, glib/gspawn-win32.c, glib/gerror.c,
glib/gfileutils.c, glib/ghash.c, glib/gmain.c, glib/gasyncqueue.c,
glib/gtree.c: Minor markup fixes.
* glib/tmpl/caches.sgml: GCs are cached by GTK, not by GDK.
2001-12-14 Havoc Pennington <hp@pobox.com>
* glib/gshell.c (g_shell_parse_argv): note on how to free returned
vector
2001-12-08 Havoc Pennington <hp@pobox.com>
* glib/gspawn.c (fork_exec_with_pipes): include argv[0] in error
message about failure to exec