Wed Oct 21 19:22:58 1998 Tim Janik <timj@gtk.org>
* configure.in (G_MODULE_HAVE_DLERROR): reverted part of the changes
from Sebastian Wilhelmi (1998-10-20). don't specify a specific loading
behaviour (i.e. RTLD_NOW) when we are not sure whether it is supplied.
changed the return value from (!f2 && f1) to (!f2 || f1) so we default
to not needing an underscore. reverted the extra plugin.c building,
because .lo files are not ELF libraries, this can't work. This needs
further investigation on Solaris...
Wed Oct 21 19:58:27 1998 Tim Janik <timj@gtk.org>
* gmodule.c (g_module_symbol): fixed a string pointer bug that could
cause garbage error messages from g_module_symbol() for systems that
NEED_USCORE.
Wed Oct 21 17:03:05 1998 Tim Janik <timj@gtk.org>
* glib.h:
* gstrfuncs.c: API cleanups of the new g_str* functions for consistency
with the existing naming scheme for g_str* functions. grouped the g_str*
functions that will return a newly allocated string seperatedly. all of
the in_place arguments were skipped, the caller is supposed to pass a
g_strdup()ed string if he wants to retrive a new copy. indentation and
coding style fixups. added some g_return_if_fail() statements.
string array functions are prefixed with g_str_array_.
(g_strdelimit): return the modified string like all other g_str*
functions, that operate in place.
(g_strchug): renamed from g_str_chug(), removed in_place argument.
(g_strchomp): renamed from g_str_chomp(), removed in_place argument.
(g_strstrip): renamed from g_str_strip(), removed in_place argument.
(g_str_array_join): renamed from g_strconcatv(), since it actually
operates on a string array and has totaly different semantics from
g_strconcat(). check for separator != NULL, don't segfault if the first
string is NULL. removed the `const' from the string array that's passed,
so users can operate on gchar** string arrays.
(g_str_array_split): renamed from g_str_split() because we actually
produce a string array. reimplemented this function for efficiency.
removed macro aliases g_str_joinv and g_str_join.
1998-10-20 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: made the check for needed underscore in module's
func-names work on solaris. (G_MODULE_NEED_USCORE must be set
outside AC_CACHE_VAL, dlopen(0,0) refused to work on solaris).
Thu Oct 8 06:47:27 1998 Tim Janik <timj@gtk.org>
* glib.h:
* gdataset.c: removed functions g_dataset_id_set_destroy and
g_datalist_id_set_destroy and macros g_dataset_set_destroy and
g_datalist_set_destroy.
added new functions g_dataset_id_remove_no_notify and
g_datalist_id_remove_no_notify plus associated macros
g_dataset_remove_no_notify and g_datalist_remove_no_notify, which
will remove a certain data portion without invokation of its destroy
notifier, this should only be used in very controled circumstances.
Wed Oct 7 05:31:24 1998 Tim Janik <timj@gtk.org>
* glib.h:
removed the #pragma } statement after extern "C" {. use
(c-set-offset 'inextern-lang 0) to fixup emacs cc-mode indentation.
* glib.h:
* ghook.c: API and code cleanups. changed the G_HOOK_ACTIVE and
G_HOOK_IN_CALL enum vals to G_HOOK_FLAG_ACTIVE and G_HOOK_FLAG_IN_CALL.
changed the G_HOOK_IS_ACTIVE() and G_HOOK_IS_IN_CALL() macros to
G_HOOK_ACTIVE() and G_HOOK_IN_CALL().
fixed the g_hook_find* functions, so they iterate over non-active
hooks as well.
(g_hook_first_valid):
(g_hook_next_valid): added an extra argument gboolean may_be_in_call,
which indicates whether G_HOOK_IN_CALL() hooks are considered valid
or not. these two functions are meant as iterators for the hook list
invocation, so they need to a) provide functionality to implement
may_recurse bahaviour and b) only walk active hooks.
Tue Oct 6 14:29:47 1998 Tim Janik <timj@gtk.org>
* gmem.c (g_malloc0): fixed memory offsett when ENABLE_MEM_CHECK is
defined and ENABLE_MEM_PROFILE is not (patch from Martin Pool
<mbp@wistful.humbug.org.au>).
Sat Oct 3 01:18:10 1998 Tim Janik <timj@gtk.org>
* glib.h:
* ghook.c:
(g_hook_list_invoke):
(g_hook_list_invoke):
(g_hook_list_marshal): properly handle the first valid hook to call,
it maybe IN_CALL already.
(g_hook_list_marshal): minor name change.
Fri Oct 2 23:21:21 1998 Tim Janik <timj@gtk.org>
* glib.h:
* ghook.c: renamed GHook.id to GHook.hook_id so we don't get troubles
with ObjC which reserves "id" as a keyword (Raja R Harinath
<harinath@cs.umn.edu>).
Fri Sep 25 00:04:37 1998 Tim Janik <timj@gtk.org>
* configure.in: version bump to 1.1.4, binary age 0, interface age 0.
* glib.h (struct _GScanner): dumped peeked_char and text_len in favour
of *text_end and *buffer for buffered read()s.
* gscanner.c: changed peeking and retrival of next character so we
have buffered reads. fixed minor bug with number parsing error
reporting. made some static!!! variables local ones (why did we use
static temporary variables in the lowlevel tokenization code anyways?).
Mon Sep 21 02:22:12 1998 Tim Janik <timj@gtk.org>
* NEWS file update for upcoming release of GLib + GModule
version 1.1.3, binary age 0, interface age 0. (GModule uses
the same version numbers as GLib.)
* glib.h: swap the inclusion of of float.h and limits.h to work
around a egcs 1.1 oddity on Solaris 2.5.1 (fix provided by
Per Abrahamsen <abraham@dina.kvl.dk>).
* glib.h:
* gscanner.c: renamed the GValue union to GTokenValue, this should
not affect source compatibility in most cases.
* ghash.c: added some g_return_if_fail() statements. make
g_hash_table_lookup_node() an inline function so we save an extra
function invokation on lookups.
Mon Sep 21 01:54:48 1998 Tim Janik <timj@gtk.org>
* gmodule.h:
* gmodule.c: renamed old _de_init functionality to _unload.
modules are now expected to export:
G_MODULE_EXPORT const gchar* g_module_check_init (GModule *module);
and
G_MODULE_EXPORT void g_module_unload (GModule *module);
returning a string other than NULL from g_module_check_init() will
prevent the module from being loaded. a call to g_module_make_resident()
from g_module_unload() will prevent the module from being unloaded and
still make it resident.
nothing will break.
* glib.h: New function g_hash_table_foreach_remove is similar to
g_hash_table_foreach, but the callback's return value indicates
whether to remove the element (if TRUE) or not (if FALSE).
Fri Sep 18 18:46:14 1998 Tim Janik <timj@gtk.org>
* glib.h:
* gdataset.c: make the datalists a safe type (not using a generic
gpointer) by expecting a GData* argument in the g_datalist functions.
provide g_dataset_foreach() and g_datalist_foreach() functions that
allow a GDataForeachFunc function to walk the data lists.
(g_dataset_destroy_internal): made this function truely reentrant (i.e.
can be called from within destroy notifiers as well).
the *_foreach functions are _not_ reentrant (unless all the other
dataset and datalist functions).
Thu Sep 17 06:36:25 1998 Tim Janik <timj@gtk.org>
* glib.h:
* gdataset.c: implemented g_datalist_* along the lines of g_dataset,
but operates on an opaque gpointer *datalist; pointer, e.g. for the
implementation of GtkObject named data.
we cache a certain portion of the already freed data entries now, to
gain a slight performance improve with data reallocation.
Thu Sep 17 06:34:22 1998 Tim Janik <timj@gtk.org>
* gmodule.h:
* gmodule.c: implemented g_module_make_resident() which can be
used to make modules resident.
fixed a buglet about the optional "g_module_de_init" function in
modules, which could get invoked twice on very obscure occasions.
Tue Sep 15 14:57:30 1998 Owen Taylor <otaylor@redhat.com>
* Makefile.am glib-config.in l*: Update to libtool-1.2b,
change library versioning scheme to drop LT_RELEASE
from the -l line, while keeping it in the soname.
Fri Sep 11 02:11:46 1998 Tim Janik <timj@gtk.org>
* glib.h: explicitely include the prototypes for inline functions
to cure gcc warnings for -Wmissing-prototypes.
Tue Sep 8 05:04:06 1998 Tim Janik <timj@gtk.org>
* glib.h: abandon the use of ATEXIT(), we keep the fallback
macros for backwards compatibility. people ought to use g_atexit().
* gutils.c (g_atexit): new function to take over the implementation
of ATEXIT. this function is guarranteed to succeed, similar to
g_malloc().
Mon Sep 7 07:53:21 1998 Tim Janik <timj@gtk.org>
* configure.in: check for all three inline keywords individually.
* glib.h: inlining hassle. for compilers that don't allow the `inline'
keyword, mostly because of strict ANSI C compliance or dumbness, we try
to fall back to either `__inline__' or `__inline'.
we define G_CAN_INLINE, if the compiler seems to be actually *capable*
to do function inlining, in which case inline function bodys do make
sense. we also define G_INLINE_FUNC to properly export the function
prototypes if no inlinig can be performed. we special case most of the
stuff, so inline functions can have a normal implementation by defining
G_INLINE_FUNC to extern and G_CAN_INLINE to 1.
* ltconfig: (compiler PIC flag test): special case linux for non
aout systems to honour lcc's position independant code (cases
"linux*aout)" and "linux*)" got added). (this needs to go into
libtool which does an advanced test, checking for __LCC__).
* autogen.sh: take $CC=lcc into account by invoking automake with
--include-deps so lcc isn't scared by gcc's auto-dependancy
generation code. care about $ACLOCAL_FLAGS. optionally feature
autoheader.
* minor fixups in other places to cure some of lcc's warnings.
Sat Sep 5 04:40:02 1998 Tim Janik <timj@gtk.org>
* glib.h:
(g_chunk_new0): use g_mem_chunk_alloc0() to allocate the memchunk,
so the correct size of the memchunk is allocated with 0's and not
a memory portion of the size of the desired type.
* gmem.c: new function g_mem_chunk_alloc0() which will initialize
a memory area allocated with g_mem_chunk_alloc() with 0's.
Wed Aug 26 06:32:40 1998 Tim Janik <timj@gtk.org>
* glib.h:
* gstrfuncs.c: new function g_strnfill() to return a new string
of specified length, filled with a specific character.
Mon Aug 24 02:08:56 1998 Tim Janik <timj@gtk.org>
* glib.h:
* gstring.c:
* gstrfuncs.c:
(g_vsprintf): removed this function which was not publically
exported in glib.h. to export it, it should have been named
differently in the first place, since its semantics differ from
vsprintf(). apart from that, it was a possible cause for
problems since it worked on a previously allocated memory area and
was used in a lot places of glib. exporting it would have been a
guararant for problems with threaded programs.
(g_printf_string_upper_bound): exported this function to return
a string size, guarranteed to be big enough to hold the fully
expanded format+args string. added 'q', 'L' and 'll' flag handling.
in fact, the newly allocated area is in most cases much bigger than
required.
(g_strdup_vprintf()): new function returning a newly allocated string
containing the contents of *format and associated args (size is
calculated with g_printf_string_upper_bound()).
(g_strdup_printf): new function which wraps g_strdup_vprintf().
* configure.in: check for va_copy() or __va_copy() alternatively.
check whether va_lists can be copyied by value.
* glib.h: provide a definition for G_VA_COPY.
* glib.h:
* gmessages.c:
(g_logv):
(g_vsnprintf):
pass va_lists by value, not by reference, since this causes problems
on platforms that implement va_list as as arrays. internaly, use
G_VA_COPY (new_arg, org_arg); va_end (new_arg); to produce a second
va_list variable, if multiple passes are required. changed all
callers.
* glib.h:
* gerror.h:
renamed g_debug() to g_on_error_query(), cleaned up a bit.
renamed g_stack_trace() to g_on_error_stack_trace() since both
functions cluttered different namespaces.
there is an appropriate comment in glib.h now that explains the
unix and gdb specific dependencies of both functions.
removed g_attach_process().
g_on_error_stack_trace() should probably be handled with caution,
i've seem several different linux versions (2.0.x) become unstable
after invokation of this function.
Tue Aug 18 04:40:17 1998 Tim Janik <timj@gtk.org>
* glib.h:
* gmessages.c: new function g_log_set_always_fatal() to set an
additional fatal_mask for log levels that are considered to be fatal
globally (required by gtk). since this mask is not domain-associated,
it is restricted to the log levels, introduced by glib itself.
* gmem.c:
* grel.c:
* gtree.c (g_tree_node_check):
don't use g_print() calls for informational/debugging output,
but log all this stuff through g_log() with G_LOG_LEVEL_INFO.
libraries shouldn't use printf(), g_print() or g_printerr() at all.
Tue Aug 18 02:46:44 1998 Tim Janik <timj@gtk.org>
* glib.h (__STRICT_ANSI__): if __STRICT_ANSI__ is defined, make
`inline' a noop, since strict ANSI rules don't permit `inline'.
Sun Aug 16 23:23:46 CDT 1998 Shawn T. Amundson <amundson@gtk.org>
* Released GLib 1.1.3
* gmodule/Makefile.am: added gmodule-dl.c and gmodule-dld.c to
EXTRA_DIST
* glib.spec: version = 1.1.3
Mon Aug 17 01:46:14 1998 Tim Janik <timj@gtk.org>
* glib.m4: feature an extra MODULES parameter, so glib-config can
be invoked with the "gmodule" argument.
* glib.h: changed the log level to G_LOG_LEVEL_CRITICAL for all
g_return*_if_fail statements, and made them issue a message
like "assertion `%s' failed".
* gmessages.c (g_logv): ugh, don't pass log_domain as NULL to
g_log_find_domain.
Sun Aug 16 20:28:27 1998 Tim Janik <timj@gtk.org>
* version bump to 1.1.3, binary age 0, interface age 0.
* glib.h: be nice to platforms that don't have gint64 and don't
issue #warning on every compilation. since glib doesn't require
gint64 itself, packages that need gint64 should test for this
themselves.
* glib.h:
* gutils.c: added a new function g_vsnprintf().
Fri Aug 14 16:41:53 1998 Tim Janik <timj@gtk.org>
* glib.h: added static inline functions for bit mask tests:
g_bit_nth_lsf, g_bit_nth_msf and g_bit_storage.
Fri Aug 13 14:23:37 1998 Tim Janik <timj@gtk.org>
* glib.h:
* gmessages.c:
revised the message handling system, which is now based on a new
mechanism g_log*. most of the assertment macros got adapted to
feature the new g_log() call with an additional specification of
the log level in a preprocessor macro G_LOG_DOMAIN. if G_LOG_DOMAIN
is undefined upon the includion of glib.h, it'll be defined with a
value of (NULL) and thus preserves the original bahaviour for
warning and error messages. the message handler setting functions
for g_warning, g_error and g_message are only provided for backwards
compatibility and might get removed somewhen.
* Makefile.am: feature the G_LOG_DOMAIN macro to set the log domain
to "GLib" upon compilation. we currently have to add this definition
to the DEFS variable.
* testglib.c: we need an ugly #undef G_LOG_DOMAIN at the start
of this file currently, since automake doesn't support per target
_CFLAGS yet.
* glib.h: changed some gints to gbooleans, made a few const corrections,
removed some superfluous G_STMT_START{}G_STMT_END wrappers, added some
in other required places.
* gnode.c:
(g_node_prepend):
(g_node_insert_before):
(g_node_insert):
(g_node_append_data):
(g_node_prepend_data):
(g_node_insert_data_before):
(g_node_insert_data):
(g_node_append):
return (node), so these macros/functions can be usefully chained with
g_node_new().
[GModule]
Fri Aug 14 02:24:39 1998 Tim Janik <timj@gtk.org>
* Makefile.am: feature the G_LOG_DOMAIN macro to set the log domain
to "GModule" upon compilation. we currently have to add this definition
to the DEFS variable.
* testgmodule.c: we need an ugly #undef G_LOG_DOMAIN at the start
of this file currently, since automake doesn't support per target
_CFLAGS yet.
Mon Aug 10 02:17:19 1998 Tim Janik <timj@gtk.org>
* Makefile.am: minor hack to cause SUBDIRS (gmodule) to be build
last. we do this by making all-recursive-am depend on all-am.
Mon Aug 10 02:18:31 1998 Tim Janik <timj@gtk.org>
* Makefile.am (lib_LTLIBRARIES): for now, skip the dependency on
-lglib for libgmodule-1.1.la, libgplugin_a.la and libgplugin_b.la
since this clashes with inter-library-dependencies for not installed
libraries. glib-config takes care of this for the usuall case, but
there needs to be a better way...
Wed Aug 05 01:15:36 1998 George Lebl <jirka@5z.com>
* testglib.c: fix 64-bitness in g_prints, sizeof doesn't
seem to return int so I cast it for printing, probably
just cosmetic