2000-12-06 Havoc Pennington <hp@pobox.com>
* tests/strfunc-test.c (main): add g_strdupv test
* gstrfuncs.c (g_strdupv): Add a function to copy
an array of strings
Tue Dec 5 12:23:04 2000 Owen Taylor <otaylor@redhat.com>
* gmain.[hc]: Major change in API for creating sources
to handle multiple main loops (GMainContext *).
GSources are now exposed as GSource * and implemented
with structure derivation.
* giochannel.[ch]: Changed vtable for GIOChannel to correspond
to the new mainloop API, add g_io_channel_create_watch().
* gtypes.h: Move GTimeVal here.
* gthread.h: Remove gmain.h include to avoid circularity.
* giounix.c: Update for new GMain API.
* giowin32.c: Update for new GMain API. (No check for
proper compilation or working.)
* timeloop.c timeloop-basic.c: A benchmarking program for
the main loop comparing the main loop against a
hand-written (timeloop-basic.c) variant.
* tests/mainloop-test.c: New torture test of mainloop.
* docs/Changes-2.0.txt: Started. Added text about
changes to GMain.
* gmain.c (g_main_add_poll_unlocked): Initial fd->revents
to zero. (#8482, Benjamin Kahn)
2000-11-21 Havoc Pennington <hp@pobox.com>
* gmacros.h: Provide G_CONST_RETURN which is 'const' by default,
and nothing when G_DISABLE_CONST_RETURNS is defined.
2000-11-29 Havoc Pennington <hp@redhat.com>
* gunidecomp.c (COMBINING_CLASS): s/UNICODE_LAST_CHAR/G_UNICODE_LAST_CHAR/
* gunichartables.h: Update for data in Unicode 3.0.1,
and include tables for line break properties
* gunidecomp.h: Ditto
* gunicode.h (GUnicodeBreakType): Enum for line break properties
(g_unichar_break_type): Get the break property for a char
* gunibreak.h: Autogenerated line break property tables
* gunibreak.c (g_unichar_break_type): added
* Makefile.am (EXTRA_DIST): dist gen-unicode-tables.pl
* Makefile.am (libglib_1_3_la_SOURCES): Add gunibreak.h, gunibreak.c
* gen-unicode-tables.pl: Include the script to update the unicode
char tables
* gmarkup.c: Fix warnings.
* guniprop.c, gunidecomp.c: Make warnings go away by using
GPOINTER_TO_INT() instead of (int).
* gcompletion.[ch]: Add g_completion_set_compare(),
to allow (for example) using case-insensitive completion.
* gobject/gsignal.c: Fix warnings about possible use of uninitialized
variables, and fix logic that would leave 'node' unset in cases
that it might be used in.
* gobject/glib-genmarshal.c: Fix warning about printf format.
2000-11-28 Tor Lillqvist <tml@iki.fi>
Patches by Hans Breuer:
* gspawn-win32.c: Move the code for gspawn-win32-helper to its own
file.
* makefile.{mingw,msc}.in: Change accordingly.
* gspawn-win32-helper.c: New file.
* Makefile.am (EXTRA_DIST): Add it.
* gmarkup.c (find_current_text_end): Fix assertion not to check an
uninitialised variable.
* gboxed.c: Include <string.h> for memset ().
2000-11-28 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gthread-impl.c: Revamped errorcheck mutexes and added errorcheck
cond_wait() and cond_timed_wait() funtions. This makes he whole
thing work. Now we only show the location of the locking/unlocking
for -DG_ERRORCHECK_MUTEXES and not the name of the mutex.
* gthread.c: Set the thread data before locking the mutex, because
the locking call might use g_thread_self ().
* gthread.h: Do only show the location of the locking/unlocking
for -DG_ERRORCHECK_MUTEXES and not the name of the mutex. Add the
errorcheck capability for g_cond_wait and g_cond_timed_wait as
well.
2000-11-21 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Add a surrogate for thread priorities using PID
niceness for systems with no thread priorities and different PIDs
for threads of the same process (most notably: Linux). Define
G_THREAD_USE_PID_SURROGATE in that case, as used by
gthread-posix.c. Also make the system thread bigger by
sizeof (long) to contain the thread's PID.
* gfileutils.c: Include stdlib.h for mkstemp prototype.
* gthread.c: Add priority range checks to the affected functions.
* gthreadpool.c: Remove unused variable.
* gthread-impl.c, gthread-posix.c, gthread-solaris.c: Removed
g_thread_map_priority function in favour of the
g_thread_priority_map array. Initialize the array with
PRIORITY_{...}_VALUE, if available and interpolate beetween the
bounds if .._NORMAL_.. and .._HIGH_.. are not available.
* gthread-posix.c: If we should use the PID niceness as a
surrogate for thread priorities (G_THREAD_USE_PID_SURROGATE is
defined), then disable normal priority handling and use PIDs and
setpriority() instead. Depends on the thread to write its PID into
the place after the thread id right after thread creation.
Mon Nov 20 18:55:17 2000 Jonathan Blandford <jrb@redhat.com>
* gtree.[hc]: Patch from David Benson <daveb@idealab.com> to add
user_data support to gtree functions.
Mon Nov 13 18:35:52 2000 Jonathan Blandford <jrb@redhat.com>
* gtypes.h (GCompareFuncData): new func type to let you use user
data when comparing nodes.
* gslist.c (g_list_sort_with_data): new function to sort with
user_data.
* glist.c (g_list_sort_with_data): new function to sort with
user_data.
* garray.[ch]: Added convenience functions to sort arrays.
2000-11-16 Havoc Pennington <hp@redhat.com>
* guniprop.c (g_unichar_isspace): Use a switch here, maybe helps
the compiler optimize things. Also, ' ' is a SPACE_SEPARATOR,
so don't special case it.
Fri Nov 17 15:43:00 2000 Owen Taylor <otaylor@redhat.com>
* Released 1.3.2
* NEWS: Update.
* tests/Makefile.am (dist-hook): Add code to distribute
markup test files.
2000-11-15 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Check for the sched.h header and include it on
gthread/gthread-posix.c if available.
* gthread-posix.c: Include <sched.h> if available.
* configure.in: Add -D_POSIX4_DRAFT_SOURCE to
GTHREAD_COMPILE_IMPL_DEFINES. Also add -D_POSIX4A_DRAFT10_SOURCE
to G_THREAD_CFLAGS. Really deploy GTHREAD_COMPILE_IMPL_DEFINES,
when searching for thread libs. Look for sched_* functions in
-lrte as well. All of that is necessary on DG/UX.
* configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADERS in
various places to make it work more reliable, to make it accept
macros instead of functions etc.
* configure.in: Replace some NULL's for checks with 0 to make it
work without stdio.h everywhere.
* configure.in, gutils.c: changed the test for getpwuid_r to first
test for a posix version and then for a non-posix version. No code
change in gutils.c. Again this change deals better with getpwuid_r
being a macro and not a function. Most of the above with kind help
from Tethys <tet@isengard.europe.dg.com>. This fixes Bug #13403.
2000-11-13 Tor Lillqvist <tml@iki.fi>
* config.h.win32.in: Add USE_LIBICONV.
* gconvert.c: Check G_OS_WIN32 only after including glib.h.
* glib.def: Update.
2000-11-13 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gthread.c (g_static_rec_mutex_*): Made recursive mutexes also
work when the thread system is not (yet) initialized.
Sun Nov 12 18:34:32 2000 Owen Taylor <otaylor@redhat.com>
* gconvert.[ch]: Create wrapper functions for iconv()
so that we can transparently use the native iconv,
libiconv, or (in the future) a mini-iconv included
with glib.
* glib-config-2.0.in glib-2.0.pc.in: Include @ICONV_LIBS@
* INSTALL: Added note about libiconv.
* configure.in: Add checks for libiconv from pango. If
EILSEQ is not defined in errno.h add define for it into
glibconfig.h so g_iconv can use it. (Note, recompiling
from a system without EILSEQ to a system with EILSEQ
will break binary compatibility)
2000-11-11 Havoc Pennington <hp@pobox.com>
* gmarkup.c (g_markup_parse_context_parse): Handle a long stream
of bytes containing no UTF-8 character starts
2000-11-11 Tor Lillqvist <tml@iki.fi>
* gfileutils.c (g_mkstemp): Improve chance to generate unique
names with less effort a bit.
* gfileutils.h: Add g_file_open_tmp() declaration.
* testglib.c: Include <io.h> on Win32.
* makefile.mingw.in: Correct the way to invoke sub-makes.
2000-11-11 Tor Lillqvist <tml@iki.fi>
* gtypemodule.c: Include stdlib.h for exit().
* makefile.{mingw,msc}.in (gobject_OBJECTS): Add gtypemodule.
* gobject.def: Add new functions.
2000-11-11 Tor Lillqvist <tml@iki.fi>
* gfileutils.c (g_file_open_tmp): New function, suggested by Havoc
earlier this month.
(g_mkstemp): Use only one case for letters in temp file name, as
this will be used on systems with case-insensitive file systems.
* testglib.c (main): Test g_mkstemp() and g_file_open_tmp().
2000-11-09 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gthreadpool.c: Don't take threads with other priorities into
account as changing the priority is highly unportable. (Actually
using it at all already is unportable, but even sometimes where
that works, changing priority is not possible).
2000-11-05 Havoc Pennington <hp@pobox.com>
* gmarkup.c: inline docs
(unescape_text): properly check strtoul for failure.
* gerror.c (g_propagate_error): Free the src error if the dest
location is NULL - I'm pretty sure that's what this function was
supposed to do.
2000-11-05 Havoc Pennington <hp@pobox.com>
* gerror.c (g_propagate_error): Free the src error if the dest
location is NULL - I'm pretty sure that's what this function was
supposed to do.
2000-11-05 Havoc Pennington <hp@pobox.com>
* glib/tmpl/error_reporting.sgml: fixes
2000-11-02 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib/tmpl/async_queues.sgml, glib/glib-sections.txt: Added
documentation for asynchronous queues.
* gasyncqueue.c: Added inline documentation for asyncronous
queues.
2000-10-30 Tor Lillqvist <tml@iki.fi>
* configure.in: Check for mkstemp.
* gutils.c (g_mkstemp): New function. If HAVE_MKSTEMP, just call
it, otherwise use code lifted from glibc.
* gutils.h: Declare it.
* glib.def: Here, too.
2000-10-30 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gcache.h, gcache.c, ghash.h, ghash.c, grel.c, grel.h, gtypes.h:
Introduced new function type GEqualFunc to return TRUE for equal
params. This is now used instead of GCompareFunc (which should
work akin to strcmp) here. This kind of fixes Bug #14412. Note
that technically GCompareFunc and GEqualFunc are still the same
types, as gint == gboolean.
* ghash.h, gutils.c: g_int_equal and g_direct_equal now return
gboolean to be really become GEqualFunc.
* gscanner.c, testglib.c, tests/hash-test.c: Some tiny changes to
follow the above change.
2000-10-24 Havoc Pennington <hp@pobox.com>
* gmarkup.h, gmarkup.c: New module to parse a simple
markup language
* Makefile.am: add gmarkup.h, gmarkup.c
* tests/Makefile.am: add markup-test
* gstring.h (g_string_new_len): new function to create a string
with a length
(g_string_new): avoid a gratuitous realloc
2000-10-26 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gstrfuncs.c (g_strsplit): When the string is ended by a
delimiter, return an extra empty string just like for a delimiter
at the start of the string. This makes the function behave more
consitent and also fixes Bug #15026.
Tue Oct 24 22:09:14 2000 Tim Janik <timj@gtk.org>
* glib-object.h: added newly added gobject/ headers.
* gmesage.c: print g_message() output to stderr instead of stdout.
Wed Oct 25 20:27:02 2000 Tim Janik <timj@gtk.org>
* gtype.c (g_type_free_instance): for the moment, freeing object
structures will fill their memory portion with 0xAA. there's a
FIXME there, remove this line at a later point.
Tue Oct 24 23:10:26 2000 Tim Janik <timj@gtk.org>
* glib-genmarshal.1:
* glib-genmarshal.c: added publically installed marshaller generator.
* gtype.h: added G_TYPE_INSTANCE_GET_INTERFACE() to retrive a certain
interface VTable from instances.
Mon Oct 23 08:28:15 2000 Tim Janik <timj@gtk.org>
* gobject.[hc]: new functions for closure maintenance:
(g_object_watch_closure): maintain validity of the object and
the closure for objects that are used as data part of a closure.
(g_cclosure_new_object): convenience function to create C closures
that have an object as data argument.
(g_closure_new_object): convenience function to create closures
that have an object as data argument.
* gclosure.[hc]: implementation of GClosure mechanism.
a closure is basically an encapsulation of a callback function
and its environment. ideally, most places supporting callback
functions will simply take a GClosure* pointer and thus unify
callback environments wrg destroy notification etc.
GClosure provides destroy notifiers for arbitrary data pointers,
reference counting, invalidation notification (it can be invalidated
which is merely a deactivate state) and a marshallinbg abstraction.
GCClosure is also provided in these files, they present a specialized
GClosure implementation for C language callbacks.
* genum.c: macro cleanups.
* gboxed.[hc]: new files, for boxed type abstraction.
(g_boxed_copy): copy a boxed structure
(g_boxed_free): free a boxed structure
(g_value_set_boxed):
(g_value_get_boxed): standard GValue functions for boxed types
(g_boxed_type_register_static): convenience function for easy
introduction of new G_TYPE_BOXED derivatives.
* gparam.[hc]: introduced g_param_type_register_static(), a short hand
for creation of new GParamSpec derived types.
* gtype.[hc]: many fixes, introduced ability to flag individual
type nodes as ABSTRACT upon registration, added value_peek_pointer()
to the value table to peek at GValue contents as a pointer for types
that support this. fixed up GValue checks.
* gvalue.[hc]: added g_value_fits_pointer() and g_value_get_as_pointer()
to peek at the value contents as pointer.
* *.[hc]: adaptions to type macro fixes and changes in the type
registration API.
* many const corrections over the place.
Sat Oct 21 02:49:56 2000 Tim Janik <timj@gtk.org>
* gtype.c (g_type_conforms_to): this function basically behaves like
and is_a check, except that it _additionally_ features interfaces
for instantiatable types. enforce this in the second branch as well
(`type' conforms_to `type') even if `type' is not an interface type.
Fri Oct 20 15:31:04 2000 Tim Janik <timj@gtk.org>
* gvaluetypes.[hc]: added G_TYPE_POINTER implementation from jrb.
* gtype.[hc]:
* gobject.c:
* gvaluetypes.c: added GTypeValueTable.value_peek_pointer and
suitable implementations of this for G_TYPE_STRING, G_TYPE_OBJECT
and G_TYPE_POINTER.
Mon Aug 21 04:13:37 2000 Tim Janik <timj@gtk.org>
* gbsearcharray.[hc]: long standing needed generic implementation
of a binary searchable, sorted and dynamically sized array.
2000-10-19 Tor Lillqvist <tml@iki.fi>
* makefile.msc.in: Pass -DGSPAWN_HELPER when building it. Link
with user32.lib.
* gspawn-win32.c
* gfileutils.c: Make them compile with picky MSVC.
* gwin32.h: New file. Move Win32-only stuff that isn't related to
GIOChannels here from giochannel.h.
* Makefile.am: Add it here.
* giochannel.h: Move stuff to gwin32.h.
* glib.h: On Win32, include gwin32.h.
2000-10-16 Tor Lillqvist <tml@iki.fi>
* giowin32.c (reader_thread): Some more debugging output.
(g_io_channel_win32_poll): Remove unused vars.
* gfileutils.c: Changes for Win32, with no unistd.h and no
S_ISLNK().
* gspawn-win32.c: Implementation of the g_spwan_* functions for
Win32. Due to the general non-Unixness of Win32, much of the
functionality that is relatively clean to implement on Unix, is
hard to do on Win32. We must use a separate helper program to
change directory, close extra file descriptors, redirect the std
ones, as needed, and only then start the child process. No child
process pid can be returned, unfortunately. Or if we used
CreateProcess directly, it probably could. (Now we use the spawnv*
functions from msvcrt.)
* glib.def: Add new entry points.
* glib.def
* giowin32.c: Remove g_io_channel_win32_wait_for_condition(),
g_io_channel_win32_poll() subsumes it.
* gbacktrace.h: G_BREAKPOINT for MSVC (on the ix86).
* gwin32.c (g_win32_getlocale): Use "sp" for
LANG_CROATIAN+SUBLANG_SERBIAN_LATIN.
* makefile.{mingw,msc}.in (glib_OBJECTS): Add new files.
Add gspawn-win32-helper.exe rule.
* tests/makefile.{mingw,msc}.in (TESTS): Add shell-test and
spawn-test.
* tests/spawn-test.c: (run_tests): On Win32, don't try to run
/bin/sh, but ipconfig (no special significance in choosing that,
just a program that outputs something to stdout).
gmodule:
* Makefile.am (BUILT_EXTRA_DIST): New variable.
(dist-hook): Handle $(BUILT_EXTRA_DIST).
gobject:
* Makefile.am (BUILT_EXTRA_DIST): New variable.
(dist-hook): Handle $(BUILT_EXTRA_DIST).
(*): Remove traces of @STRIP_{BEGIN,END}@.
gthread:
* Makefile.am (BUILT_EXTRA_DIST): New variable.
(dist-hook): Handle $(BUILT_EXTRA_DIST).
docs/reference:
'make distcheck' fixes.
* glib/Makefile.am (EXTRA_DIST): Add $(DOC_MODULE)-decl.txt.
(html): Run 'gtkdoc-fixxref' in $(srcdir).
(dist-check-gtkdoc): Add missing quote.
(dist-hook): Copy in dependency order, so that none of the
makerules are fired in a tarball build.
* gobject/Makefile.am: Likewise.
toplevel:
Remove need for acconfig.h, and misc. cleanups.
* acglib.m4 (GLIB_SIZEOF): Add 'autoheader' comment to
AC_DEFINE_UNQUOTED.
(GLIB_BYTE_CONTENTS): Likewise.
* configure.in: Add 'autoheader' comments to all AC_DEFINE(...)
and AC_DEFINE_UNQUOTED(...) lines.
Replace AC_MSG_CHECKING/AC_CACHE_VAL with AC_CACHE_CHECK.
(AM_PROG_LIBTOOL): Move after AC_PROG_CC.
* acconfig.h: Empty out.
* Makefile.am (BUILT_EXTRA_DIST): New variable. List 'dist'able
files that are created in the builddir.
(dist-hook): Handle those files.
(libglib_1_3_la_SOURCES): Remove @ALLOCA@. @ALLOCA@ should only
be used in an _LDADD or _LIBADD, since it expands (if necessary)
to 'alloca.o'.
* tests/Makefile.am (BUILT_EXTRA_DIST): New variable.
(dist-hook): Handle $(BUILT_EXTRA_DIST).
2000-10-13 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* grand.c: Added inline documentation.
* docs/refernce/glib/glib-sections.txt: Added misc items.
* docs/refernce/glib/tmpl/random_numbers.sgml: Documentation for
the random number generator.
2000-10-13 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gtypes.h, gnode.h, gutils.h: Readded GFreeFunc,
g_node_insert_after and g_find_program_in_path resp., which
mysteriously disappeared during the glib.h dissection.
2000-10-12 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: define GLIB_HAVE_ALLOCA_H instead of including
alloca.h in glibconfig.h, GLIB_HAVE_ALLOCA_H is used in glib.h.
* configure.in (GLIB_MAJOR_VERSION): Use GLIB_DIVERT_BEFORE_HELP
instead of AC_DIVERT_PUSH(),AC_DIVERT_POP.
(AC_CHECK_HEADERS): Remove redundant AC_DEFINE(HAVE_...).
(REALLOC_0_WORKS): Move AC_DEFINE outside AC_CACHE_VAL.
(dlopen): Quote nested AC_CHECK_... calls.
* acglib.m4 (GLIB_TR_SH, GLIB_TR_CPP): Utility macros copied from
beta autoconf 2.50.
(GLIB_DIVERT_BEFORE_HELP): New macro that works both with autoconf
2.13 and beta autoconf 2.50.
(GLIB_SIZEOF, GLIB_BYTECONTENTS): Use GLIB_TR_*.
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
2000-10-06 Tor Lillqvist <tml@iki.fi>
* tests/gio-test.c (main): Fix the Win32-only code to use current
API, g_io_channel_win32_make_pollfd() and g_io_channel_win32_poll().
2000-10-06 Tor Lillqvist <tml@iki.fi>
* makefile.msc.in: Revamp to be like makefile.mingw.in, make
the MSVC build actually work again.
* gmodule/makefile.msc.in
* gobject/makefile.msc.in
* gthread/makefile.msc.in: New files, like their mingw counterparts.
* gmodule/Makefile.am
* gobject/Makefile.am
* gthread/Makefile.am: Make and distribute them.
* */makefile.mingw.in: Allow override of GLib version number from
the build/win32/module.defs file.
* glib.def: Add new entry point.
Fixes from Hans Breuer:
* glib.h (struct DIR): Keep the last readdir result cached inside
the DIR struct, to enable several DIRs being open simultaneously.
* gwin32.c (g_win32_readdir): Use the above instead of static.
* giowin32.c (g_io_channel_win32_make_pollfd): Insert cast to keep
MSVC happy.
2000-10-05 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h: Changed alloca stuff a bit: when we have a working
alloca.h, we're not messing with alloca any further. Should fix a
bug reported by Bernd Demian <wega@csc-dd.de>.
2000-09-30 Martin Baulig <baulig@suse.de>
* configure.in (HAVE_THREADS): New automake conditional.
* Makefile.am (SUBDIRS): Only compile the gthread subdirectory if we
actually have threads.
2000-09-29 Jonathan Blandford <jrb@redhat.com>
* gnode.c (g_node_insert_after): Added function to keep symetry
with g_node_insert_before.
2000-09-29 Jonathan Blandford <jrb@redhat.com>
* glib/tmpl/trees-nary.sgml: Add g_node_insert_after().
2000-09-30 Martin Baulig <baulig@suse.de>
* configure.in (HAVE_THREADS): New automake conditional.
* Makefile.am (SUBDIRS): Only compile the gthread subdirectory if we
actually have threads.
2000-09-29 Martin Baulig <baulig@suse.de>
* Makefile.am (pkgconfigdir): Set this to `$(libexecdir)/pkgconfig';
this is the directory where pkg-config actually looks.
* *.pc.in: Made the pkg-config scripts actually work.
2000-09-29 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in, glib.h: Added errorcheck mutexes. These are
activated through the preprocessor symbol
G_ERRORCHECK_MUTEXES. Need to add an extra word to StaticMutex in
order to achieve this. g_(static_)mutex_* functions instrument the
mutex operations with mutex name and location, when compiled with
-DG_ERRORCHECK_MUTEXES. g_thread_init activates the errorcheck
mutexes, when compiled with -DG_ERRORCHECK_MUTEXES.
* gthread/gthread-impl.c: Added errorcheck mutexes. New
exported function
g_thread_init_with_errorcheck_mutexes, which is called instead of
g_thread_init, when compiled with -DG_ERRORCHECK_MUTEXES. New
static functions
g_mutex_(new|lock|trylock|unlock|free)_errorcheck_impl to
implement errorcheck mutexes.
* gthread/gthread-posix.impl.c, gthread/gthread-solaris-impl.c:
Define the size of a mutex.
2000-09-28 Havoc Pennington <hp@pobox.com>
* glib.h (GThreadPriority): fix indentation
(GConvertError): generic error is conventionally called
_FAILED rather than _OTHER, at least at the moment,
according to GError docs in docs/reference.
* gconvert.c: s/_OTHER/_FAILED/
2000-09-28 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Adjusted the test for an unimplemented
getpwuid_r. Info from Michael Pruett. This is just a forward
merge from glib-1-2.
2000-09-28 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Moved determination of G_THREAD_FLAGS before
G_THREAD_LIBS. Check for UnixWare systems and set the right cflags
and libs there (it needs -Kthread for the native compiler and
-pthread for gcc). Thanks to Boyd Lynn Gerber <gerberb@zenez.com>
for the info.
* configure.in: Fail immediately, when no thread library is found,
instead of continuing searching for rt libs etc. Changed almost
all occurances of $enable_threads to $have_threads, as that's,
what we want.
* tests/threadpool-test.c: Define vars inside the guard to avoid
warnings.
2000-09-28 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in, tests/type-test.c: Some platforms support 64 bit
'long long', but you can not printf or scanf them. In that case,
don't define G_G{UINT|INT}64_FORMAT. Changed the type-test program
to reflect that.
2000-09-28 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gutils.c (g_get_current_dir): max_len can't be initialized
statically as it might call a function. So do it at first call.
2000-09-21 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: The last released automake (1.4) still requires
AM_PROG_LIBTOOL instead of AC_PROG_LIBTOOL, so use that for the
time being.
2000-09-19 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* acconfig.h, configure.in, gutils.c: Test for the existence of
getcwd, and use it only when found.
* glib.h: Only use the gcc-variable-macro-argument-extension for
gcc >= 2.4. Both patches from Jonas Oberg <jonas@gnu.org>.
Sun Sep 17 2000 Elliot Lee <sopwith@redhat.com>
* glib.h configure.in: Define g_alloca() as an alloca-that-works-anywhere.
* gconvert.c: Fix warnings which could have caused problems on 64-bit platforms.
Sun Sep 10 12:37:40 2000 Owen Taylor <otaylor@redhat.com>
* glib.h gconvert.c (g_convert): Havoc Pennington's implementation
of convenient character set conversion using iconv, with
the addition of GError. We probably need a fallback that
just does conversions between, say UTF-8,16,32 and ISO-8859-1
for targets without iconv at all.
Also add g_convert_with_fallback() to take care of conversions
where we accept some loss going to the target encoding.
Mon Aug 21 03:57:46 2000 Tim Janik <timj@gtk.org>
* glib.h (G_BREAKPOINT): for non-i386 and non-alpha, or non gcc,
implement BREAKPOINT() as raise (5 /* SIGTRAP */);
* glib.h: provide user-definable switch G_IMPLEMENT_INLINES,
to turn on compilation of inline function implementations provided
in header files with extern linkage.
wrap inline function implementations into ifdef __G_UTILS_C__, so we
really only compile them for gutils.c and not also into arbitrary user
code that wants to make use of G_IMPLEMENT_INLINES.
adjusted comment apropriately.
* gutils.c: to turn on compilation of inline functions, provide
#define G_IMPLEMENT_INLINES 1 and #define __G_UTILS_C__.
2000-09-06 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h, gtimer.c, tests/thread-test.c:
s/G_MICROSEC/G_USEC_PER_SEC/
* gthread/gthread-posix.c, gthread/gthread-solaris.c:
s/G_MICROSEC/G_USEC_PER_SEC/ and s/G_NANOSEC/G_NSEC_PER_SEC/
2000-09-01 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gstring.c (g_string_free): Use g_return_val_if_fail instead of
g_return_if_fail, as the function now is supposed to return
something.
2000-09-01 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h: Include gerror.h before it is used for some g_thread_*
functions.
* gthread.c, gthreadpool.c, glib.h: Enable error reporting for
thread creation, namly for g_thread_create, g_thread_pool_new,
g_thread_pool_push and g_thread_pool_set_max_threads.
* tests/thread-test.c, tests/threadpool-test.c: Adapted
accordingly.
* gthread-posix.c (g_thread_create_posix_impl): Use GError to
report errors.
2000-09-01 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gerror.c, gerror.h (g_propagte_error): Added function
g_propagte_error to hand over local errors to the calling
function.
2000-08-31 Tor Lillqvist <tml@iki.fi>
* glib.h
* glib.def
* giowin32.c (g_io_channel_win32_make_pollfd): New function, to
make a GPollFD from a GIOChannel. Creates the events and starts
the reader thread if necessary.
2000-08-27 Tor Lillqvist <tml@iki.fi>
Hmm, the parameter to g_io_channel_win32_poll() should be
a GPollFD array, not GIOChannel. That way the caller can know which
channels cause the callback.
2000-08-27 Tor Lillqvist <tml@iki.fi>
* giowin32.c (g_io_channel_win32_poll): New function, otherwise
like g_io_channel_win32_wait_for_condition(), but accept several
GIOChannels.
(g_io_channel_win32_wait_for_condition): Call
g_io_channel_win32_poll().
* glib.h: Declare g_io_channel_win32_poll().
* gwin32.c (g_win32_error_message): Don't believe return value
from FormatMessage.
2000-08-25 Elliot Lee <sopwith@redhat.com>
* glib.h, gunicode.h, gmodule/gmodule.h:
Mark the following functions G_GNUC_CONST (to allow
betteroptimization) because their results are a function of only their parameters:
g_int_hash, g_int_equal, g_direct_hash, g_direct_equal, g_quark_to_string,
g_date_is_leap_year, g_date_days_in_month, g_date_monday_weeks_in_year,
g_date_sunday_weeks_in_year, g_spaced_primes_closest, g_unichar_is*,
g_unichar_to*, g_unichar_*digit_value, g_unichar_type
Mon Aug 21 14:46:23 2000 Owen Taylor <otaylor@redhat.com>
* tests/gio-test.c: Fix a couple of trivial bugs that
were causing warnings.
Mon Aug 21 14:39:36 2000 Owen Taylor <otaylor@redhat.com>
* glib.h: Use C99 varargs macros where possible
(check __STDC_VERSION__), otherwise, on gcc, use an alternate
form of gcc varargs which is more likely
to be supported going forward. (Based on some code
from Raja Harinath)
* glib.h:
* garray.c: (g_array_free), (g_ptr_array_free),
(g_byte_array_free): Return the data left behind.
* gstring.c: (g_string_free): Return the data left behind.
Changed the free calls that leave data behind so they
return a pointer to the left-behind data, NULL if told not
to leave anything behind. This makes these calls easier
to use correctly, without any incompatible API change for
callers that don't know about the return value. Of course,
it would be even clearer if the free calls weren't dual-purpose
in the first place.
2000-08-12 Tor Lillqvist <tml@iki.fi>
* giowin32.c: Some indentation and spacing fixes. Add some more
logging.
(g_io_win32_add_watch): New function, with common code from
g_io_win32_fd_add_watch and g_io_win32_sock_add_watch. Don't start
more than one reader thread for a GIOChannel. We should obviously
have just one reader thread reading a file descriptor or socket.
2000-08-07 Tor Lillqvist <tml@iki.fi>
* tests/gio-test.c (shutdown_source): New function, that calls
g_source_remove(). Check return value of g_source_remove(), and
decrement running subprocess counter only if g_source_remove()
actually did remove the source.
(recv_message): Call shutdown_source() on EOF condition. Return
FALSE on G_IO_HUP and G_IO_ERR condition. Fix printf format typo.
Sun Aug 6 20:06:02 2000 Tim Janik <timj@gtk.org>
* gmessages.c (g_log_domain_check_free): keep *last updated while
running through the domain list, so we don't screw up the removal,
patch provided by Gady Kozma <gadykozma@hotmail.com>.
Sun Aug 6 20:03:41 2000 Tim Janik <timj@gtk.org>
* gmessages.c (g_log_remove_handler): keep *last updated while running
through the handler list, so we don't screw up the removal.
Sun Jul 30 16:54:13 2000 Owen Taylor <otaylor@redhat.com>
* gunicode.h: Fix stray character
* gutf8.c (g_unichar_to_utf8): Allow outbuf to be NULL, in
which case we just compute the length.
2000-07-31 Tor Lillqvist <tml@iki.fi>
* giowin32.c (buffer_read): The code didn't compile (must
have been sleepy when committing). "return" instead of "break"
(g_io_win32_fd_add_watch): Cannot check if the file descriptor is
readable by calling ReadFile to read zero bytes. ReadFile blocks
on NT even if trying to read nothing at all. So, don't check if
file descriptor is readable; assume this function isn't called
otherwise.
Sun Jul 30 10:44:16 2000 Tim Janik <timj@gtk.org>
* gmain.c (g_get_current_time): fix tor's recent changes which
got rid of a required variable in the non-windows path.
2000-07-30 Tor Lillqvist <tml@iki.fi>
* giowin32.c: Compile in the debugging code all the time, but only
output debug messages if told so. Add (unadvertised) function to
turn on/off debug messages for a channel.
(buffer_read): Don't loop. It is expected behaviour to return a
short read occasionally, for instance when reading from
pipes. It's the calling code that should loop if it *knows* how
much the writer has written.
* tests/gio-test.c: Correct the program's name in the output.
(recv_message): Loop calling g_io_channel_read() (in a new
function read_all()) until we have all the bytes we want (that we
know the writer has written/will write).
2000-07-30 Tor Lillqvist <tml@iki.fi>
Finally, a new and improved IO Channel and condition watch
implementation for Win32. Based on code provided by Craig Setera.
When watching file descriptors, for which there is no select()
like functionality on Win32 that would work on all Win32 platforms
for all types of file descriptors (including anonymous pipes), we
start a new thread that blocks while trying to read from the file
descriptor. When the read returns, a Win32 Event is signalled that
the polling routine eventually notices. Meanwhile, the data being
read is stored in a circular buffer, from where the IO channel's
read() method picks it up.
If the buffer fills up the reading thread has to wait for space
becoming available. For this another Win32 Event is used. The IO
Channel's read() method signals this when it has read some data
out of the buffer.
The separate reader thread(s), and the circular buffer(s) with
associated events mean lots of possibilities for fun parallellism
errors. But it seems to work OK, i.e. GIMP runs.
* gmain.c: Small changes to the Win32 polling function.
(g_main_win32_get_poll_func): New function. Perhaps it would be a
good idea to provide this on all platforms.
* giowin32.c: The bulk of the new implementation.
(g_io_channel_win32_wait_for_condition): New function. To be used
where on Unix one does a select() on the channel's fd, like
libgimp's gimp_extension_process(). Could be provided on all
platforms.
* glib.h: Update documentation for IO Channels on Win32. Remove
the declarations for the as of now obsolete old functions related
to IO Channels for pipes with "wakeup" messages.
* glib.def: Some new functions.
* tests/gio-test.c: New file, to test GIOChannel and main loop.
* tests/Makefile.am
* tests/makefile.mingw.in: Add it.
Wed Jul 26 12:59:31 2000 Tim Janik <timj@gtk.org>
* *.[hc]: applied patch from Andreas Persenius <ndap@swipnet.se> that
updates the license headers to the GNU Lesser General Public License,
as well as updating the copyright year to 2000.
Wed Jul 26 05:47:48 2000 Tim Janik <timj@gtk.org>
* configure.in:
* testglib.c:
* gstrfuncs.c:
* glib.h: added g_strlcat() and g_strlcpy() wrappers, supplied by
David Wheeler <dwheeler@ida.org>:
* glib.h, gstrfuncs.c: added g_strlcpy and g_strlcat to support
safe manipulation of fixed-length string buffers.
These functions were originally developed by Todd Miller to simplify
development of security-related programs, and
are available on many (but not all) Unix-like systems,
including OpenBSD, FreeBSD, and Solaris. See
ftp://ftp.openbsd.org/pub/OpenBSD/src/lib/libc/string/strlcpy.3
and http://www.openbsd.org/security.html.
If there's a strlcpy/strlcat on the system, it's called, otherwise
an implementation is provided.
* testglib.c: Added tests for g_strlcpy, g_strlcat.
Wed Jul 26 05:03:24 2000 Tim Janik <timj@gtk.org>
* acglib.m4 (GLIB_SIZEOF): include <stdlib.h> and <stddef.h> if
STDC_HEADERS is defined.
* glib.h:
* glibconfig.h: define gsize and gssize in terms of GLIB_SIZEOF_SIZE_T
* glib.h (g_return_if_reached): applied darin's fix for copy'n
paste error in the macro implementation.
2000-07-22 Tor Lillqvist <tml@iki.fi>
* build-dll: Fix resource handling, the resource file got left out
from the DLL after all... Remove the WIN32APIHEADERS, not needed
with current windres.
* glib.def: Add new functions.
2000-07-20 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gutils.c, glib.h: Mark the functions g_basename and g_dirname
deprecated. They will issue an warning once, when compiled with
G_ENABLE_DEBUG, but continue to work as before. Instead the
functions g_path_get_basename and g_path_get_dirname should be
used, which BOTH return newly allocated memory, that has to freed
by g_free. The new g_path_get_basename now strips trailing slashes
from the path. This fixes#5097. For discussion see
http://mail.gnome.org/pipermail/gtk-devel-list/2000-April/003139.html
* gwin32.c, testglib.c, tests/dirname-test.c: Use the new
functions instead of the old ones.
* gmodule/libgplugin_a.c, gmodule/testgmodule.c: Use
g_path_get_basename instead of the deprecated g_basename.
2000-07-20 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* ghash.c, gscanner.c, glib.h: Mark the functions
g_hash_table_freeze, g_hash_table_thaw and thus
g_scanner_freeze_symbol_table and g_scanner_thaw_symbol_table
deprecated. They will issue an warning once, when compiled with
G_ENABLE_DEBUG. This fixes Bug #3883. For discussion see
http://mail.gnome.org/pipermail/gtk-devel-list/2000-April/003139.html
2000-07-19 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in, glib.h: glibconfig.h and glib.h now include files
outside of the extern "C" block. Makes some C++ compiler
happy. Reported by Denis Vakatov <vakatov@peony.nlm.nih.gov>.
* gmodule/gmodule.h: include glib.h before doing extern "C".
Makes some C++ compiler happy. Reported by Denis Vakatov
<vakatov@peony.nlm.nih.gov>.
Sat Jul 15 22:44:22 2000 Owen Taylor <otaylor@redhat.com>
* configure.in: Add build/Makefile and
build/win32/Makefile to AC_OUTPUT() so things build
again.
Sat Jul 15 09:11:46 2000 Tim Janik <timj@gtk.org>
* gstrfuncs.c (g_strncasecmp): fixed an off by 0 error (yeah,
the function went off when the while (n--) loop failed due to
n==0 ;), reported by Jean-Louis HAMEL <jlhamel@club-internet.fr>.
2000-07-15 Tor Lillqvist <tml@iki.fi>
* Makefile.am (SUBDIRS): Include the "build" module in GLib, too,
to make it more self-contained. If your CVS client doesn't
automatically get it, do a cvs get build in glib.
* */makefile.mingw.in: Include make.mingw from build in the glib
source directory.
Fri Jul 14 12:22:49 2000 Owen Taylor <otaylor@redhat.com>
* configure.in Makefile.am glib-config.m4 glib.m4: Move
glib-config to glib-config-2.0 move glib.m4 to
glib-2.0.m4
* Makefile.am gobject/Makefile.am gmodule/Makefile.am
gthread/Makefile.am tests/Makefile.am: Change
library names to libglib-1.3.la, etc, so that we
can distinguish glib-1.2 and glib-2.0 on the linkline.
* Makefile.am gobject/Makefile.am gmodule/Makefile.am:
Move include files into /usr/include/glib-2.0.
Thu Jul 6 18:54:49 2000 Owen Taylor <otaylor@redhat.com>
* docs/Makefile.am (EXTRA_DIST): Remove info files
from the build.
2000-07-14 Tor Lillqvist <tml@iki.fi>
* glib.def: Add g_error functions.
* makefile.mingw.in: Add gbacktrace.o.
* gbacktrace.c: No need to include <process.h>.
2000-07-12 Havoc Pennington <hp@redhat.com>
* glib.h: #include <gerror.h>
* Makefile.am (include_HEADERS): Add gerror.h
(libglib_la_SOURCES): Add gbacktrace.c
* gbacktrace.c: Move g_on_error_query() in here (moved on the
server, so history is preserved)
* gerror.h: GError interface
* gerror.c: GError implementation replaces stuff that's now in
gbacktrace.c
Sun Jul 9 21:21:46 2000 Owen Taylor <otaylor@redhat.com>
* genums.[ch]: Move string.h include into the .c file
instead of where it was in the .h file by mistake.
Sun Jul 9 21:20:45 2000 Owen Taylor <otaylor@redhat.com>
* gunicode.h: Include stddef.h instead of stdlib.h
2000-07-08 Tor Lillqvist <tml@iki.fi>
* glib.h (GLIB_VAR): Rename the GUTILS_C_VAR macro to GLIB_VAR.
* gunicode.h: Mark the g_utf8_skip array with GLIB_VAR.
* glib.def: Add two missing entry points.
Thu Jul 6 15:35:28 2000 Owen Taylor <otaylor@redhat.com>
* Release 1.3.1
* Makefile.am (EXTRA_DIST): Dist fixes.
* configure.in: Moderate the warnings just a little bit.
Mon Jul 3 17:18:19 2000 Owen Taylor <otaylor@redhat.com>
* glib.h: Comment g_get_codeset() out of the header file
temporarily. (Very similar to g_get_charset(), need
to resolve the two.)
Thu Jun 29 15:57:28 2000 Owen Taylor <otaylor@redhat.com>
* NEWS: updated
* Makefile.am: added snapcheck target to go along with snapshot
* gstring.c glib.h (g_string_hash): Add g_string_hash to
go along with g_string_equal.
Tue Jun 27 12:40:23 EDT 2000 David A. Wheeler <dwheeler@dwheeler.com>
* glib.h: Added g_string_equal for comparing GStrings;
changed g_str_equal so it returns gboolean (instead of gint).
* gstring.c: Modified GString implementation to support embedded
ASCII NUL ('\0') characters, and implemented g_string_equal.
* testglib.c tests/string-test.c: Added tests for g_string_equal
and tests for proper handling of embedded ASCII NUL characters.
Fri Jun 23 17:20:26 2000 Tim Janik <timj@gtk.org>
* glib.h: define gstring in terms of gchar*. this typedef reflects
the type name of the primitive G_TYPE_STRING in the gobject module.
Sat Jun 24 23:03:04 2000 Tim Janik <timj@gtk.org>
* gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
added a GTypeValueTable* pointer to GTypeInfo structure for types
to implement GValue handling functions.
GTypeValueTable contains the following members:
value_init(): initialize a GValue structure.
value_free(): free GValue structure contents (optional).
value_copy(): copy one GValue contents to another GValue structure of
collect_type: varargs collection type for the first variable argument
to be collected by collect_value().
collect_value(): variable arguments collection function (optional).
lcopy_type: varargs collection type for the first variable argument
to be location copyied by lcopy_value().
lcopy_value(): variable arguments location copy function (optional).
g_type_value_table_peek(): new function to retrive the GTypeValueTable*
for a type node. ValueTables get inherited from parent types, unless
overridden through the GTypeInfo structure. internally, GTypeValueTable
support means an added overhead of one pointer per static or used
dynamic type node.
g_type_add_class_cache_func(): provide a cache_func/data pair to be
called prior to a type nodes last_unref() function, this can be used
to prevent premature class destruction. multiple installed cache_func()
will be chained upon last_unref() untill one of them returns TRUE.
the cache_func()s have to check the type id passed in to figure whether
they actually wants to cache the class of this type (since any types are
routed through the cache_func() chain).
g_type_remove_class_cache_func(): remove a previously installed
cache_func/data pair. the cache maintained by this function has to be
clear when calling g_type_remove_class_cache_func() to avoid leaks.
g_type_class_unref_uncached(): class unref function for cache_func()
implementations, unreferences a class omitting the cache chain (and
therefore unref->cache->unref->... loops).
* gvaluetypes.[hc]: provide the value setters/getters for the primitive
fundamental types boolean, char, uchar, int, uint, long, ulong, float,
double and string.
* gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
GTypeValueTable is provided for this type.
removed g_value_init_default(), g_value_validate(), g_value_defaults(),
g_value_set_default() and g_values_cmp() as these are supplied by the
GParamSpec API now.
moved g_values_exchange() into the "implementation details" section,
since it just provides the underlying functionality for
g_value_convert().
* gvaluecollector.h: renamed the varargs value container from
GParamCValue to GTypeCValue as the value collection methods are
supplied by the type system now.
G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
GParamSpec structure now.
* genums.h: macros cleanups/fixes.
* genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
and assorted g_value_{s|g}et_{enum|flags}() implementations.
* gobject.[hc]:
provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
and g_value_{s|g}et_object().
* gparam.[hc]: reduced class to value_set_default(),
value_validate() and values_cmp(). also parameters now need to fill
in a GType value_type; field to indicate the GValue type they
are handling. provide g_param_value_set_default(),
g_param_value_defaults(), g_param_value_validate() and
g_param_values_cmp().
* gparamspecs.[hc]: got rid of the g_value_* functions and
the G_IS_VALUE_* macros. adapted param spec implementations
according to the GParamSpecClass changes.
Wed Jun 21 12:09:03 2000 Owen Taylor <otaylor@redhat.com>
* gunicode.h gutf8.c guniprop.c gunidecomp.[ch] gunichartables.h
Makefile.am glib.h: Initial pass at adding unicode support
functions. A few things still need to be implemented, a bit
of cleanup needs to be done, tests need to be added, and
the docs need to be finished, but this should allow replacing
most or all use of libunicode.
2000-06-06 Tor Lillqvist <tml@iki.fi>
* giowin32.c (g_io_channel_win32_pipe_readable): If we are
watching the same fd several times (for different conditions, with
different callbacks), check them all. Only call the callback for
G_IO_IN from here. (This bug popped up when a watch for
G_IO_ERR|G_IO_HUP was added to gimplib.)
2000-05-30 Tor Lillqvist <tml@iki.fi>
* gutils.c (g_locale_get_codeset): Implement on Win32.
* glib.def: Add g_get_codeset.
* tests/Makefile.am (EXTRA_DIST): makefile.cygwin* has been
renamed to makefile.mingw*.
Tue May 30 16:01:32 2000 Owen Taylor <otaylor@redhat.com>
* glib.h gutils.c: Move the g_locale_get_codeset() up in the
header file to correspond to to comments about memory
management. Rename to g_get_codeset() to avoid
polluting the g_locale_* namespace, which probably
would have g_locale_get_codeset (GLocale *locale).
Add a doc comment.
Mon May 29 14:10:35 2000 Owen Taylor <otaylor@redhat.com>
* gutils.c (g_locale_get_codeset): Add function to get the
codeset name for the current locale.
* configure.in acconfig.h: Add check for nl_langinfo(CODESET);
2000-05-13 Tor Lillqvist <tml@iki.fi>
* makefile.mingw.in
* tests/makefile.mingw.in
* build-dll: Rename makefile.cygwin(.in) to
makefile.mingw(.in), which better describes what it is. Move the
build of gmodule, gthread and gobject DLLs to makefiles in those
directories. Move resource file handling and build number bump to
build-dll, where it sits much cleaner.
* README.win32
* Makefile.am (EXTRA_DIST): Update accordingly.
* glib.h: Add G_PI, G_PI_2, G_PI_4, G_E, G_LN2, G_LN10 and
G_SQRT2. M_PI etc aren't necessarily in <math.h> in strict ISO C
implementations.
* glib.def: Add g_strcanon.
* gtree.c (g_tree_node_rotate_left): Remove unused variables.
* gwin32.c (g_win32_opendir): Remove unneeded statement.
gmodule:
* makefile.mingw.in: New file, with gmodule stuff
moved from ../makefile.mingw.in.
* Makefile.am: Add to EXTRA_DIST, and add rule to make makefile.mingw.
gobject:
* makefile.mingw.in
* gobject.def
* gobject.rc.in: New files, for Win32 (mingw) build.
* Makefile.am: Add to EXTRA_DIST. Add rules to produce the
corresponding non-*.in files.
* gtype.h: (Win32:) Mark _g_type_fundamental_last for
export/import from DLL.
gthread:
* makefile.mingw.in: New file, with gthread stuff moved from
../makefile.mingw.in.
* Makefile.am: Add to EXTRA_DIST, add rule to build makefile.mingw.
Fri Apr 28 23:54:35 2000 Tim Janik <timj@gtk.org>
* setup things for a new sub-library libgobject:
* Makefile.am (SUBDIRS): added gobject
* glib-config.in: feature -lgobject.
* configure.in (AC_OUTPUT): generate gobject/Makefile.
* glib.m4 (AM_PATH_GLIB): feature gobject module.
* glib.spec.in: added %{prefix}/lib/libgobject-1.3.so.*
Fri Apr 28 21:41:49 2000 Tim Janik <timj@gtk.org>
* glib.h: added G_STRLOC macro.
G_STRUCT_OFFSET(): signedness corrections.
(G_CSET_DIGITS): list 0-9.
* gscanner.c (g_scanner_config_template): use G_CSET_DIGITS.
* glib.h:
* gstrfuncs.c:
(g_strdown):
(g_strup):
(g_strreverse): return the modified string instead of void, so
calls to these functions can be nested.
(g_strcanon): new function, canonicalizes string according to
a given character set.
Fri Apr 28 19:45:16 2000 Tim Janik <timj@gtk.org>
* gasyncqueue.c (g_async_queue_unref): get rid of an unused variable.
2000-05-04 Tor Lillqvist <tml@iki.fi>
* makefile.cygwin.in
* tests/makefile.cygwin.in: Include the common makefile snippet
from ../build/win32.
Maybe CVSROOT/modules should be changed so that the 'build' module
is included within the glib module (and gtk+, and gimp, and maybe
others later), in the same way as the 'macros' module is included
in lots of GNOME CVS modules?
2000-05-02 Tor Lillqvist <tml@iki.fi>
* glib.def: Add new functions.
* makefile.{cygwin,msc}.in (glib_OBJECTS): Add new object files.
* tests/makefile.{cygwin,msc}.in: Add threadpool-test.
* gmodule-win32.c: No need to include <psapi.h>
2000-04-28 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gasyncqueue.c: New File implementing an asynchronous queue to be
used for asynchronous inter-thread communication.
* gthreadpool.c: New File implementing a thread pool to be used
for distributing work among several threads.
* glib.h: Added the type and function declarations for these two
types.
* tests/threadpool-test.c: New File implementing a test for the
thread pool. This also checks the asynchronous queue underlying
the thread pool.
* tests/Makefile.am: Changed accordingly.
2000-04-26 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Look for both pthread_create and pthread_join in
the thread library. Some systems define one of them, but not both
in libc. Arghh. Now we really start a thread and join it later and
check, whether the thread to actually ran.
2000-04-26 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h, gcache.c, gtree.c: Changed the 'value' parameter of
g_cache_remove from gpointer to gconstpointer. Dito for the 'key'
parameter of g_tree_lookup and g_tree_remove and the 'data'
parameter of g_tree_serach. This function now takes a function of
type GCompareFunc instead of GSearchFunc.
* glib.h: Removed declaration of GSearchFunc.
* gmem.c: s/GSearchFunc/GCompareFunc/.
2000-04-19 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h (G_TRYLOCK): Made the debugging G_TRYLOCK call also work
for compilers with funnt G_STMT_(START|END) macros.
* tests/thread-test.c: Implemented a check for that.
2000-04-19 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gutils.c (g_getenv): Changed the win32 part of this function to
be thread safe and to make the returned environment string
persistent to match the UN*X behavior. This is again a response to
Bug #8983.
* glib.h (G_LOCK_NAME): Removed parentheses around the lock name,
as that seems to cause problems for some compilers and really
isn't necessary.
Wed Apr 19 08:32:32 2000 Tim Janik <timj@gtk.org>
* gscanner.c (g_scanner_new): make sure that
scanner->config->cset_skip_characters is "" instead of NULL, so we
don't segfault further on.
2000-04-18 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h, glist.h, gslist.h: Changed the 'data' parameters from
gpointer to gconstpointer for the functions
g_(list|slist)_(remove|find|find_custom|index), as they do not
change this parameter. This fixes bug #4836.
2000-04-18 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h: Changed comment for g_getenv to reflect, that the
returned memory must not be freed. Fixes Bug #8983.
2000-04-17 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in, acconfig.h: Add configure test for garbage
collector friendliness for GLib. If enabled, ENABLE_GC_FRIENDLY
will be defined.
* garray.c, ghash.c, glist.c, gmain.c, gmem.c, gnode.c, gqueue.c,
gslist.c, gtree.c: If ENABLE_GC_FRIENDLY is defined, NULLify all
memory released by the user, but cached by GLib. This lets a
garbage collector have a more correct view of the actually used
memory.
2000-04-17 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* garray.c, glib.h: Added g_(array|ptr_array|byte_array)_sized_new
functions, that reserve a certain amount of memeory for the array
at creation time to avoid reallocation. Fixes bug #6707 from
Charles Kerr <ckerr@osserver1.nssl.noaa.gov>.
2000-03-26 Tor Lillqvist <tml@iki.fi>
* README.win32: Tell about using the mingw-based gcc, which is
much easier than modifying the cygwin gcc to product mingw code
for the msvcrt runtime.
* makefile.cygwin.in (WIN32APIHEADERS): Kludge to make it work
with a "pure" mingw gcc, too.
2000-03-24 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* garray.c: Made GArray behave correct. Now zero_terminated really
means, that the element array->data[array->len] exists and is
zeroed, and clear means that any unassigned elements obtained
through g_array_set_size (the only way to get unassigned elements
AFAICT) are zeroed. Added some macors to mak the code more
obvoius. Also made GPtrArray zero elements after
g_ptr_array_set_size. This is done in a portbale way (assignment
of NULL instead of just memsetting it to zero), though that might
be more portability than we actually want.
2000-03-24 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* Makefile.am, gthread/Makefile.am, gmodule/Makefile.am,
tests/Makefile.am: Added various win32 related *.in files to
EXTRA_DIST to let 'make distcheck' procude all the corresponding
files, which it silently fails to do currently.
2000-03-23 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: After finding the right thread library (containing
e.g. pthread_create) we now search for the right realtime library
(containing e.g. sched_get_priority_max). Makes the output of the
thread related libraries correct.
* gtimer.c (g_usleep): The current implementation of g_usleep
(simply calling select) doesn't work reliable for multi-threaded
programs on some platforms (bad omen for the main loop....), so I
changed the implementation for thread-using programs to wait for a
GCond for the specified amount of time (NB: sleep and usleep are
not MT-safe in general, because they often use signals).
2000-03-22 Tor Lillqvist <tml@iki.fi>
* gutils.c: Move Win32-only includes after inclusion of glib.h, so
that G_OS_WIN32 is defined.
* glibconfig.h.win32.in: Add GSystemThread.
2000-03-22 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gutils.c (g_get_current_dir): Ok, Marcus Brinkmann
<Marcus.Brinkmann@ruhr-uni-bochum.de> convinced me, that 128 KB
path length might not be enough for the HURD. So I changed the
loop to at least avoid an integer overflow, which could happen at
beyond 2GB size ;-)
2000-03-22 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Test for sched_yield as the native yield function
first. Corrected typo g_thread_sleep -> g_usleep. Corrected
message for the pthread_create test. Negative Priorities are
allowed (and used on Solaris), so consider
sched_get_priority_min failed only if it returns -1, not <0. Check
for sched_get_priority_min also in -lrt, if not found in -lpthread
alone and add -lrt to G_THREAD_LIBS then. Remove special case
handling of priorities for older solaris versions and posix
threads. Thanks to Wan-Teh Chang <wtc@netscape.com> for suggesting
some of those changes.
* config.guess, config.sub, ltconfig, ltmain.sh:
Upgrade to libtool 1.3.4.
2000-03-21 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h, configure.in, gutils.h: always define G_GNUC_EXTENSION,
even when not needed by GLib. That's actually also the way, the
GLib reference manual describes that macro. Therefore I had to
remove the lonesome #include <glibconfig.h> in gutils.c, which
doesn't seem to be needed there however. This change should make
Ben Gertzfield <che@debian.org> happy.
* gutils.c: Furthermore two warnings in gutils.c were voided,
which crept in due to my last change.
2000-03-21 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gutils.c (g_get_current_dir): Allocate only up to 128KB for a
pathname. While this is an arbitrary value just like 2048, it
seems to be enough (after all, even 4GB is an arbitrary value).
2000-03-20 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gmain.c (g_main_poll): Warn in case of an error during the call
to poll(2). Closes Bug#7564 as reported by David Helder
<dhelder@umich.edu>.
2000-03-20 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gutils.c (g_get_current_dir): Make g_get_current_dir work on
systems with unlimited pathname length like the HURD (It worked
there before, but only for pathes shorter than 2048). Closes
Bug#4525 as reported by Marcus Brinkmann
<Marcus.Brinkmann@ruhr-uni-bochum.de>.
2000-03-17 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Added the missing POSIX_NO_YIELD and
POSIX_NO_PRIORITIES warning messages.
* configure.in: Use AC_TRY_RUN instead of AC_TRY_LINK, to test for
real thread support. On solaris pthread_create can be linked to
even in -lc, but it doesn't work then.
* configure.in: Don't use priorities for threads, when the
minimal/maximal priorities couldn't be determined at configure
time.
* configure.in, gthread.c: Always define GSystemThread in
glibconfig.h to represent a system thread.
* configure.in: Do not use native recursive threads, when
possibe. We use some features, that they do not expose (namely the
depth counter).
* glib.h, gthread.c: Redefined GStaticRecMutex. The functions are
now implemented in a different way, which should be way
faster. Alsothere are now functions g_static_rec_mutex_unlock_full
and g_static_rec_mutex_lock_full to leave/enter a recursive mutex
completly.
* gthread.c (g_thread_self): Do not test the system_thread to be
non-zero to speed things up.
* gthread.c (g_mutex_init): Therefore set the system_thread of the
main thread here.
* tests/thread-test.c: Rerun all tests once again, but this time
we fool the system into thinking, that the available thread system
is not native, but userprovided.
* gthread/gthread-posix.c: Don't use priorities for threads,
when the minimal/maximal priorities couldn't be determined at
configure time.
* gthread/gthread-posix.c: Don't check for errors, when
setting the scope of a tread to system, as some posix
implementations can't do that and we don't want the thing to
fail because of that.
2000-03-13 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gqueue.c (g_queue_push_tail_link, g_queue_push_head_link): We
want the next and prev pointer of the inserted link to be NULL.
2000-03-04 Tor Lillqvist <tml@iki.fi>
* gwin32.c (g_win32_error_message): New function that returns the
message string for a Win32 error code.
* glib.h: Declare it.
* glib.def: Export it, plus g_node_copy.
* gmodule-win32.c: Call g_win32_error_message() to get the error
message strings.
* libgplugin_a.c
* libgplugin_b.c
* gmodule.c: Remove LibMain functions that were needed by LCC,
which is not a supported compiler.
* testgmodule.c (main): Test for G_MODULE_IMPL ==
G_MODULE_IMPL_WIN32, not G_OS_WIN32.
* gmoduleconf.h.win32: Remove LCC stuff from here, too.
2000-03-03 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Make the search for pthread_attr_... prototypes
find names at the start of a line also, like it is on AIX. Thanks
to Valdis Kletnieks <Valdis.Kletnieks@vt.edu> for the info.
Wed Mar 1 10:39:39 2000 Tim Janik <timj@gtk.org>
* gslist.c (g_slist_reverse): minor optimization.
* testglib.c (g_node_test): added a couple of tests for
g_node_copy().
* glib.h:
* gnode.c (g_node_copy): new function to copy subtrees,
supplied by dbsears@ix.netcom.com.
changed iterator to walk the children list backwards, so
we get down from O(n^2) to O(n).
* gnode.c (g_node_first_sibling): applied patch from
dbsears@ix.netcom.com to optimize access if node->parent
is present.
* gutils.c (g_get_any_init): backed out HAVE_PW_GECOS check around
assignment of g_real_name, sicne HAVE_PW_GECOS is never defined and
thus breaks the original code.
* merged changes from 1.2.7.
Sat Feb 19 19:43:29 2000 Tim Janik <timj@gtk.org>
* testgmodule.c (main): added test to check that not yet bound symbols
in shared libraries of the main module are retrievable, from David Gero.
Fri Jan 28 11:37:41 2000 Owen Taylor <otaylor@redhat.com>
Bug #4156 - Changes vaguely modelled after Scott Gifford's patch
* gtimer.c (g_timer_elapsed): Never report negative times -
clip times to 0.
* gmain.c (g_timeout_prepare): Guard against unexpected
clock shifts by never setting a timeout of more than
data->interval msecs.
2000-02-23 Tor Lillqvist <tml@iki.fi>
* README.win32: Add a missing step to the setup instructions for
gcc-2.95.2. Thanks to Arnaud Charlet.
* glib.def: Add missing entry point.
2000-02-18 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Changed GCC version test to also accept major
versions > 2. Thanks to Ben Gertzfield <che@debian.org> for
pointing this out.
Thu Feb 17 12:53:44 2000 Tim Janik <timj@gtk.org>
* gstring.c: changed g_str_hash() to a 31 bit version based on
a submission by Karl Nelson and hand optimized ad absurdum by
various people ;)
* gstring.c: applied patch from havoc for new gstring functions,
added some more sanity checks, coding style fixups.
2000-02-13 Havoc Pennington <hp@pobox.com>
* tests/string-test.c (main): Add tests for the new GString
features
* testglib.c (main): Add tests for the new GString features
* gstring.c (g_string_insert_len): New function; insert
a given length of string at a given position.
(g_string_append): reimplement in terms of g_string_insert_len
(g_string_append_len): new function
(g_string_insert_c): accept -1 for "pos" arg to mean "append"
(g_string_append_c): reimplement in terms of g_string_insert_c
(g_string_prepend): reimplement in terms of g_string_insert_len
(g_string_prepend_len): new function
(g_string_prepend_c): reimplement in terms of g_string_insert_c
(g_string_insert): reimplement in terms of g_string_insert_len
* glib.h: Declare g_string_insert_len, g_string_append_len,
g_string_prepend_len
Sun Feb 13 08:16:47 2000 Tim Janik <timj@gtk.org>
* configure.in: wtf??? someone destroyed the configure.in, reverting to
an older version from Feb 4 which apears to still work.