1999-01-11 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Find right thread system on DG/UX. Thanks to Marc
J. Fraioli <fraioli@dg-rtp.dg.com> for hint. Finally removed the
stuff for -fstack-check, that didnt work anyway.
1999-01-11 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Test for localtime_r only after including the
right MT enabling CFLAGS (i.e. -D_REENTRANT on most systems).
* gdate.c (g_date_set_time): Emit warning, if no localtime_r
function is available on thread enabled systems. Define ptm only,
if really needed, and assert on it.
* testglib.c:
Make all aux functions static.
* tests/Makefile.am, tests/dirname-test.c, tests/type-test.c:
New tests dirname-test and type-test, from testglib.
* configure.in:
Add checks for vasprintf, localtime_r.
* gdate.c (g_date_set_time):
Use localtime if localtime_r is not available.
* gstrfuncs.c (g_strdup_vprintf):
Use glibc vasprintf if possible; it's a bit faster than using
GLib routines, and makes output code a bit smaller.
* acconfig.h:
Remove HAVE_VSNPRINTF and HAVE_VPRINTF. autoheader picks these
up automatically and puts them in config.h.in.
Thu Jan 7 15:14:08 1999 Owen Taylor <otaylor@redhat.com>
* gmain.c (g_source_free_func): Call the source-specific
free function when the hook is freed not when it
is destroyed; this fixes a bug where a timeout destroyed
from itself would access already freed data.
1999-01-07 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gutils.c (g_get_any_init): Here we must replace getpwuid by
getpwuid_r, but as I do not know how for now, I just made a FIXME
note ;-)
* gdate.c (g_date_set_time): localtime --> localtime_r to make it
thread safe.
* configure.in: We do not need to check for broken solaris mutex
intitializer any longer. Provide a macro to show the used thread
implementation. Not nice, but this is needed until thread support
is completed here inside glib.
* gthread/testgthread.c: conditionally compile according to the
G_THREADS_IMPL_??? macros.
(test_private_func): use rand_r instead of rand to make it
thread safe.
Mon Jan 4 20:58:50 1999 Tim Janik <timj@gtk.org>
* gscanner.c: eliminated extraneous "register" qualifiers in variable
declarations.
* gmain.c: #undef events and revents which may have been defined in
sys/poll.h for SVR3,4 compatibility on some AIX systems. fix been
provided by Philippe Defert <Philippe.Defert@cern.ch>.
Mon Jan 4 14:38:11 1999 Tim Janik <timj@gtk.org>
* glib.h: adjusted the g_strdup_a, g_strndup_a and g_strconcat3_a macros
so their arguments get only evaluated once. changed g_strconcat3_a to
have the same semantics as g_strconcat, i.e. if a certain argument is
NULL, the rest of the parameter list is skipped.
* tests/alloca-test.c: removed #if/#endif G_HAVE_ALLOCA, we need to be
able to compile on all systems. added test for g_strconcat() semantics.
* we need a alloca() replacement for !G_HAVE_ALLOCA rsn!
Mon Jan 4 02:58:13 CST 1999 Shawn T. Amundson <amundson@gtk.org>
* Released GLib 1.1.12
* INSTALL:
NEWS:
README:
configure.in:
glib.spec:
docs/glib-config.1: version=1.1.12
* tests/Makefile.am: fixed so it works properly with
builddir and srcdir.
* tests/Makefile.am:
add array-test.c
* tests/array-test.c:
New module, tests array family
* tests/hash-test.c, tests/list-test.c, tests/slist-test.c,
tests/string-test.c, tests/node-test.c:
Clean out cruft left over from testglib.
Sat Jan 2 02:20:59 1999 Tim Janik <timj@gtk.org>
* ghook.c:
(g_hook_list_invoke):
(g_hook_list_invoke_check):
(g_hook_list_marshal_check):
(g_hook_list_marshal): avoid unneccessary extra hook referencing (the
explicit hook referencing became unneccessarry with my changes from
Mon Dec 21 21:48:29 1998).
* gmain.c (g_main_iterate): fixed reference counting leaks with
premature loop aborts.
Fri Jan 1 22:47:44 1999 Tim Janik <timj@gtk.org>
* gscanner.c (g_scanner_unexp_token): handle G_TOKEN_IDENTIFIER_NULL
as G_TOKEN_IDENTIFIER.
* configure.in, glib.h:
Added two new alloca-based function macros, g_strdup_a and
g_strconcat_a. These are stack-based and much faster than
their g_malloc-based counterparts. Kudos to Ulrich Drepper
for help on this one.
* acglib.m4
* configure.in: provide defaults for POLL sysdefs, simple enums
don't work with bitwise logic. Reported by Daniel Skarda
<0rfelyus@atrey.karlin.mff.cuni.cz>
-Yosh
Wed Dec 23 04:18:11 1998 George Lebl <jirka@5z.com>
* gmain.c: (g_get_current_time) don't cast to timeval since
timeval is for some reason not always a struct of longs, weird
Mon Dec 21 21:48:29 1998 Tim Janik <timj@gtk.org>
* glib.h:
* gmain.c: there was a reference count race for hooks during invocation
loops. since all (known) hook loop implementations, do currently start
out with g_hook_first_valid() and iterate with g_hook_next_valid(),
g_hook_first_valid() will now return a referenced hook, and
g_hook_next_valid() will "eat" that, and eventually transfer it to
the next hook. <sigh> unfortunately this requires g_hook_next_valid()
to take the hook_list as additional argument.
* gmain.c (g_main_iterate): adjusted callers of g_hook_next_valid().
Mon Dec 21 03:48:04 1998 Tim Janik <timj@gtk.org>
* gmain.c (g_main_iterate): default initialize source_timeout with -1
so we have a sane timeout value if (*prpare) doesn't set it.
Sat Dec 19 16:56:02 1998 Owen Taylor <otaylor@redhat.com>
* gmain.c (g_main_poll): Allocate space for pollfd's
_after_ adding poll wake-up-pipe record.
* gmain.c (g_main_add_poll): Changed name
of internal function g_main_add_poll_unlocked()
back from the non-sensical g_main_add_unlocking_poll().
Sat Dec 19 06:25:55 1998 Tim Janik <timj@gtk.org>
* glib.m4: fixed a minor bug that would let configures bail out
if the MODULES argument contained newlines.
* acglib.m4: new file to be included by configure.in. it holds
special GLIB_ autoconfiguration macros, eventually some of the
easier ones should be moved into glib.m4, e.g. GLIB_IF_VAR_EQ,
GLIB_STR_CONTAINS or GLIB_ADD_TO_VAR.
1998-12-18 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in (have_threads): Changed the last pthread_cond_init
to pthread_attr_init.
1998-12-18 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* testgthread.c (new_thread): As a joinable thread seems to be the
default on posix, leave the explicit setting out, as it causes
problems on some older platforms.
Fri Dec 18 00:03:17 1998 Tim Janik <timj@gtk.org>
* glib.h:
* gmain.c:
(g_main_is_running): new function to check whether a main loop has been
quitted.
(g_main_new): added a gboolean argument to determine whether the loop
should be considered initially running or not. however, g_main_run ()
will still reset the main loops running state to TRUE upon initial
entrance.
* gmain.c:
(g_main_iterate): documented this function's purpose in 5 steps.
for step 2), flag sources as G_SOURCE_READY even if !dispatch and
check G_SOURCE_READY prior to (*prepare), so we don't call (*prepare)
on them multiple times.
Thu Dec 17 23:43:47 1998 Tim Janik <timj@gtk.org>
* gmain.c (g_main_add_poll): reordered arguments, so GPollFD* comes
first, <sigh> (sorry Snorfle, i should have let you know in the first
place).
(g_main_dispatch): stack G_HOOK_FLAG_IN_CALL flags. call source's
destructor when destroying a source.
1998-12-17 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* garray.c (g_ptr_array_remove_index): Fixed size in g_memmove,
reported by Alexander Larsson <alla@lysator.liu.se>.
* gmem.c: Fixed bug, that made compile fail for -DENABLE_MEM_PROFILE.
Wed Dec 16 22:32:13 CST 1998 Shawn T. Amundson <amundson@gtk.org>
* glib.h:
giounix.c: s/g_main_poll_add/g_main_remove_add/g
s/g_main_poll_remove/g_main_remove_poll/g
s/g_main_poll_add_unlocking/g_main_add_unlocking_poll/g
(from Tim Janik)
* gthread-posix.c: use g_free in mutex_free (from Tim Janik)
Thu Dec 17 04:10:49 1998 Tim Janik <timj@gtk.org>
* glib.h (G_LOCK_DECLARE_*): if !G_THREADS_ENABLED, eat the
trailing semicolon with a bogus function declaration, instead
of with a bogus variable declarations, so we avoid unused
variable warnings.
1998-12-16 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* docs/glib-config.1: Updated to reflect the existence of gthread.
* gmain.c (g_main_poll_add_unlocking): Changed
g_main_poll_add_unlocked to g_main_poll_add_unlocking to match
semantic, (indeed, main_loop must be locked, when calling this
function). Removed the unlocking from the end of that function, as
that is not right. Made a 'HOLDS' comment above the function.
Wed Dec 16 03:16:58 1998 Tim Janik <timj@gtk.org>
* configure.in: version bump to 1.1.8, binary age 0, interface age 0.
* glib.h: changed g_lock() to G_LOCK(), g_unlock() to G_UNLOCK() and
g_trylock() to G_TRYLOCK(), since these are macros that expand to
nothing with --disable-threads.
changed G_LOCK_DEFINE() to G_LOCK_DECLARE() and introduced
G_LOCK_DECLARE_STATIC() to achive the results of static G_LOCK_DECLARE().
changed semantics of g_thread_supported to g_thread_supported() so it
can be used as a function like g_module_supported(). the actuall
definition is still a macro that expands into a variable for
performance reasons though.
various indentation and coding style cleanups.
* configure.in: added --enable-threads that defaults to yes.
* gmutex.c: changed tests g_thread_supported to g_thread_supported (),
changed variable settings of g_thread_supported
to g_threads_got_initialized.
garray.c:
gcache.c:
gdataset.c:
gdate.c:
ghash.c:
glist.c:
gmain.c:
gnode.c:
gslist.c:
gstring.c:
gtree.c:
gutils.c:
changed s/g_lock/G_LOCK/, s/g_unlock/G_UNLOCK/,
s/static G_LOCK_DEFINE/G_LOCK_DECLARE_STATIC/.
Tue Dec 15 17:17:46 1998 Owen Taylor <otaylor@redhat.com>
* glib.h giounix.c giochannel.c: Use an "inheritance"
scheme for IO channel memory allocation.h
1998-12-15 Havoc Pennington <hp@pobox.com>
* gdate.c (g_date_prepare_to_parse): Solaris has a broken strftime
that produced garbage output for the test date I was using to
set up the parser. So use a different date that Solaris seems
to like.
1998-12-15 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Dont complain, if --without-threads or
--with-threads=none is supplied; Test for pthread_attr_init
instead of pthread_cond_init, if threads seems to be supported by
standard glib. (CFLAGS): Use G_THREAD_CFLAGS for compiling of glib
as well.
* glib.h, gmutex.c: Changed private to private_key to avoid
problems when compiling with under C++.
Tue Dec 15 10:40:09 1998 Owen Taylor <otaylor@redhat.com>
* gnode.c glist.c gslist.c: Make sure all
calls to g_node_validate_allocator are within
current_allocator lock, so we have consistency
on that point. (Should not really matter,
but this way we match the comments)
* glist.c (g_list_free_1): Removed some lines
that should never have been committed. (For
debugging)
branch. See the ChangeLog for details of the changes.
In brief overview:
- The set of threading functions can be set
- A default implementation is provided in -lgthread
- All static data structures are locked using these
functions if g_thread_init() is called.
Sat Dec 12 19:08:59 1998 Tim Janik <timj@gtk.org>
* configure.in: always define G_HAVE_INLINE if __cplusplus is
defined, reported by Wan-Teh Chang <wtc@netscape.com>.
Thu Dec 10 21:49:39 CST 1998 Shawn T. Amundson <amundson@gtk.org>
* Released GLib 1.1.7
* INSTALL:
NEWS:
README:
configure.in:
glib.spec:
docs/glib-config.1: Increased version to 1.1.7
1998-12-02 Havoc Pennington <hp@pobox.com>
* gdate.c (g_date_set_month): If Julian is valid, we have to
update the dmy representation before setting the components
of it.
(g_date_set_day): Same.
(g_date_set_year): Same.
1998-12-02 Havoc Pennington <hp@pobox.com>
* testgdate.c, testgdateparser.c: Two new files. This is kind of
ugly code, but I want to go ahead and make the tests available.
It isn't contaminating any other code. :-) Since one of these
is interactive and the other takes a while to run, I've kept
them separate from testglib for now.
* Makefile.am: Build gdate test programs.
someone does the necessary updates.
Sat Nov 28 12:53:47 1998 Owen Taylor <otaylor@redhat.com>
* Makefile.am configure.in acconfig.h giochannel.c
glib.h glist.c gmain.c gutils.c:
- Revised GIOChannel to provide a generic virtual-function
based interface.
- Added unix fd-based GIOChannel's
- Added generic main-loop abstraction
- Added timeouts and idle functions using main-loop abstraction.
1998-12-02 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h:
* gdate.c: changed `gpointer struct_tm_p' parameter of
g_date_to_struct_tm back to `struct tm *tm' and forward declared
`struct tm' in glib.h; yes, this is nice, we still need not
include time.h.
Wed Dec 2 02:10:59 1998 Tim Janik <timj@gtk.org>
* gdate.c: s/time_t/GTime/ and s/g_print/g_message/
include time.h.
* glib.h: removed #include <time.h>, changed time_t paramter of
g_date_set_time() to time_t, changed struct tm parameter of
g_date_to_struct_tm to `gpointer struct_tm_p'. yes, this is not
nice, but including time.h actually breaks a bunch of code.
this breaks something let me know and I will fix it.
1998-11-30 Havoc Pennington <hp@pobox.com>
* gdate.c: New file, implements calendrical calculations.
* glib.h: Added declarations for GDate module.
Mon Nov 30 07:12:10 1998 Tim Janik <timj@gtk.org>
* glib.h:
* ghook.c: added g_hook_list_marshal_check() to eventually destroy
hooks after they got marshalled.
Thu Nov 26 01:36:20 1998 Tim Janik <timj@gtk.org>
* glib.h:
* ghash.c: reverted the g_hash_table_set_key_freefunc() addition,
since it's to specialized and needs to be resolved in a generic
fashion.
Tue Nov 24 18:57:59 PST 1998 Manish Singh <yosh@gimp.org>
* applied glib-tml-981120-0, change log appended below.
* glibconfig.h.win32: passthrough 64-bit constants unchanged, VC++
infers them
Fri Nov 20 22:26:43 1998 Tor Lillqvist <tml@iki.fi>
* glib.h: Moved MSC pragmas from glib.h to glibconfig.h.win32.
peer_offset field in WIN32 part of GIOChannel removed, need_wakeups
added. Added "extern" to __declspec(dllimport).
* gutils.c: Initialise need_wakeups.
* glibconfig.h.win32: Pragmas moved here. Define G_GINT64_CONSTANT.
* gmodule/gmodule.def: Added g_module_build_path.
* gscanner.c: (g_scanner_cur_value) Move initailisation of v
to before its use.
* glib.def: Added g_(s)list_sort.
* makefile.msc: A few more comments.
-Yosh
Tue Nov 24 14:05:47 EST 1998 Michael K. Johnson <johnsonm@redhat.com>
* glib.h: added GFreeFunc and g_hash_table_set_key_freefunc()
prototype.
* ghash.c: added g_hash_table_set_key_freefunc() implementation.
Modified the prototypes of the functions g_hash_node_destroy() and
g_hash_nodes_destroy(), and changed the functions that call them
to match the new definitions.
This changes no external interfaces, and should create no binary
or source incompatibilities. It does add a member to the
GHashTable structure.
Tue Nov 24 09:40:00 1998 Tim Janik <timj@gtk.org>
* glib.h: removed the GListAllocator type and its g_*_allocator_*()
function variants (which weren't working anyways) in favour of a
generic GAllocator type. new functions:
g_allocator_new, g_allocator_free, g_slist_push_allocator,
g_slist_pop_allocator, g_list_push_allocator, g_list_pop_allocator,
g_node_push_allocator and g_node_pop_allocator.
* gstring.c: removed bogus slist allocator code.
* gtree.c: maintain own list of free tree nodes and don't waste
GSLists for that, removed bogus slist allocator code.
* glist.c: use GAllocators for node allocation.
* gslist.c: use GAllocators for node allocation.
* gnode.c: use GAllocators for node allocation.
* gdataset.c: cleanups wrt automatic initialization.
Mon Nov 23 10:03:58 1998 Owen Taylor <otaylor@gtk.org>
* glib.h garray.[ch]: added g_array_insert_vals() to
insert elements at an arbitrary index, and
g_array_insert_val() macro.
Sun Nov 22 17:07:03 1998 Tim Janik <timj@gtk.org>
* glib.h:
* gslist.c: new function g_slist_copy() to duplicate a list with all its
data pointers.
* glist.c: new function g_list_copy.
Sat Nov 21 14:57:39 CST 1998 Shawn T. Amundson <amundson@gtk.org>
* INSTALL:
NEWS:
README:
configure.in:
glib.spec: Updated to version 1.1.5
* Released GLib 1.1.5
Mon Nov 16 07:48:06 1998 Tim Janik <timj@gtk.org>
* glib.h (g_bit_nth_msf): fixed off-by-one error, so we don't waste
a loop iteration if (-1) was passed, reported by Andreas Bombe
<andreas.bombe@munich.netsurf.de>.
Fri Nov 13 15:17:34 1998 Owen Taylor <otaylor@redhat.com>
* glist.c gslist.c glib.h: Added g_list_sort() and
g_slist_sort() to merge sort GLists and GSLists.
Submitted by Sven Over <sven.over@ob.kamp.net>
over a year ago!
* testglib.c: Test the new sort functions.
INCLUDES is the right way to add to CFLAGS, not DEFS.
Also there are bugs with '+=' in makefiles.
Got rid of DEFS line by moving G_LOG_DOMAIN setting into INCLUDES.
Removed redundant -I from INCLUDES.
This fixes an annoying bug where autoconf's DEFS, which includes
the important -DHAVE_CONFIG_H, was lost. (due to += weirdness)
Wed Nov 11 18:11:24 EST 1998 Gregory McLean <gregm@comstar.net>
* docs/*.sgml : Batch of new documentation that should be easier
to maintain and extend. Plus generate whatever sort of doc file
you would like. I didn't change the Makefile stuff as I'm not sure
what default doc type people want. Oh and this is all DocBook format.
Enjoy!
* configure.in: use __extension__ for long long on gcc >= 2.8 and
egcs, and provide a G_GINT64_CONSTANT wrapper so -ansi -pedantic
compiles clean.
* glib.h: make the endian x86 asm __const__ so the compiler can do
better optimizations. Also remove the cc clobber, these shouldn't
be changing condition codes. Ditch some redundant casts. Add an
optimization for 64-bit endian conversions in x86. Use constant
wrapper for the generic method.
* testglib.c: use constant wrappers for 64-bit constants
-Yosh
1998-11-04 Phil Schwan <pschwan@cmu.edu>
* configure.in: Added 'strncasecmp' to the list of functions to be
searched for.
* glib.h: Added a prototype for 'g_strncasecmp'
* strfuncs.c: (g_strncasecmp) new function modeled closely after
'g_strcasecmp'
1998-11-03 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h:
* garray.h:
(g_array_remove_index): new function for removing an entry from an
array while preserving the order
(g_array_remove_index_fast): new function for removing an entry
from an array. the order might be distorted
(g_ptr_array_remove_index_fast, g_ptr_array_remove_fast): new
functions; working similiar to the above. (they have the semantic
of the old g_ptr_array_remove[_index] functions)
(g_ptr_array_remove_index, g_ptr_array_remove): new semantic. now
the order of the elements in the array is not changed
(g_byte_array_remove_index, g_byte_array_remove_index_fast): new
functions; byte_array wrapper for g_array_remove_index[_fast]
* glib.h
* configure.in: endian macros defined using the glibconfig.h mechanism now
* ghook.c: casts for GHookFunc and GHookCheckFunc to avoid warnings
-Yosh
* applied glib-tml-981101-1 patch from Tor Lillqvist (ChangeLog
entry appended below)
* testglib.c
* gstrfuncs.c
* glib.h: use G_HAVE_GINT64, since HAVE_GINT64 is gone
* gmessages.c
* gscanner.c: #include <config.h> in here too, for HAVE_UNISTD_H
-Yosh
* Makefile.am (glibconfig.h): New rule.
(stamp-gc-h): New rule. Generate `glibconfig.h'.
* configure.in (AM_CONFIG_HEADER): It is now `config.h'.
(HAVE_BROKEN_WCTYPE): On Solaris, look for iswalnum in -lw before
concluding "broken wctype".
(glibconfig.h): Use AC_OUTPUT_COMMANDS to put generation code into
config.status.
* glib.h: Remove a lot of tests and defines. All these have been
moved to `configure.in (glibconfig.h)'.
* gerror.c: Include <config.h>.
* gmem.c: Likewise.
* gstrfuncs.c: Likewise.
* gutils.c: Likewise.
This could cause some short term instability.
Sat Oct 31 05:08:26 1998 Tim Janik <timj@gtk.org>
* glib.h: removed old G_ENUM(), G_FLAGS(), G_NV() and G_SV() macros.
added macros G_STRUCT_OFFSET(), G_STRUCT_MEMBER_P() and
G_STRUCT_MEMBER() for handling structure fields through their offsets.
(struct _GHookList): added a hook_free function member, that can be used
to free additional fields in derived hook structures.
g_hook_free(): if hook_list->hook_free != NULL, call this function prior
to freeing the hook. (this functionality should have been there in the
first place, it just got forgotten as an implementation detail).