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
Wed Jun 20 12:00:54 2001 Owen Taylor <otaylor@redhat.com>
Changes for 64-bit cleanliness, loosely based on patch
from Mark Murnane.
* gconvert.c (g_convert/g_convert_with_fallback): Remove
workarounds for since-fixed GNU libc bugs. Minor
doc fix.
* gconvert.[ch]: Change gint to gsize/gssize as
appropriate.
* gconvert.c (g_locale/filename_to/from_utf8): Fix incorrect
computation of bytes_read / bytes_written.
* gfileutils.[ch] (g_file_get_contents): Make length
out parameter 'gsize *len'.
* ghook.c (g_hook_compare_ids): Don't compare a
and b as 'a - b'.
* gmacros.h (GSIZE_TO_POINTER): Add GPOINTER_TO_SIZE,
GSIZE_TO_POINTER.
* gmain.c (g_timeout_prepare): Rewrite to avoid
overflows. (Fixes bug when system clock skews
backwards more than 24 days.)
* gmarkup.[ch]: Make lengths passed to callbacks
gsize, length for g_markup_parse-context_parse(),
g_markup_escape_text() gssize.
* gmessages.[ch] (g_printf_string_upper_bound): Change
return value to gsize.
* gmessages.c (printf_string_upper_bound): Remove
a ridiculous use of 'inline' on a 300 line function.
* gstring.[ch]: Represent size of string as a gsize,
not gint. Make parameters to functions take gsize,
or gssize where -1 is allowed.
* gstring.c (g_string_erase): Make
g_string_erase (string, pos, -1) a synonym for
g_string_truncate for consistency with other G*
APIs.
* gstrfuncs.[ch]: Make all functions taking a string
length, take a gsize, or gssize if -1 is allowed.
(g_strstr_len, g_strrstr_len). Also fix some boundary
conditions in g_str[r]str[_len].
* gutf8.c tests/unicode-encoding.c: Make parameters that
are byte lengths gsize, gssize as appropriate. Make
character offsets, other counts, glong.
* gasyncqueue.c gcompletion.c
timeloop.c timeloop-basic.c gutils.c gspawn.c.
Small 64 bit cleanliness fixups.
* glist.c (g_list_sort2, g_list_sort_real): Fix functions
that should have been static.
* gdate.c (g_date_fill_parse_tokens): Fix extra
declaration that was shadowing another.
* tests/module-test.c: Include string.h
Mon Jun 18 15:43:29 2001 Owen Taylor <otaylor@redhat.com>
* gutf8.c (g_get_charset): Make argument
G_CONST_RETURN char **.
2001-06-08 Havoc Pennington <hp@redhat.com>
* gspawn.c: support G_SPAWN_FILE_AND_ARGV_ZERO specifying that
the vector passed in to g_spawn_* contains a filename to
execute in argv[0] then the actual argv begins at argv + 1.
Kind of a lame hack, but this isn't something you commonly want
to do, and avoids adding more function arguments.
Mon Jan 15 21:12:49 2001 Owen Taylor <otaylor@redhat.com>
* configure.in acconfig.h glibintl.h gutils.c
po/{Makefile.in.in,POTFILES.in,po2tbl.in}: Add gettext
support.
* glib-gettext.m4 acinclude.m4: Clean up the GTK+ gettext macros
some more and put them in this file, though they also need
to be included in acinclude.m4 due to the brokeness of
aclocal.
* gspawn.c gspawn-win32.c gutf8.c gconvert.c gfileutils.c
gshell.c: Remove dummy _() #defines, include glibintl.m4.
2000-10-09 Havoc Pennington <hp@redhat.com>
* Makefile.am, tests/Makefile.am: Add new files.
* tests/spawn-test.c, tests/shell-test.c: new tests for
the shell/spawn stuff
* gutils.c (g_find_program_in_path): convert a relative
program name into an absolute pathname to an existing
executable
* gspawn.h, gspawn.c: New fork/exec API
* gshell.h, gshell.c: Shell-related utilities, at the moment
simply routines to parse argv and quote/unquote strings
* guniprop.c (g_unichar_isspace): Return TRUE for the
ASCII space characters isspace() returns TRUE for.
* gfileutils.c (g_file_get_contents): Convenience function
to slurp entire file into a string and return it. Partially
written by Joel Becker.
(g_file_test): file test function