2002-11-21 Tor Lillqvist <tml@iki.fi>
* config.h.win32.in: Update to match what is currently produced by
autotools.
* configure.in: Remove superfluous spaces on two shell variable
assignment lines. Don't define HAVE_GOOD_PRINTF as 0 if we don't
have a good printf, it is tested with #ifdef.
* glib/glib.def: Add new functions.
* glib/Makefile.am: If !HAVE_GOOD_PRINTF, add libtio.la to LIBADD
and DEPENDENCIES.
* glib/glib.rc.in: Hardcode 2.0 in the names, as that is what the
Makefile.am does.
positional parameters: (#79488)
* glib/gstrfuncs.c:
* glib/gspawn-win32.c:
* glib/gscanner.c:
* glib/gconvert.c:
* glib/gbacktrace.c: Use _g_printf wrappers.
* glib/gutils.c (g_vsnprintf): Simplify, since we can assume C99
snprintf semantics now.
* glib/gmessages.c (printf_string_upper_bound): No longer needed,
since we can assume C99 snprintf semantics now.
(g_logv): Simplify.
* acinclude.m4 (AC_FUNC_PRINTF_UNIX98): New macro to check wether
printf supports SUS positional parameters.
* configure.in: New option --enable-included-printf to force
compilation of trio; otherwise trio is compiled if the system
printf misses either C99 snprintf semantics of SUS positional
parameters.
* glib/Makefile.am (SUBDIRS): Conditionally compile trio.
(libglib_2_0_la_SOURCES): Add gprintf.c and gprintfint.h.
(glibsubinclude_HEADERS): Add gprintf.h.
* glib/gprintfint.h: New private wrapping either system printf
or trio printf variants in _g_printf wrappers for use inside glib.
* glib/gprintf.h: New public header declaring g_printf variants.
* glib/gprintf.c: Corresponding implementations.
* glib/trio/*: New directory, containing the trio-1.9 sources.
* glib/tmpl/string_utils.sgml: Add note on including gprintf.h,
move some docs inline.
* glib/glib-sections.txt: Add g_printf, g_vprintf, g_fprintf,
g_vfprintf, g_sprintf, g_vsprintf.
* glib/gmessages.h (g_return_if_fail):
(g_return_val_if_fail): Use G_LIKELY. (#69022)
* glib/gmacros.h (G_LIKELY):
(G_UNLIKELY): New macros for hinting the compiler about the
expected result of expressions. For gcc 3.x, define these
using __builtin_expect. (#69022)
* glib/tmpl/macros_misc.sgml: Document G_LIKELY, G_UNLIKELY.
* glib/glib-sections.txt: Add G_LIKELY, G_UNLIKELY.
Tue Nov 19 14:38:18 2002 Owen Taylor <otaylor@redhat.com>
* glib/gstrfuncs.c (g_ascii_strtoull): Fix
strtull/strtoull type in docs (#99012, Morten
Welinder.) Add copyright information for code
taken from GNU libc.
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-18 Tor Lillqvist <tml@iki.fi>
[Win32] Fix the asynchronous g_spawn* to return the process handle
of the started program properly. (Note: not the process id. The
spawn*() functions in the C runtime return the created process's
handle. There doesn't seem to be any way to get the process id of
a child process if you have the handle. But then, the process
handle usually is more useful anyway.)
* glib/gspawn-win32-helper.c (WinMain): If the spawning of the
child process succeeded, and if asynchronous spawn (P_NOWAIT),
write the result handle up to the parent process, waiting to read
it in do_spawn_with_pipes().
* glib/gspawn-win32.c (do_spawn): Use return value from spawning
the helper. If it is -1 the helper wasn't found or couldn't be run
for some reason. Otherwise it is the helper's process handle.
(g_spawn_async_with_pipes): Pass the child_pid parameter on to
do_spawn_with_pipes().
(do_spawn_with_pipes): Take also a child_pid parameter. If
do_spawn() returned -1, fail immediately. Otherwise make the
handle passed to us by the helper process into a handle valid in
this process by calling DuplicateHandle().
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.
Thu Nov 7 19:32:26 2002 Owen Taylor <otaylor@redhat.com>
* glib/gutils.[ch] (g_set/get_application_name):
Patch from Havoc Pennington to add functions for
setting and getting a human readable application
name.
* configure.in: Up to version 2.1.3, since we'll
need to depend on last addition for GTK+.
Mon Nov 4 14:41:48 2002 Owen Taylor <otaylor@redhat.com>
* glib/gbsearcharray.c: Include config.h
so DISABLE_MEMPOOLS actually has an effect.
(#96437, Morten Welinder)
* tests/uri-test.c: Include <config.h>
Mon Nov 4 14:42:36 2002 Owen Taylor <otaylor@redhat.com>
* gtype.c gsignal.c gvaluearray.c: Include config.h
so DISABLE_MEMPOOLS actually has an effect.
(#96437, Morten Welinder)
* gsignal.c: Conditionalize definition of g_handler_ts
on DISABLE_MEM_POOLS (#96437)
Mon Nov 4 14:45:24 2002 Owen Taylor <otaylor@redhat.com>
* gthread-posix.c gthread-solaris.c: Include <config.h>
2002-11-02 Daniel Elstner <daniel.elstner@gmx.net>
* glib/giochannel.c (g_io_channel_write_chars): Fix left_len calculation in the from UTF-8 to UTF-8 case: left_len should be the number of bytes left in the input buffer rather than channel->write_buf. (#96373)
2002-10-27 Tor Lillqvist <tml@iki.fi>
* configure.in (G_MODULE_LDFLAGS): Don't set on Win32, only causes
trouble.
* glib/gmain.c (g_poll): Fix for bug reported by Herman Bloggs
(http://mail.gnome.org/archives/gtk-devel-list/2002-October/msg00101.html)
and others. We waited for events only for GPollFDs whose events
field had G_IO_IN set. We need to wait also for events for
GPollFDs that have just G_IO_OUT set. Non-blocking sockets in the
process of being connect()ed are one such case. Also silence a
couple of gcc warnings.
* gtype.c (g_type_interface_prerequisites): Report only the most
specific instantiatable prerequisite, filter out all supertypes of
this one (the supertypes are added to the prerequisites array for
technical reasons).
Fri Oct 18 13:41:30 2002 Manish Singh <yosh@gimp.org>
* glib/giochannel.c (g_io_channel_read_line_backend): avoid
creating negative values out of unsigned values using MAX,
check to see if the result would be positive before doing
the calculation.
Tue Oct 15 15:28:47 2002 Manish Singh <yosh@gimp.org>
* tests/iochannel-test.c: use gsize instead of int where appropriate
(64-bit cleanliness fix). Removed leftover line_term cruft.
Sat Oct 12 22:02:32 2002 Tim Janik <timj@gtk.org>
* merged up from 2.0:
* testgobject.c: test creation of new fundamental types.
* gtype.c (g_type_fundamental_next), (type_node_fundamental_new_W):
account for static_fundamental_next storing non-shifted fundamental
IDs. this fixes g_type_fundamental_next() not returning a new usable
fundamental ID.
Sat Oct 12 21:30:41 2002 Tim Janik <timj@gtk.org>
* merged up from glib-2-0:
* glib/gstrfuncs.c (g_ascii_strtod): fix comment.
(g_ascii_strtoull): new function, acting like strtoull(3) in the C
locale.
* glib/gscanner.[hc]: fix 32bit issues with integer parsing and
support storing 64bit values in GTokenValue by
using g_ascii_strtoull().
Thu Oct 10 23:27:02 2002 Tim Janik <timj@gtk.org>
* glib/gscanner.c (g_scanner_msg_handler): if input_name is NULL,
print out "<memory>" instead of completely skipping input specification
and thusly loosing error line information.
2002-09-29 Tor Lillqvist <tml@iki.fi>
* configure.in: Instead of forcing -fnative-struct into CFLAGS
when using gcc for Win32, check for gcc version 3.x which uses
-mms-bitfields instead. Also check if either of these switches is
actually available at all, and warn if not. Thanks to Soren
Andersen for the inspiration.
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