be more descriptive on unsupported systems.
[platform/upstream/glib.git] / ChangeLog
1 Wed Feb 10 12:01:42 1999  Tim Janik  <timj@gtk.org>
2
3         * configure.in: don't reset G_MODULE_IMPL, so it can be overridden
4         from the command line.
5
6 1999-02-10  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
7
8         * glib.h: s/G_LOCK_DECLARE/G_LOCK_DEFINE/ throuhout glib. Added
9         G_LOCK_EXTERN macro to declare a lock externally.
10
11 Wed Feb 10 06:20:30 1999  Tim Janik  <timj@gtk.org>
12
13         * gmutex.c (g_static_private_set): invoke destroy notifier when
14         overwriting values, initialize new array fields with NULL.
15         (g_static_private_free_data): do not skip destroy notification for
16         data == NULL.
17
18         * gutils.c (g_direct_equal): compare pointer values directly instead
19         of just their guint values which is a loosing conversion for
20         sizeof(gpointer)==8 systems.
21         (g_get_any_init): restructured code so we don't use endless loops like
22         while (1), which boil down to an ugly alias for goto.
23         strip ,.* from the real name.
24
25 February 9, 1999 sopwith@redhat.com
26
27         . glist.c, gnode.c, gslist.c: allocate pools of 128 items instead
28         of 1024 items.
29
30 1999-02-08  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
31
32         * configure.in, acconfig.h: Changed the test for getpwuid_r to
33         exclude those systems (i.e. IRIX), that set ENOSYS after the call.
34         Test, if pthread_getspecific is posix like or something different,
35         as on PCThreads.        
36
37 Sun Feb  7 21:56:00 1999  Owen Taylor  <otaylor@redhat.com>
38
39         * gmem.c (g_mem_profile): Copy all elements
40         of the allocations[] array, including the last.
41         (Pointed out by "Matthew W. Samsonoff" <mws7323@osfmail.isc.rit.edu>)
42         
43 1999-02-05  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
44
45         * configure.in: Make the error message in case of a broken thread
46         system a bit more informative.
47
48         * gutils.c (g_get_any_init): Changed the error logic again, now
49         only leaving the memory doubling loop, when success is reached or
50         when the user isn't found or when the buffer is 32k big,
51         additionally now getpwuid will be run, if getpwuid_r didn't work
52         out properly. A warning is issued however.
53
54 Thu Feb 04 20:42:24 1999  Tor Lillqvist  <tml@iki.fi>
55
56         * glibconfig.h.win32 config.h.win32: Update GLIB_MICRO_VERSION.
57
58 1999-02-04  Christopher Blizzard  <blizzard@redhat.com>
59
60         * glib.spec (Packager): Change my email address
61
62 Thu Feb  4 01:45:01 PST 1999 Shawn T. Amundson <amundson@gtk.org>
63
64         * ChangeLog
65           NEWS
66           README
67           configure.in
68           glib.spec
69           docs/glib-config.1: version=1.1.15
70
71         * Released GLib 1.1.15
72
73 Tue Feb 02 00:08:54 1999  Tor Lillqvist  <tml@iki.fi>
74
75         * gmessages.c (g_log_default_handler): (Win32:) Don't call
76         ensure_stdout_valid (which would open an unneeded console window)
77         if we're calling a logging function.  Define ensure_stdout_valid
78         as an empty macro on Unix.
79
80         * gutils.c (g_get_any_init): (Win32:) Trust HOME first if defined,
81         then try HOMEDRIVE and HOMEPATH.
82
83 Mon Feb  1 19:04:28 1999  Owen Taylor  <otaylor@redhat.com>
84
85         * gmain.c (g_main_iterate): Release the main_loop
86          lock around calls to prepare() and check() so
87          that we are not holding the main loop lock
88          over user code.
89
90 1999-01-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
91
92         * configure.in: Moved the check for MT safe function variants
93         after the determination of the MT cflags and use them there.
94
95 1999-01-29  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
96
97         * configure.in: Fixed typo. Now HPUX 11 thread system detection
98         should work.
99
100         * gutils.c (g_get_any_init): Changed initial bufsize to 64. Should
101         solve some problems out there.
102
103 Wed Jan 27 23:21:50 CST 1999 Shawn T. Amundson <amundson@gtk.org>
104
105         * INSTALL
106           NEWS
107           README
108           configure.in
109           glib.spec
110           docs/glib-config.1: version=1.1.14
111
112         * Released GLib 1.1.14
113
114 1999-01-28  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
115
116         * configure.in: Simplified configure.in test for posix threads,
117         systems, that provide /usr/include/pthread.h should also have the
118         posix thread library. This is to avoid writing down all the tests
119         twice. New test for thread system on HPUX 11. Info from Matt
120         Nottingham <matt@sar.dera.gov.uk>.
121
122 Wed Jan 27 20:39:49 PST 1999 Manish Singh <yosh@gimp.org>
123
124         * acinclude.m4: Xsed isn't valid here, don't use it
125
126         * ltmain.sh
127         * ltconfig: better file magic regexp for Linux libs
128
129         * gmodule/Makefile.am: arg, noinst_LTLIBRARIES doesn't make shared
130         libs, revert my previous change to this file
131
132         * docs/texinfo.tex: add it so automake doesn't whine
133
134 Wed Jan 27 01:57:19 1999  Tim Janik  <timj@gtk.org>
135
136         * configure.in (G_MODULE_HAVE_DLERROR): applied patch from Andrej
137         Borsenkow <borsenkow.msk@sni.de> to also check for dlsym() in system
138         libraries and -ldl, to catch systems that provide dlopen() in libc
139         and dlsym() in libdl. this is at least the case for Reliant UNIX
140         5.44 (labeling itself as SINIX).
141
142 Tue Jan 26 13:39:22 PST 1999 Manish Singh <yosh@gimp.org>
143
144         * configure.in: don't use backquotes in warning text
145
146 1999-01-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
147
148         * gdate.c (g_date_set_time): Removed the #warning about MT
149         unsafety without localtime_r.
150
151         * configure.in: Moved it here.
152
153 Mon Jan 25 10:07:53 1999  Raph Levien  <raph@gimp.org>
154
155         * configure.in: (#define G_THREADS_IMPL...) Changed the #define,
156         adding the G_THREADS_IMPL_ prefix to $g_threads_impl_def because
157         it looked wrong to me and was breaking gimp compile.
158
159 Mon Jan 25 15:34:43 1999  Timur Bakeyev <mc@bat.ru>
160
161         * configure.in, gstrfuncs.c: Inverted logic of NO_SYS_SYGLIST_DECL -
162         now it's normal (see 1999-01-19 Josh MacDonald). Also, remove from
163         #include <signal.h> wrapper NO_SYS_SYGLIST - *sys_syglist[] declara-
164         tion hides there.
165
166 1999-01-25  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
167
168         * configure.in: Do not use the thread libs, when searching for
169         some functions, as this might require glib to always be linked
170         with the thread libs on some platforms.
171
172         * gutils.c (g_get_any_init): Don't set errno to zero and use it
173         only as the error code, if the function returned a value less
174         0. It might happen, that the call succeeds, even though the errno
175         is set during the call (i.e. it first looks for a passwd file,
176         which is not found). Submitted by Michael Natterer
177         <mitschel@cs.tu-berlin.de>. BTW: Sorry for all the mess with that
178         `getpwuid_r' change, but it had to be done once.
179
180 Sun Jan 24 10:33:30 1999  Tim Janik  <timj@gtk.org>
181
182         * gutils.c (g_get_any_init): reverted raja's changes, since they leaked
183         a struct passwd contents buffer and for the rest mostly substituted a
184         while loop with a bunch of gotos.
185         restored the getpwuid() code to what we had after my recent clean ups
186         ("Sat Jan 23 02:14:28 1999 Tim Janik"), module yosh's recent changes.
187         to feature solaris behaviour of directly returning errno, we don't
188         modify error anymore if it's > 0 and simply reset errno.
189         don't reset g_home_dir for !NATIVE_WIN32 && !NATIVE_WIN32.
190
191 1999-01-24  Raja R Harinath  <harinath@cs.umn.edu>
192
193         * gutils.c 
194         (g_get_any_init) [HAVE_GETPWUID_R && HAVE_GETPWUID_R_POSIX]: 
195         Hopefully got the error handling for `getpwuid_r' right.
196         (g_get_any_init) [HAVE_GETPWUID_R && !HAVE_GETPWUID_R_POSIX]:
197         Fix typo (change `pw == NULL' to `pw != NULL').
198         
199 Sun Jan 24 00:36:22 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
200
201         * ghash.c:
202         - Revert previous "fix" (which really just did things a
203           different way).
204         - (g_hash_table_remove): Don't need to support multiple values
205           for a single key.
206
207         * tests/hash-test.c:
208         Add test where hash function always returns a single value.
209         Add beginnings of tests for g_hash_table_foreach[_remove] and
210         g_hash_table_remove.
211
212 Sat Jan 23 20:40:06 PST 1999 Manish Singh <yosh@gimp.org>
213
214         * gutils.c: removed the #warning about MT without getpwuid_r
215
216         * configure.in: and moved it here
217
218 Sat Jan 23 22:45:59 1999  Jeff Garzik  <jgarzik@pobox.com>
219
220         * ghash.c (g_hash_table_lookup_node, g_hash_table_lookup,
221                    g_hash_table_insert, g_hash_table_remove,
222                    g_hash_table_lookup_extended):
223           - Fixed bug that overwrote nodes in hash buckets instead of
224             adding them to the hash bucket node list.
225             Hash tables now work as advertised.
226
227         (g_hash_table_resize):
228           - Use g_new0 instead of manual init.
229           - Space out code a bit for readability.
230
231         (g_hash_nodes_destroy):
232           - Replaced "if (!hash_node) return;" with
233             "if (hash_node) {do stuff}".
234             Testing takes up less code space than explicit call to
235             'return' before end of function.  (look at gcc -S)
236
237         Updated module header copyright to 1999.
238         New module macro G_HASH_BUCKET for (table,key)->bucket lookups.
239
240         * tests/hash-test.c:
241         - Add two new tests, one with strings as the keys and values, and
242           one with ints as the keys and values.  Tests indirect (strings)
243           and direct (ints) hashing.
244         - Cleanup unused junk left over from testglib.c.
245         - Converted a g_print call to g_assert_not_reached.
246         - Updated copyright to 1999.
247
248         * testglib.c, tests/string-test.c:
249         - Init 'tmp_string' var to NULL, silencing uninit-var warning.
250
251 1999-01-23  Raja R Harinath  <harinath@cs.umn.edu>
252
253         * gutils.c (g_get_any_init) [HAVE_GETPWUID_R]:
254         Rewrite not to look at `errno' if library call succeeds, since
255         `errno' is not reset to 0.
256         
257 Sat Jan 23 16:17:04 1999  Tor Lillqvist  <tml@iki.fi>
258
259         * glibconfig.h.win32: Update the magic values for
260         pthread_mutex_t size and initializer bytes to match the
261         latest version of pthreads for Win32.
262
263 Sat Jan 23 02:14:28 1999  Tim Janik  <timj@gtk.org>
264
265         * gutils.c (g_get_any_init): cleaned up the errno mess for
266         GETPWUID. we especially don't want to g_error() out here!
267         the warning for G_THREADS_ENABLED and !HAVE_GETPWUID_R isn't
268         gcc related.
269         if !HAVE_PWD_H and !NATIVE_WIN32, g_free the home dir before
270         resetting it to NULL, why are we doing this anyways?
271         reordered code a bit so we always provide defaults (except
272         for g_home_dir).
273
274 Thu Jan 21 12:40:11 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
275
276         * tests/{Makefile.am, string-test.c, strfunc-test.c}:
277         Separate string and strfunc tests, working towards goal of
278         having separate test for each of the GLib modules.
279         Add a couple GString length tests.
280
281 Thu Jan 21 09:36:05 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
282
283         * configure.in:
284         Use AC_PREREQ not AC_REQUIRE for autoconf version test.
285
286 1999-01-21  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
287
288         * gutils.c (g_get_any_init): Changed error handling again, as the
289         error is not always set in errno, it is the return value on some
290         systems. What an evil world.
291
292 Thu Jan 21 05:35:20 1999  Tor Lillqvist  <tml@iki.fi>
293
294         * gstrfuncs.c: Include signal.h only when the signal names will be
295         needed.
296
297 Wed Jan 20 22:09:59 EST 1999 Mandrake <mandrake@mandrake.net>
298
299         * configure.in / Makefile.am : made some adjustments for automake 1.4
300         and autoconf 2.13 (per suggestions made by  Raja R Harinath
301         <harinath@cs.umn.edu>)
302
303 Wed Jan 20 20:33:14 EST 1999 Mandrake <mandrake@mandrake.net>
304
305         * autogen.sh: automake 1.4 and libtool 1.2d notices.
306         (maybe I'll write an actual test for automake 1.4 later)
307
308 Wed Jan 20 15:05:25 PST 1999 Manish Singh <yosh@gimp.org>
309
310         * HACKING: new file
311
312         * Makefile.am: since we require automake 1.4 now, ditch the build
313         top-level first and just use SUBDIRS
314
315         * gmodule/Makefile.am: use noinst_LTLIBRARIES instead of overriding
316         the install rule
317
318 Wed Jan 20 16:16:01 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
319
320         * gutils.c (g_get_any_init):
321         Revert previous patch, move error value set line down to proper
322         place.  Caught by Elliot Lee <sopwith@redhat.com>.
323
324 Wed Jan 20 20:48:58 GMT 1999  Adam D. Moss  <adam@gimp.org>
325
326         * gutils.c (g_get_any_init): All gtk apps were broken
327         here on my setup.  I changed the error to a warning to at
328         least get things limping.
329
330 1999-01-20  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
331
332         * gutils.c (g_get_any_init): Use getpwuid_r with the right
333         signature, if available.
334
335         * configure.in, acconfig.h: Test for existance of getpwuid_r and
336         its signature.
337
338 Tue Jan 19 20:52:43 1999  Tor Lillqvist  <tml@iki.fi>
339         
340         * Makefile.am (EXTRA_DIST): Add new Win32 files.
341
342         * README.win32: Describe the conditional compilation macros.
343
344         * makefile.lcc: Removed.
345
346 1999-01-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
347
348         * configure.in: Moved test for localtime_r and rand_r to a place
349         after the determination of the G_THREAD_LIBS and use them for
350         finding those functions, necessary on systems with a different C
351         library libc_r for threaded progs, like FreeBSD 2.2.x. Info from
352         Timur Bakeyev <mc@bat.ru>.
353
354 Tue Jan 19 00:44:24 1999  Josh MacDonald  <jmacd@axis.hip.berkeley.edu>
355
356         * gstrfuncs.c (g_strsignal): The "extern char* sys_siglist"
357         declaration breaks systems with different declarations, like
358         mine (FreeBSD).  So, I added a configuration variable to decide
359         whether the declaration is neccesary.  Change also appears on
360         line 275 of configure.in.
361
362 Sun Jan 17 17:13:54 CST 1999 Shawn T. Amundson <amundson@gtk.org>
363
364         * Released GLib 1.1.13
365
366         * README:
367           INSTALL:
368           docs/glib-config: ver=1.1.13
369
370 Mon Jan 18 00:02:46 1999  Tim Janik  <timj@gtk.org>
371
372         * NEWS: updates for 1.1.13.
373
374 Sun Jan 17 17:15:59 1999  Tim Janik  <timj@gtk.org>
375
376         * gtree.c (g_tree_traverse): removed assertion about rtree->root being
377         NULL, so this function can be applied to unpopulated trees as well, fix
378         provided by Simon Kagedal <sika8225@csd.uu.se>.
379
380 Sun Jan 17 11:17:19 1999 Christopher Blizzard  <blizzard@appliedtheory.com>
381
382         * glib.spec: add packager address
383
384 Sun Jan 17 11:10:05 1999 Christopher Blizzard  <blizzard@appliedtheory.com>
385
386         * glib.spec: increment version number to 1.1.13
387
388 Sun Jan 17 16:14:03 1999  Tim Janik  <timj@gtk.org>
389
390         * glib.h (g_error): if !defined (G_LOG_DOMAIN) define G_LOG_DOMAIN as
391         ((gchar*) 0) instead of ((void*) 0) to silence egcs C++ mode, reported
392         by Seth Alves <alves@hungry.com>.
393
394 Sun Jan 17 14:13:52 1999  Tim Janik  <timj@gtk.org>
395
396         * glib.h: added a define G_HOOK_DEFERRED_DESTROY, to substitute a noop
397         GHookList.hook_destroy function.
398
399         * ghook.c (g_hook_destroy_link): don't really call hook_destroy if it
400         is G_HOOK_DEFERRED_DESTROY. for the case where we invoke hook->destroy()
401         we now clean up the hook completely afterwards, i.e. data, func and
402         destroy are immediately set to NULL and hook_free can't play with that
403         values anymore.
404
405         * gmain.c (g_source_add): set hook_destroy to G_HOOK_DEFERRED_DESTROY,
406         instead of using an ugly _noop() hack, this is to avoid an uneccessary
407         function invokation. set hook_free to g_source_destroy_func, this way
408         we always invoke the destroy notifiers for user_data and source_data
409         after execution of dispatch(). thus, g_source_destroy_func() will always
410         be called within the main_loop lock (this wasn't really assured
411         before), and can release and reaquire the look around destroy notifier
412         invokation.
413
414 Sun Jan 17 11:01:40 1999  Tor Lillqvist  <tml@iki.fi>
415
416         * config.h.win32 glibconfig.h.win32: Increment version number here
417         also.
418
419 Sun Jan 17 05:12:17 1999  Tim Janik  <timj@gtk.org>
420
421         * configure.in: incremented version number to 1.1.13, bin age 0,
422         interface age 0.
423
424         * glib.h: added hook_destroy member to struct _GHookList.
425
426         * ghook.c (g_hook_destroy_link): if the hook_list defines a hook_destroy
427         function, use that to marshal hook destruction notifiers.
428
429         * gmain.c: removed g_source_free_func and added g_source_destroy_func,
430         which marshalls the user_data and source_data destructors of sources
431         outside of the main_loop lock.
432         removed GIdleData struct since its sole member callback can be passed
433         as source_data directly.
434         added a gboolean return value to all g_source_remove* functions,
435         indicating whether the source could be removed, because these functions
436         don't issue warnings upon unseccessful removals themselves. this way at
437         least the caller gets a chance to warn upon failing removals.
438         (g_main_iterate): set in_check_or_prepare around calls to check() or
439         prepare().
440         (g_main_pending): simply return FALSE if called from within check() or
441         prepare().
442         (g_main_iteration): issue a warning if called from within check() or
443         prepare() and bail out with FALSE.
444         (g_main_run): likewise.
445         (g_source_remove_by_funcs_user_data): new function to remove sources by
446         user data and function table.
447         (g_idle_remove_by_data): new function to really remove idles only, since
448         g_source_remove_by_user_data would remove timeouts or other sources as
449         well.
450
451 1999-01-16  Tor Lillqvist  <tml@iki.fi>
452
453         * Merge in current Win32 version:
454
455         * README.win32: More text.
456
457         * config.h.win32 glibconfig.h.win32: Update to match the
458         corresponding generated files on Unix.
459
460         * makefile.msc: Update with new source files, and gthread
461         library. Use the compiler flag -MD instead of using -D_DLL and
462         /nodefaultlib:libc msvcrt.lib in the link phase.
463
464         * glib.def: Update to include new functions, drop removed ones.
465
466         * glib.h: Add comments about main loop and polling on Win32. (In
467         general, it's only for the GIMP's use.) Add Win32 IO Channel
468         functions. Remove the obsoleted old IO Channel stuff (which was
469         in #if 0 already).
470
471         * giowin32.c: New file.
472
473         * gmain.c: Include config.h, conditionalize <sys/time.h>
474         inclusion.  Add g_poll implementation for Win32 (only for the
475         GIMP's needs for now, it's hard or even impossible to be as clean
476         and generic as on Unix). Implement g_get_current_time on Win32. If
477         threads aren't supported, don't try to wake up main thread's
478         loop. On Win32, use a semaphore and not a pipe to wake up the main
479         loop.
480
481         * gmessages.c: On Win32, allocate a console window if the standard
482         output handle is invalid before writing to stdout, and reopen stdout
483         to that console window.
484
485         * giochannel.c: Conditionalize unistd.h inclusion. Some indentation
486         cleanup.
487
488         * gstrfuncs.c: Include <signal.h>.
489
490         * gutils.c: On Win32, also check the HOMEDRIVE and HOMEPATH
491         environment variables.
492
493 Sun Jan 17 01:06:38 1999 Timur Bakeyev <mc@bat.ru>
494
495         * configure.in: Add support for FreeBSD 2.2.x macro _THREAD_SAFE.
496
497 Wed Jan 13 11:27:24 PST 1999 Manish Singh <yosh@gimp.org>
498
499         * glib.h: don't use inline for !__GNUC__ case with g_warning,
500         g_error, and g_message wrappers since some compilers throw
501         away arguments in this case
502
503 Tue Jan 12 21:59:14 PST 1999 Manish Singh <yosh@gimp.org>
504
505         * acinclude.m4
506         * ltconfig
507         * ltmain.sh: upgrade to libtool 1.2d (with fixes for irix6 and osf)
508
509         * testglib.c: removed unused cruft
510
511 Tue Jan 12 09:57:06 PST 1999 Manish Singh <yosh@gimp.org>
512
513         * gdate.c: #warning isn't portable, check for gcc
514
515 1999-01-12  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
516
517         * gdate.c: Include config.h to get HAVE_LOCALTIME_R macro.
518
519         * configure.in: Moved function check back to the place, they've
520         been before.
521
522 1999-01-11  Jeff Garzik  <jgarzik@pobox.com>
523
524         * gstrfuncs.c:
525         Do not use vasprintf.
526
527         * configure.in, glib.h, testglib.c, tests/.cvsignore,
528           tests/Makefile.am, tests/alloca-test.c:
529         Do not use alloca.
530
531 1999-01-11  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
532
533         * configure.in: Test for localtime_r only after including the
534         right MT enabling CFLAGS (i.e. -D_REENTRANT on most systems).
535
536         * configure.in: Find right thread system on DG/UX. Thanks to Marc
537         J. Fraioli <fraioli@dg-rtp.dg.com> for hint. Finally removed the
538         stuff for -fstack-check, that didnt work anyway.
539
540         * gdate.c (g_date_set_time): Emit warning, if no localtime_r
541         function is available on thread enabled systems. Define ptm only,
542         if really needed, and assert on it.
543
544 Sat Jan  9 15:08:44 1999  Jeff Garzik  <jgarzik@pobox.com>
545
546         * testglib.c:
547         Make all aux functions static.
548
549         * tests/Makefile.am, tests/dirname-test.c, tests/type-test.c:
550         New tests dirname-test and type-test, from testglib.
551
552 Sat Jan  9 13:53:00 1999  Jeff Garzik  <jgarzik@pobox.com>
553
554         * configure.in:
555         Add checks for vasprintf, localtime_r.
556
557         * gdate.c (g_date_set_time):
558         Use localtime if localtime_r is not available.
559
560         * gstrfuncs.c (g_strdup_vprintf):
561         Use glibc vasprintf if possible; it's a bit faster than using
562         GLib routines, and makes output code a bit smaller.
563
564         * acconfig.h:
565         Remove HAVE_VSNPRINTF and HAVE_VPRINTF.  autoheader picks these
566         up automatically and puts them in config.h.in.
567
568 Thu Jan  7 15:14:08 1999  Owen Taylor  <otaylor@redhat.com>
569
570         * gmain.c (g_source_free_func): Call the source-specific
571         free function when the hook is freed not when it
572         is destroyed; this fixes a bug where a timeout destroyed
573         from itself would access already freed data.
574
575 1999-01-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
576
577         * gutils.c (g_get_any_init): Here we must replace getpwuid by
578         getpwuid_r, but as I do not know how for now, I just made a FIXME
579         note ;-)
580
581         * gdate.c (g_date_set_time): localtime --> localtime_r to make it
582         thread safe.
583
584         * configure.in: We do not need to check for broken solaris mutex
585         intitializer any longer. Provide a macro to show the used thread
586         implementation. Not nice, but this is needed until thread support
587         is completed here inside glib.
588
589 Tue Jan  5 12:23:52 PST 1999 Manish Singh <yosh@gimp.org>
590
591         * configure.in: ditch whitespace before GLIB_SYSDEFS #includes,
592         the # needs to be in column 1
593
594         * gthread/testgthread.c: cleanups
595
596         * tests/node-test.c: #include unistd.h for exit()
597
598 1999-01-04  Andrew T. Veliath  <andrewtv@usa.net>
599
600         * glib.h (g_array_insert_val): fix macro to be shorthand of
601         g_array_insert_vals.
602
603 Mon Jan  4 15:35:29 PST 1999 Manish Singh <yosh@gimp.org>
604
605         * acglib.m4: some echos interpret \n's and some don't. Deal with
606         accordingly.
607
608 Mon Jan  4 20:58:50 1999  Tim Janik  <timj@gtk.org>
609
610         * gscanner.c: eliminated extraneous "register" qualifiers in variable
611         declarations.
612
613         * gmain.c: #undef events and revents which may have been defined in
614         sys/poll.h for SVR3,4 compatibility on some AIX systems. fix been
615         provided by Philippe Defert <Philippe.Defert@cern.ch>.
616
617 Mon Jan  4 14:38:11 1999  Tim Janik  <timj@gtk.org>
618
619         * glib.h: adjusted the g_strdup_a, g_strndup_a and g_strconcat3_a macros
620         so their arguments get only evaluated once. changed g_strconcat3_a to
621         have the same semantics as g_strconcat, i.e. if a certain argument is
622         NULL, the rest of the parameter list is skipped.
623
624         * tests/alloca-test.c: removed #if/#endif G_HAVE_ALLOCA, we need to be
625         able to compile on all systems. added test for g_strconcat() semantics.
626
627         * we need a alloca() replacement for !G_HAVE_ALLOCA rsn!
628
629 Mon Jan  4 02:58:13 CST 1999 Shawn T. Amundson <amundson@gtk.org>
630
631         * Released GLib 1.1.12
632
633         * INSTALL:
634           NEWS:
635           README:
636           configure.in:
637           glib.spec:
638           docs/glib-config.1: version=1.1.12
639
640         * tests/Makefile.am: fixed so it works properly with
641           builddir and srcdir.
642
643 Sun Jan  3 01:38:14 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
644
645         * tests/Makefile.am:
646         add array-test.c, tree-test.c
647
648         * tests/array-test.c, tests/tree-test.c:
649         New module, tests array family
650
651         * tests/hash-test.c, tests/list-test.c, tests/slist-test.c,
652           tests/string-test.c, tests/node-test.c:
653         Clean out cruft left over from testglib.
654
655 Sat Jan  2 22:42:25 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
656
657         * Makefile.am, configure.in, tests/*:
658         Added 'make check' tests, based on testglib code.
659
660 Sat Jan  2 19:52:45 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
661
662         * glib.h, testglib.c:
663         Added g_alloca, g_new_a, g_new0_a macros.
664
665 Sat Jan  2 16:45:44 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
666
667         * testglib.c: Added g_strdup_printf check.
668
669 Fri Jan  1 21:58:40 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
670
671         * glib.h:
672         (g_strdup_a, g_strndup_a): Handle NULL strings like g_strdup.
673         s/g_strconcat_a/g_strconcat3_a/ to reflect fixed number of args
674
675         * testglib.c:
676         Added g_strdup, g_strconcat checks.
677         Added str==NULL checks for alloca string macros.
678         s/g_strconcat_a/g_strconcat3_a/
679
680 Fri Jan  1 18:30:41 PST 1999 Manish Singh <yosh@gimp.org>
681
682         * testglib.c: made the alloca tests follow the testglib style
683
684         * Makefile.am: minor cleanups, mostly cosmetic
685
686 Fri Jan  1 20:43:19 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
687
688         * glib.h: added g_strndup_a macro
689
690         * testglib.c:
691         Added tests for new alloca-based string routines.
692         Reformatted a couple strings.
693
694 Sat Jan  2 02:20:59 1999  Tim Janik  <timj@gtk.org>
695
696         * ghook.c:
697         (g_hook_list_invoke):
698         (g_hook_list_invoke_check):
699         (g_hook_list_marshal_check):
700         (g_hook_list_marshal): avoid unneccessary extra hook referencing (the
701         explicit hook referencing became unneccessarry with my changes from
702         Mon Dec 21 21:48:29 1998).
703
704         * gmain.c (g_main_iterate): fixed reference counting leaks with
705         premature loop aborts.
706
707 Fri Jan  1 22:47:44 1999  Tim Janik  <timj@gtk.org>
708
709         * gscanner.c (g_scanner_unexp_token): handle G_TOKEN_IDENTIFIER_NULL
710         as G_TOKEN_IDENTIFIER.
711
712 Fri Jan  1 17:09:19 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
713
714         * configure.in, glib.h:
715         Added two new alloca-based function macros, g_strdup_a and
716         g_strconcat_a.  These are stack-based and much faster than
717         their g_malloc-based counterparts.  Kudos to Ulrich Drepper
718         for help on this one.
719
720 Wed Dec 30 18:24:57 CST 1998 Shawn T. Amundson <amundson@gtk.org>
721
722         * Released GLib 1.1.11
723
724         * INSTALL:
725           NEWS:
726           README:
727           configure.in:
728           docs/glib-config.1: version=1.1.11
729
730 1998-12-30  Raja R Harinath  <harinath@cs.umn.edu>
731
732         * glib.h (G[U]INT64_FROM_{LE,BE}):
733         Define to G[U]INT64_TO_{LE,BE}, not G[U]INT32_TO_{LE,BE}.
734
735 Fri Dec 25 19:56:33 PST 1998 Manish Singh <yosh@gimp.org>
736
737         * acglib.m4
738         * configure.in: provide defaults for POLL sysdefs, simple enums
739         don't work with bitwise logic. Reported by Daniel Skarda
740         <0rfelyus@atrey.karlin.mff.cuni.cz>
741
742 Wed Dec 23 00:43:25 CST 1998 Shawn T. Amundson <amundson@gtk.org>
743
744         * INSTALL:
745           NEWS:
746           README:
747           configure.in:
748           docs/glib-config.1: version=1.1.10
749
750 Wed Dec 23 04:18:11 1998  George Lebl  <jirka@5z.com>
751
752         * gmain.c: (g_get_current_time) don't cast to timeval since
753           timeval is for some reason not always a struct of longs, weird
754
755 Tue Dec 22 10:32:11 1998  Tim Janik  <timj@gtk.org>
756
757         * ghook.c (g_hook_first_valid): fixed buglet that could cause bogus
758         warnings.
759
760 Mon Dec 21 21:48:29 1998  Tim Janik  <timj@gtk.org>
761
762         * glib.h:
763         * gmain.c: there was a reference count race for hooks during invocation
764         loops. since all (known) hook loop implementations, do currently start
765         out with g_hook_first_valid() and iterate with g_hook_next_valid(),
766         g_hook_first_valid() will now return a referenced hook, and
767         g_hook_next_valid() will "eat" that, and eventually transfer it to
768         the next hook. <sigh> unfortunately this requires g_hook_next_valid()
769         to take the hook_list as additional argument.
770
771         * gmain.c (g_main_iterate): adjusted callers of g_hook_next_valid().
772
773 Mon Dec 21 03:48:04 1998  Tim Janik  <timj@gtk.org>
774
775         * gmain.c (g_main_iterate): default initialize source_timeout with -1
776         so we have a sane timeout value if (*prpare) doesn't set it.
777
778 Sat Dec 19 16:56:02 1998  Owen Taylor  <otaylor@redhat.com>
779
780         * glib.h gmain.c (G_PRIORITY_LOW): Add #defines defining
781         scale of priorities.
782
783 Sat Dec 19 16:56:02 1998  Owen Taylor  <otaylor@redhat.com>
784
785         * gmain.c (g_main_poll): Allocate space for pollfd's
786         _after_ adding poll wake-up-pipe record.
787
788         * gmain.c (g_main_add_poll): Changed name
789         of internal function g_main_add_poll_unlocked()
790         back from the non-sensical g_main_add_unlocking_poll().
791
792 Sat Dec 19 06:25:55 1998  Tim Janik  <timj@gtk.org>
793
794         * glib.m4: fixed a minor bug that would let configures bail out
795         if the MODULES argument contained newlines.
796
797         * acglib.m4: new file to be included by configure.in. it holds
798         special GLIB_ autoconfiguration macros, eventually some of the
799         easier ones should be moved into glib.m4, e.g. GLIB_IF_VAR_EQ,
800         GLIB_STR_CONTAINS or GLIB_ADD_TO_VAR.
801
802 Sat Dec 19 04:27:17 1998  Tim Janik  <timj@gtk.org>
803
804         * fixed up sys/poll.h and sys/types.h inclusions.
805
806 Sat Dec 19 03:10:50 1998  Tim Janik  <timj@gtk.org>
807
808         * fixed up gthread includes, cleaned up glibconfig.h a little bit.
809
810 Fri Dec 18 12:51:39 1998  Owen Taylor  <otaylor@redhat.com>
811
812         * gmain.c: Fix errors in computation of timeout
813         expiration times > 1sec.
814
815 1998-12-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
816
817         * configure.in (have_threads): Changed the last pthread_cond_init
818         to pthread_attr_init.
819
820 Fri Dec 18 00:03:17 1998  Tim Janik  <timj@gtk.org>
821
822         * glib.h:
823         * gmain.c:
824         (g_main_is_running): new function to check whether a main loop has been
825         quitted.
826         (g_main_new): added a gboolean argument to determine whether the loop
827         should be considered initially running or not. however, g_main_run ()
828         will still reset the main loops running state to TRUE upon initial
829         entrance.
830
831         * gmain.c:
832         (g_main_iterate): documented this function's purpose in 5 steps.
833         for step 2), flag sources as G_SOURCE_READY even if !dispatch and
834         check G_SOURCE_READY prior to (*prepare), so we don't call (*prepare)
835         on them multiple times.
836
837 Thu Dec 17 23:43:47 1998  Tim Janik  <timj@gtk.org>
838
839         * gmain.c (g_main_add_poll): reordered arguments, so GPollFD* comes
840         first, <sigh> (sorry Snorfle, i should have let you know in the first
841         place).
842         (g_main_dispatch): stack G_HOOK_FLAG_IN_CALL flags. call source's
843         destructor when destroying a source.
844
845 1998-12-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
846
847         * garray.c (g_ptr_array_remove_index): Fixed size in g_memmove,
848         reported by Alexander Larsson <alla@lysator.liu.se>.
849
850         * gmem.c: Fixed bug, that made compile fail for -DENABLE_MEM_PROFILE.
851
852 Wed Dec 16 23:04:26 CST 1998 Shawn T. Amundson <amundson@gtk.org>
853
854         * Released GLib 1.1.9
855
856         * INSTALL:
857           NEWS:
858           README:
859           configure.in:
860           glib.spec:
861           docs/glib-config.1: version=1.1.9
862
863 Wed Dec 16 22:32:13 CST 1998 Shawn T. Amundson <amundson@gtk.org>
864
865         * glib.h:
866           giounix.c: s/g_main_poll_add/g_main_remove_add/g
867                      s/g_main_poll_remove/g_main_remove_poll/g
868                      s/g_main_poll_add_unlocking/g_main_add_unlocking_poll/g
869           (from Tim Janik)
870
871 Wed Dec 16 20:04:10 PST 1998 Manish Singh <yosh@gimp.org>
872
873         * configure.in: check for pthread_attr_init in all cases, du4
874         needs this since most of the other functions are just #defines
875
876 Thu Dec 17 04:10:49 1998  Tim Janik  <timj@gtk.org>
877
878         * glib.h (G_LOCK_DECLARE_*): if !G_THREADS_ENABLED, eat the
879         trailing semicolon with a bogus function declaration, instead
880         of with a bogus variable declarations, so we avoid unused
881         variable warnings.
882
883 Wed Dec 16 07:49:16 PST 1998 Shawn T. Amundson <amundson@gtk.org>
884
885         * Released GLib 1.1.8  (CVS tag is GLIB_1_1_8a)
886
887 1998-12-16  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
888
889         * giounix.c (g_io_channel_unix_get_fd): Fixed small bug.
890
891 1998-12-16  Joel Becker  <jlbec@ocala.cs.miami.edu>
892
893         * glib.h, gscanner.c: changed func_data to user_data in
894         g_scanner_scope_symbol_foreach and associated friends, because
895         AIX headers #define func_data.
896
897 1998-12-16  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
898
899         * configure.in: Fixed stupid bug, that made
900         g_static_mutex_lock(*mutex) not work as expected.
901
902         * docs/glib-config.1: Updated to reflect the existence of gthread.
903
904         * gmain.c (g_main_poll_add_unlocking): Changed
905         g_main_poll_add_unlocked to g_main_poll_add_unlocking to match
906         semantic, (indeed, main_loop must be locked, when calling this
907         function). Removed the unlocking from the end of that function, as
908         that is not right. Made a 'HOLDS' comment above the function.
909
910 Wed Dec 16 03:16:58 1998  Tim Janik  <timj@gtk.org>
911
912         * configure.in: version bump to 1.1.8, binary age 0, interface age 0.
913
914         * glib.h: changed g_lock() to G_LOCK(), g_unlock() to G_UNLOCK() and
915         g_trylock() to G_TRYLOCK(), since these are macros that expand to
916         nothing with --disable-threads.
917         changed G_LOCK_DEFINE() to G_LOCK_DECLARE() and introduced
918         G_LOCK_DECLARE_STATIC() to achive the results of static G_LOCK_DECLARE().
919         changed semantics of g_thread_supported to g_thread_supported() so it
920         can be used as a function like g_module_supported(). the actuall
921         definition is still a macro that expands into a variable for
922         performance reasons though.
923         various indentation and coding style cleanups.
924
925         * configure.in: added --enable-threads that defaults to yes.
926
927         * gmutex.c: changed tests g_thread_supported to g_thread_supported (),
928         changed variable settings of g_thread_supported
929         to g_threads_got_initialized.
930
931         garray.c:
932         gcache.c:
933         gdataset.c:
934         gdate.c:
935         ghash.c:
936         glist.c:
937         gmain.c:
938         gnode.c:
939         gslist.c:
940         gstring.c:
941         gtree.c:
942         gutils.c:
943         changed s/g_lock/G_LOCK/, s/g_unlock/G_UNLOCK/,
944         s/static G_LOCK_DEFINE/G_LOCK_DECLARE_STATIC/.
945
946 Tue Dec 15 23:16:05 CST 1998 Shawn T. Amundson <amundson@gtk.org>
947
948         * INSTALL:
949           NEWS:
950           README
951           configure.in:
952           glib.spec:
953           docs/glib-config.1: Incremented version
954
955 Wed Dec 16 22:29:48 1998  Joel Becker  <jlbec@ocala.cs.miami.edu>
956
957         * configure.in: fixed the AIX thread checking.
958         Just an error on the wildcard.  BTW, -D_THREAD_SAFE
959         is correct for AIX.
960
961 Wed Dec 16 02:02:48 1998  Tim Janik  <timj@gtk.org>
962
963         * glib-config.in (lib_glib): fixed library and flag ordering for
964         --libs
965
966 Tue Dec 15 17:17:46 1998  Owen Taylor  <otaylor@redhat.com>
967
968         * glib.h giounix.c giochannel.c: Use an "inheritance"
969         scheme for IO channel memory allocation.h
970
971 1998-12-15  Havoc Pennington  <hp@pobox.com>
972
973         * gdate.c (g_date_prepare_to_parse): Solaris has a broken strftime
974         that produced garbage output for the test date I was using to
975         set up the parser. So use a different date that Solaris seems
976         to like.
977
978 1998-12-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
979
980         * configure.in: Dont complain, if --without-threads or
981         --with-threads=none is supplied; Test for pthread_attr_init
982         instead of pthread_cond_init, if threads seems to be supported by
983         standard glib. (CFLAGS): Use G_THREAD_CFLAGS for compiling of glib
984         as well.
985
986         * glib.h, gmutex.c: Changed private to private_key to avoid
987         problems when compiling with under C++.
988
989 1998-12-15  Jeff Garzik  <jgarzik@Pobox.com>
990
991         * configure.in:
992         bugfixes, correctly support --without-threads and friends
993
994         * gthread/testgthread.c: corrected 64-bitness problem
995
996 Tue Dec 15 10:40:09 1998  Owen Taylor  <otaylor@redhat.com>
997
998         * gnode.c glist.c gslist.c: Make sure all
999         calls to g_node_validate_allocator are within
1000         current_allocator lock, so we have consistency
1001         on that point. (Should not really matter,
1002         but this way we match the comments)
1003
1004         * glist.c (g_list_free_1): Removed some lines
1005         that should never have been committed. (For
1006         debugging)
1007
1008 1998-12-11  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1009
1010         * gthread/gthread-nspr.c, configure.in: Added new default thread
1011         implementation on top of the mozilla nspr library.
1012
1013         * gmem.c, gmessaged.c, gthread/gthread.c, gthread/gthread-*.c:
1014         Changed GStaticMutex and GStaticPrivate in gmem.c and gmessages.c
1015         into GMutex and GPrivate resp. to make error reporting and use of
1016         gmem possible in most (not all, though) gthread functions. Also
1017         initialized the modules via new init functions.
1018
1019         * configure.in: Fixed syntax bug in definition of type
1020         GStaticMutex.
1021
1022         * gthread/testgthread.c: Updated to work with nspr, but see note
1023         there for remaining problems.
1024
1025 1998-12-10  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1026
1027         * gmutex.c, glib.h: Now abort, if a mutex/cond/private is
1028         allocated before the thread system is set up.
1029
1030         * gthread/gthread.c (g_thread_init): Removed g_thread_try_init(),
1031         as it is not necessary. Changed the error message. Corrected logic
1032         for g_thread_use_default_impl.
1033
1034         * gmutex.c (g_mutex_init): Keep the thread private data array
1035         after calling g_thread_init().
1036
1037 1998-12-09  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1038
1039         * gthread/testgthread.c (new_thread): Now also working for posix
1040         threads; (wait_thread): Now a better implementation, that does not
1041         use 100% CPU.
1042
1043         * Made the thread related code follow GNU coding standard.
1044
1045         * Made a comment (HOLDS:) above each function, that expects the
1046         given locks to be held.
1047
1048         * Changed try_lock to trylock throughout.
1049
1050         * glib.c: Eventually removed the #if 0'ed code for old GStaticMutex.
1051
1052         * glib.c: Corrected g_trylock macro for G_DEBUG_LOCKS.
1053
1054         * gmain.c (g_main_poll_add_unlocked): first take a new poll record
1055         form the poll_free_list.
1056
1057         * gmem.c, gstrfuncs.c, gutils.c: Made it MT safe.
1058
1059         * gthraed/*.c: Added copyright headers.
1060
1061         * gthread/gthread-solaris.c: do not use g_log for errors, as g_log
1062         uses these module and endless recursions might happen, just use a
1063         plain fprintf(stderr,...).
1064
1065         * gthread/gthread.c (g_thread_try_init): Call g_mutex_init().
1066
1067         * gthread/testgthread.c: updated test program.
1068
1069 Tue Dec  8 18:49:56 1998  Owen Taylor  <otaylor@redhat.com>
1070
1071         * Start at adding thread-safety. (mostly work
1072         of Sebastian Wilhelmi <wilhelmi@ira.uka.de>)
1073
1074         - configure.in now looks for a system thread implementation.
1075         Currently support is included for POSIX threads
1076         and Solaris threads. The default support is built
1077         into a separate library -lgthread.
1078
1079         - The thread implementation can be modified by passing
1080         a vector of functions g_thread_init().
1081
1082         - The default or supplied functions are used to
1083         implement a small set of thread functions for
1084         mutexes, condition variables, and thread-private
1085         data.
1086
1087         - GLib now uses these functions to provide thread
1088         safety. (In the sense that all global static
1089         data is locked... individual structures must still
1090         be locked by the caller.)
1091
1092 Sat Dec 12 19:08:59 1998  Tim Janik  <timj@gtk.org>
1093
1094         * configure.in: always define G_HAVE_INLINE if __cplusplus is
1095         defined, reported by Wan-Teh Chang <wtc@netscape.com>.
1096
1097 Thu Dec 10 21:49:39 CST 1998 Shawn T. Amundson <amundson@gtk.org>
1098
1099         * Released GLib 1.1.7
1100
1101         * INSTALL:
1102           NEWS:
1103           README:
1104           configure.in:
1105           glib.spec:
1106           docs/glib-config.1: Increased version to 1.1.7
1107
1108 Wed Dec  9 22:44:44 EST 1998 Joel Becker <jlbec@ocala.cs.miami.edu>
1109
1110         * Removed #define of G_COMPILED_WITH_DEBUGGING from glibconfig.h
1111         It shouldn't be there, and it was causing a double #define.
1112         (config.h defines it also)
1113
1114 Tue Dec  8 12:18:38 CST 1998 Shawn T. Amundson <amundson@gtk.org>
1115
1116         * Released GLib 1.1.6
1117
1118         * NEWS: updated
1119
1120 Mon Dec  7 23:10:41 PST 1998 Manish Singh <yosh@gimp.org>
1121
1122         * gmain.c: fixes to #undef HAVE_POLL case
1123
1124 1998-12-02  Havoc Pennington  <hp@pobox.com>
1125
1126         * gdate.c (g_date_set_month): If Julian is valid, we have to
1127         update the dmy representation before setting the components
1128         of it.
1129         (g_date_set_day): Same.
1130         (g_date_set_year): Same.
1131
1132 1998-12-02  Havoc Pennington  <hp@pobox.com>
1133
1134         * testgdate.c, testgdateparser.c: Two new files. This is kind of
1135         ugly code, but I want to go ahead and make the tests available.
1136         It isn't contaminating any other code. :-) Since one of these
1137         is interactive and the other takes a while to run, I've kept
1138         them separate from testglib for now.
1139         * Makefile.am: Build gdate test programs.
1140
1141 1998-12-02  Havoc Pennington  <hp@pobox.com>
1142
1143         * gdate.c (g_date_valid): Rely on GDate::dmy and GDate::Julian
1144         flags, rather than re-checking the validity of the actual
1145         values. This should be the correct behavior, the old way was
1146         leftover cruft.
1147
1148         * glib.h, gdate.c: Changed MDY to DMY throughout.
1149
1150 Sat Nov 28 12:53:47 1998  Owen Taylor  <otaylor@redhat.com>
1151
1152         * Makefile.am configure.in acconfig.h giochannel.c
1153           glib.h glist.c gmain.c gutils.c:
1154
1155         - Revised GIOChannel to provide a generic virtual-function
1156           based interface.
1157         - Added unix fd-based GIOChannel's
1158         - Added generic main-loop abstraction
1159         - Added timeouts and idle functions using main-loop abstraction.
1160
1161 1998-12-02  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1162
1163         * glib.h:
1164         * gdate.c: changed `gpointer struct_tm_p' parameter of
1165         g_date_to_struct_tm back to `struct tm *tm' and forward declared
1166         `struct tm' in glib.h; yes, this is nice, we still need not
1167         include time.h.
1168
1169 Tue Dec  1 23:01:44 CST 1998 Shawn T. Amundson <amundson@gtk.org>
1170
1171         * INSTALL:
1172           NEWS:
1173           README:
1174           glib.spec:
1175           docs/glib-config.1: Incremented versions to 1.1.6.
1176
1177 Wed Dec  2 02:10:59 1998  Tim Janik  <timj@gtk.org>
1178
1179         * gdate.c: s/time_t/GTime/ and s/g_print/g_message/
1180         include time.h.
1181
1182         * glib.h: removed #include <time.h>, changed time_t paramter of
1183         g_date_set_time() to time_t, changed struct tm parameter of
1184         g_date_to_struct_tm to `gpointer struct_tm_p'. yes, this is not
1185         nice, but including time.h actually breaks a bunch of code.
1186
1187         * incremented GLib version to 1.1.6.
1188
1189 1998-11-30  Havoc Pennington  <hp@pobox.com>
1190
1191         * gdate.c: New file, implements calendrical calculations.
1192
1193         * glib.h: Added declarations for GDate module.
1194
1195 Mon Nov 30 07:12:10 1998  Tim Janik  <timj@gtk.org>
1196
1197         * glib.h:
1198         * ghook.c: added g_hook_list_marshal_check() to eventually destroy
1199         hooks after they got marshalled.
1200
1201 Sun Nov 29 17:31:43 EST 1998  Jeff Garzik  <jgarzik@pobox.com>
1202
1203         * configure.in, Makefile.am, gmodule/Makefile.am:
1204         Put -DFOO stuff into Makefile.am INCLUDES.
1205
1206 Sun Nov 29 14:17:09 PST 1998 Manish Singh <yosh@gimp.org>
1207
1208         * configure.in: put debug -DFOO stuff into CPPFLAGS, not CFLAGS,
1209         so CFLAGS can be overridden at make time properly
1210
1211 Sat Nov 28 01:23:25 1998  Tim Janik  <timj@gtk.org>
1212
1213         * ghash.c: implemented incremental freezing facility.
1214
1215 Thu Nov 26 01:36:20 1998  Tim Janik  <timj@gtk.org>
1216
1217         * glib.h:
1218         * ghash.c: reverted the g_hash_table_set_key_freefunc() addition,
1219         since it's to specialized and needs to be resolved in a generic
1220         fashion.
1221
1222 Tue Nov 24 18:57:59 PST 1998 Manish Singh <yosh@gimp.org>
1223
1224         * applied glib-tml-981120-0, change log appended below.
1225
1226         * glibconfig.h.win32: passthrough 64-bit constants unchanged, VC++
1227         infers them
1228
1229 Fri Nov 20 22:26:43 1998  Tor Lillqvist  <tml@iki.fi>
1230
1231         * glib.h: Moved MSC pragmas from glib.h to glibconfig.h.win32.
1232         peer_offset field in WIN32 part of GIOChannel removed, need_wakeups
1233         added. Added "extern" to __declspec(dllimport).
1234
1235         * gutils.c: Initialise need_wakeups.
1236
1237         * glibconfig.h.win32: Pragmas moved here. Define G_GINT64_CONSTANT.
1238
1239         * gmodule/gmodule.def: Added g_module_build_path.
1240
1241         * gscanner.c: (g_scanner_cur_value) Move initailisation of v
1242         to before its use.
1243
1244         * glib.def: Added g_(s)list_sort.
1245
1246         * makefile.msc: A few more comments.
1247
1248 Tue Nov 24 14:05:47 EST 1998    Michael K. Johnson <johnsonm@redhat.com>
1249
1250         * glib.h: added GFreeFunc and g_hash_table_set_key_freefunc()
1251         prototype.
1252         * ghash.c: added g_hash_table_set_key_freefunc() implementation.
1253         Modified the prototypes of the functions g_hash_node_destroy() and
1254         g_hash_nodes_destroy(), and changed the functions that call them
1255         to match the new definitions.
1256         This changes no external interfaces, and should create no binary
1257         or source incompatibilities.  It does add a member to the
1258         GHashTable structure.
1259
1260 Tue Nov 24 09:40:00 1998  Tim Janik  <timj@gtk.org>
1261
1262         * glib.h: removed the GListAllocator type and its g_*_allocator_*()
1263         function variants (which weren't working anyways) in favour of a
1264         generic GAllocator type. new functions:
1265         g_allocator_new, g_allocator_free, g_slist_push_allocator,
1266         g_slist_pop_allocator, g_list_push_allocator, g_list_pop_allocator,
1267         g_node_push_allocator and g_node_pop_allocator.
1268
1269         * gstring.c: removed bogus slist allocator code.
1270         * gtree.c: maintain own list of free tree nodes and don't waste
1271         GSLists for that, removed bogus slist allocator code.
1272         * glist.c: use GAllocators for node allocation.
1273         * gslist.c: use GAllocators for node allocation.
1274         * gnode.c: use GAllocators for node allocation.
1275
1276         * gdataset.c: cleanups wrt automatic initialization.
1277
1278 Mon Nov 23 10:03:58 1998  Owen Taylor  <otaylor@gtk.org>
1279
1280         * glib.h garray.[ch]: added g_array_insert_vals() to
1281         insert elements at an arbitrary index, and
1282         g_array_insert_val() macro.
1283
1284 Sun Nov 22 17:07:03 1998  Tim Janik  <timj@gtk.org>
1285
1286         * glib.h:
1287         * gslist.c: new function g_slist_copy() to duplicate a list with all its
1288         data pointers.
1289         * glist.c: new function g_list_copy.
1290
1291 Sat Nov 21 14:57:39 CST 1998 Shawn T. Amundson <amundson@gtk.org>
1292
1293         * INSTALL:
1294           NEWS:
1295           README:
1296           configure.in:
1297           glib.spec: Updated to version 1.1.5
1298
1299         * Released GLib 1.1.5
1300
1301 Wed Nov 18 1998 Elliot Lee <sopwith@redhat.com>
1302
1303         * gdataset.c: There was a code path into g_data_set_internal
1304           through a function (g_datalist_id_set_full). Neither function
1305           checked for g_dataset_init having been run, but
1306           g_data_set_internal used the memchunk. I added
1307           a check into g_data_set_internal so it will do the
1308           initialization if needed. (There's probably a better way.)
1309
1310 Mon Nov 16 07:48:06 1998  Tim Janik  <timj@gtk.org>
1311
1312         * glib.h (g_bit_nth_msf): fixed off-by-one error, so we don't waste
1313         a loop iteration if (-1) was passed, reported by Andreas Bombe
1314         <andreas.bombe@munich.netsurf.de>.
1315
1316 Fri Nov 13 15:17:34 1998  Owen Taylor  <otaylor@redhat.com>
1317
1318         * glist.c gslist.c glib.h: Added g_list_sort() and
1319         g_slist_sort() to merge sort GLists and GSLists.
1320         Submitted by Sven Over <sven.over@ob.kamp.net>
1321         over a year ago!
1322
1323         * testglib.c: Test the new sort functions.
1324
1325 Wed Nov 11 23:23:22 EST 1998 Jeff Garzik <jgarzik@pobox.com>
1326
1327         * Makefile.am : INCLUDES is the right way to add to CFLAGS, not
1328         DEFS.  Also there are bugs with '+=' in makefiles.
1329         Got rid of DEFS line by moving G_LOG_DOMAIN setting into INCLUDES.
1330         Removed redundant -I from INCLUDES.
1331
1332 Wed Nov 11 18:11:24 EST 1998 Gregory McLean <gregm@comstar.net>
1333
1334         * docs/*.sgml : Batch of new documentation that should be easier
1335         to maintain and extend. Plus generate whatever sort of doc file
1336         you would like. I didn't change the Makefile stuff as I'm not sure
1337         what default doc type people want. Oh and this is all DocBook format.
1338         Enjoy!
1339
1340 Tue Nov 10 17:12:45 PST 1998 Manish Singh <yosh@gimp.org>
1341
1342         * configure.in: use __extension__ for long long on gcc >= 2.8 and
1343         egcs, and provide a G_GINT64_CONSTANT wrapper so -ansi -pedantic
1344         compiles clean.
1345
1346         * glib.h: make the endian x86 asm __const__ so the compiler can do
1347         better optimizations. Also remove the cc clobber, these shouldn't
1348         be changing condition codes. Ditch some redundant casts. Add an
1349         optimization for 64-bit endian conversions in x86. Use constant
1350         wrapper for the generic method.
1351
1352         * testglib.c: use constant wrappers for 64-bit constants
1353
1354 1998-11-04  Phil Schwan  <pschwan@cmu.edu>
1355
1356         * configure.in: Added 'strncasecmp' to the list of functions to be
1357         searched for.
1358         * glib.h: Added a prototype for 'g_strncasecmp'
1359         * gstrfuncs.c: (g_strncasecmp) new function modeled closely after
1360         'g_strcasecmp'
1361
1362 Wed Nov  4 15:06:44 PST 1998 Manish Singh <yosh@gimp.org>
1363
1364         * config.h.win32 (new file)
1365         * glibconfig.h.win32
1366         * glib.def
1367         * makefile.msc: applied glib-tml-981104, win32 sync
1368
1369 1998-11-03  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1370
1371         * glib.h:
1372         * garray.c:
1373         (g_array_remove_index): new function for removing an entry from an
1374         array while preserving the order
1375         (g_array_remove_index_fast): new function for removing an entry
1376         from an array. the order might be distorted
1377         (g_ptr_array_remove_index_fast, g_ptr_array_remove_fast): new
1378         functions; working similiar to the above. (they have the semantic
1379         of the old g_ptr_array_remove[_index] functions)
1380         (g_ptr_array_remove_index, g_ptr_array_remove): new semantic. now
1381         the order of the elements in the array is not changed
1382         (g_byte_array_remove_index, g_byte_array_remove_index_fast): new
1383         functions; byte_array wrapper for g_array_remove_index[_fast]
1384
1385 Sun Nov  1 23:00:18 PST 1998 Manish Singh <yosh@gimp.org>
1386
1387         * glib.h
1388         * configure.in: endian macros defined using the glibconfig.h
1389         mechanism now
1390
1391         * ghook.c: casts for GHookFunc and GHookCheckFunc to avoid warnings
1392
1393 Sat Oct 31 20:14:22 PST 1998 Manish Singh <yosh@gimp.org>
1394
1395         * applied glib-tml-981101-1 patch from Tor Lillqvist (ChangeLog
1396         entry appended below)
1397
1398         * testglib.c
1399         * gstrfuncs.c
1400         * glib.h: use G_HAVE_GINT64, since HAVE_GINT64 is gone
1401
1402         * gmessages.c
1403         * gscanner.c: #include <config.h> in here too, for HAVE_UNISTD_H
1404
1405 1998-11-01 Tor Lillqvist <tml@iki.fi>
1406
1407         * glib.def: Added the new functions.
1408
1409         * gutils.c:
1410         (g_getenv): Better implementation on Win32. No loop necessary.
1411         (g_get_any_init): Use P_tmpdir if defined as tmp directory. Don't
1412         set home dir always to NULL on Win32.  Don't use tmp directory as
1413         last resort home directory, but return NULL if no home
1414         directory is known (application must check).
1415
1416         * makefile.msc: Better touch command, just COPYing a single file
1417         sets the timestamp from that file, which isn't what touching should
1418         do.
1419
1420 1998-10-31  Raja R Harinath  <harinath@cs.umn.edu>
1421
1422         Land glib-rrh-19981025-0.patch.
1423         * Makefile.am (glibconfig.h): New rule.
1424         (stamp-gc-h): New rule.  Generate `glibconfig.h'.
1425         * configure.in (AM_CONFIG_HEADER): It is now `config.h'.
1426         (HAVE_BROKEN_WCTYPE): On Solaris, look for iswalnum in -lw before
1427         concluding "broken wctype".
1428         (glibconfig.h): Use AC_OUTPUT_COMMANDS to put generation code into
1429         config.status.
1430         * glib.h: Remove a lot of tests and defines.  All these have been
1431         moved to `configure.in (glibconfig.h)'.
1432         * gerror.c: Include <config.h>.
1433         * gmem.c: Likewise.
1434         * gstrfuncs.c: Likewise.
1435         * gutils.c: Likewise.
1436
1437 Sat Oct 31 05:08:26 1998  Tim Janik  <timj@gtk.org>
1438
1439         * glib.h: removed old G_ENUM(), G_FLAGS(), G_NV() and G_SV() macros.
1440         added macros G_STRUCT_OFFSET(), G_STRUCT_MEMBER_P() and
1441         G_STRUCT_MEMBER() for handling structure fields through their offsets.
1442         (struct _GHookList): added a hook_free function member, that can be used
1443         to free additional fields in derived hook structures.
1444         g_hook_free(): if hook_list->hook_free != NULL, call this function prior
1445         to freeing the hook. (this functionality should have been there in the
1446         first place, it just got forgotten as an implementation detail).
1447
1448 Wed Oct 28 00:49:32 PST 1998 Manish Singh <yosh@gimp.org>
1449
1450         * glib.h: G_BREAKPOINT for alpha from Robert Wilhelm
1451         <robert@physiol.med.tu-muenchen.de>
1452
1453 Tue Oct 27 07:25:53 1998  Tim Janik  <timj@gtk.org>
1454
1455         * glib.h:
1456         * gscanner.c:
1457         (g_scanner_sync_file_offset): new function for file input.
1458         rewind the filedescriptor to the current buffer position and blow
1459         the file read ahead buffer. usefull for third party uses of our
1460         filedescriptor, which hooks onto the current scanning position.
1461         (this became neccessary with the implementation of buffered
1462         reads).
1463         (g_scanner_input_file):
1464         (g_scanner_input_text): automatically blow the read ahead buffer.
1465         (g_scanner_get_char): blow the read ahead buffer when the end of
1466         input is reached, i.e. a '\000' char is read.
1467
1468 Tue Oct 27 00:27:31 PST 1998 Manish Singh <yosh@gimp.org>
1469
1470         * glib.h: get rid of duplicate #g_htonl and friends in the
1471         NATIVE_WIN32 part
1472
1473 Mon Oct 26 22:42:01 PST 1998 Manish Singh <yosh@gimp.org>
1474
1475         * glibconfig.h.win32
1476         * gutils.c
1477         * makefile.msc: win32 patch from Tor Lillqvist (glib-tml-981027-0),
1478         fixes some minor win32 buglets
1479
1480 Mon Oct 26 22:12:03 PST 1998 Manish Singh <yosh@gimp.org>
1481
1482         * glib.h: reimplemented the endian stuff, using inline asm
1483         for x86. #define g_htonl and friends.
1484
1485         * testglib.c: new tests for the endian stuff
1486
1487         * configure.in: care for AIX in gmodule linker flags test (from
1488         Joel Becker <jlbec@raleigh.ibm.com>). Check $host_os for linux
1489         instead of existance of /usr/include/linux
1490
1491         * gutils.c: buh-bye evil warning. Thou hast been #ifdef'd out
1492         of thine existance!
1493
1494 Tue Oct 27 03:00:50 1998  Tim Janik  <timj@gtk.org>
1495
1496         * glib.h: removed dummy structure definitions for struct _GCache,
1497         _GTree, _GTimer, _GMemChunk, _GListAllocator and _GStringChunk.
1498
1499         * gutils.c: implement glib's inline functions _after_ all include
1500         statements have been processed.
1501         removed Tor's MAXPATHLEN check since there already was one supplied
1502         further down in this file.
1503         (LibMain): special cased the #ifdef __LCC__ case for NATIVE_WIN32,
1504         since lcc maybe used on other platforms as well. why in hell is this
1505         stuff required?
1506         (g_get_any_init): for windows, if the user name is supplied, use it as
1507         realname also.
1508         in general, if there is no homedir specified, use the tmpdir that
1509         we already figured.
1510
1511         * gtimer.c (g_timer_elapsed): changed a g_assert() statement to
1512         g_return_if_fail().
1513
1514         * applied glib-tml-981020-0.patch for WIN32 portability, added some
1515         comments and g_return_if_fail() statements, minor indentation fixes.
1516         ChangeLog entry from Tor Lillqvist is appended.
1517
1518         * glib.h (struct dirent): use lower case structure members.
1519
1520         * glib.h:
1521         * makefile.lcc:
1522         * makefile.msc:
1523         s/COMPILING_GLIB/GLIB_COMPILATION/
1524
1525 1998-10-20: Tor Lillqvist <tml@iki.fi>
1526
1527         * README.win32 glib.def gmodule.def
1528         * glibconfig.h.win32 gmodule/gmoduleconf.h.win32:
1529         New files for the Windows port. The .def files list exported
1530         symbols for the Microsoft linker and compatibles.
1531
1532         * configure.in:
1533         Added checks for some platform-dependent headers: pwd.h sys/param.h
1534         sys/select.h sys/time.h sys/times.h unistd.h, and the function lstat.
1535
1536         * gerror.c:
1537         Conditionalized inclusion of system-dependent headers. Changes
1538         for Windows: no gdb to do a stack trace. Just call abort().
1539
1540         * glib.h:
1541         Changes for Windows:
1542
1543         Added macros G_DIR_SEPARATOR, G_DIR_SEPARATOR_S for
1544         platform-dependent file name syntax elements. Added macros
1545         G_SEARCHPATH_SEPARATOR, G_SEARCHPATH_SEPARATOR_S for
1546         platform-dependent search path syntax conventions.
1547
1548         Added pragmas for Microsoft C to make it more pedantic.
1549
1550         Marked GLib's global variables for export from DLL.
1551
1552         Added the function g_strescape that escapes backslashes.
1553
1554         Added functions g_path_is_absolute and g_path_skip_root to
1555         handle platform-dependent file name syntax.
1556
1557         Added the function g_getenv that expands environment variables
1558         that contain references to other environment variables, as is
1559         typical on Windows NT.
1560
1561         Added the GIOChannel structure which is used to encapsulate the
1562         IPC mechanism used by the GIMP's plug-ins, and possibly other
1563         things later. On Unix a GIOChannel encapsulates just a file
1564         descriptor. On Windows it contains a file handle from _pipe() and a
1565         few other things related to the implementation of gdk_input_add
1566         and GIMP plug-in communication. Subject to change.
1567
1568         Removed duplicate declarations of the version variables.
1569
1570         For the Microsoft compiler, declare own implementation of
1571         ftruncate and the <dirent.h> functions.
1572
1573         * gmem.c:
1574         Define a symbolic name  for the profiling table size.
1575
1576         * gmessages.c:
1577         Conditionalized inclusion of unistd.h. On Windows, output using
1578         stdio to stdout.
1579
1580         * gscanner.c:
1581         Conditionalized inclusion of unistd.h. Added changes for
1582         Microsoft C. Added CR to the skipped character set. Added small
1583         workaround for MSC compiler bug in g_scanner_cur_value.
1584
1585         * gstrfuncs.c:
1586         Added the function g_strescape, which escapes the backslash
1587         character. Needed especially when printing Windows filenames.
1588
1589         * gtimer.c:
1590         Conditionalized inclusion of unistd.h and sys/time.h. Added
1591         implementations for Windows.
1592
1593         * gutils.c:
1594         Conditionalized inclusion of platform-dependent headers. Use
1595         the platform-independent file name syntax macros.
1596         Conditionalize code on platform-dependent features. Added the
1597         functions g_path_is_absolute g_path_skip_root and g_getenv.
1598         Added the GIOChannel-related functions. Added
1599         compiler-dependent Unix compatibility functions for Windows.
1600
1601         * makefile.lcc makefile.msc:
1602         New files. Compiler-specific makefiles for LCC-Win32 and
1603         Microsoft C. Only Microsoft C is actually supported currently.
1604
1605         * testglib.c:
1606         Added pathname check cases for Windows. Added workaround for
1607         bug in the Microsoft runtime library. Improved some tests a bit.
1608
1609 Sun Oct 25 01:24:01 CST 1998 Shawn T. Amundson <amundson@gtk.org>
1610
1611         * Released GLib 1.1.4
1612
1613         * docs/Makefile.am:
1614         * docs/.cvsignore
1615         * docs/glib-config.1:
1616         * docs/glib.texi: Moved docs from gtk and created glib-config.1
1617         from gtk-config.1 in gtk
1618
1619         * configure.in:
1620         * Makefile.am:
1621         * sanity_check: added in docs directory, change rule 'release'
1622         to 'snapshot' and created a new 'release' rule for doing the
1623         distribution.  Added in a 'sanity' rule.
1624
1625         * NEWS:
1626         * README:
1627         * INSTALL: Updated for the release
1628
1629 Sun Oct 25 07:30:10 1998  Tim Janik  <timj@gtk.org>
1630
1631         * gscanner.c:
1632         (g_scanner_peek_next_char):
1633         (g_scanner_get_char): no more characters are available if read() returns
1634         anything less than 1, not only on 0 return.
1635
1636         * glib.h:
1637         * gstrfuncs.c: final API cleanup of string arrays to suit sopwith's
1638         argument order requirements.
1639         (g_strsplit): renamed from g_str_array_split().
1640         (g_strjoinv): renamed from g_str_array_joinv(), string array is
1641         now passed as last parameter. removed `const' qualifier from string
1642         array pointer (again).
1643         (g_strjoin): new function from sopwith to concatenate strings with
1644         an additional seperator.
1645         (g_strfreev): renamed from g_str_array_free.
1646
1647 Sat Oct 24 22:23:04 PDT 1998 Manish Singh <yosh@gimp.org>
1648
1649         * gnode.c: small fix to g_node_children_foreach to make it work right.
1650         From Paco Moya <paco@cadnotebk17.eecs.berkeley.edu>
1651
1652 Wed Oct 21 19:22:58 1998  Tim Janik  <timj@gtk.org>
1653
1654         * configure.in (G_MODULE_HAVE_DLERROR): reverted part of the changes
1655         from Sebastian Wilhelmi (1998-10-20). don't specify a specific loading
1656         behaviour (i.e. RTLD_NOW) when we are not sure whether it is supplied.
1657         changed the return value from (!f2 && f1) to (!f2 || f1) so we default
1658         to not needing an underscore. reverted the extra plugin.c building,
1659         because .lo files are not ELF libraries, this can't work. This needs
1660         further investigation on Solaris...
1661
1662 Wed Oct 21 17:03:05 1998  Tim Janik  <timj@gtk.org>
1663
1664         * glib.h:
1665         * gstrfuncs.c: API cleanups of the new g_str* functions for consistency
1666         with the existing naming scheme for g_str* functions. grouped the g_str*
1667         functions that will return a newly allocated string seperatedly. all of
1668         the in_place arguments were skipped, the caller is supposed to pass a
1669         g_strdup()ed string if he wants to retrive a new copy. indentation and
1670         coding style fixups. added some g_return_if_fail() statements.
1671         string array functions are prefixed with g_str_array_.
1672         (g_strdelimit): return the modified string like all other g_str*
1673         functions, that operate in place.
1674         (g_strchug): renamed from g_str_chug(), removed in_place argument.
1675         (g_strchomp): renamed from g_str_chomp(), removed in_place argument.
1676         (g_strstrip): renamed from g_str_strip(), removed in_place argument.
1677         (g_str_array_join): renamed from g_strconcatv(), since it actually
1678         operates on a string array and has totaly different semantics from
1679         g_strconcat(). check for separator != NULL, don't segfault if the first
1680         string is NULL. removed the `const' from the string array that's passed,
1681         so users can operate on gchar** string arrays.
1682         (g_str_array_split): renamed from g_str_split() because we actually
1683         produce a string array. reimplemented this function for efficiency.
1684         removed macro aliases g_str_joinv and g_str_join.
1685
1686 1998-10-20  Elliot Lee  <sopwith@redhat.com>
1687
1688         * glib.h, gstrfuncs.c: Move string join/split/free routines from
1689         libgnome/gnome-string, rename, and add g_str_chug.
1690
1691 1998-10-20  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1692
1693         * configure.in: made the check for needed _ in module's func-names
1694         work on solaris. (G_MODULE_NEED_USCORE must be set outside
1695         AC_CACHE_VAL, dlopen(0,0) refused to work on solaris).
1696
1697 Tue Oct 20 03:32:58 PDT 1998 Manish Singh <yosh@gimp.org>
1698
1699         * configure.in
1700         * acconfig.h: added test for endianness
1701
1702         * glib.h: #define endian macros for system and some conversions
1703         between byte order
1704
1705 Thu Oct  8 06:47:27 1998  Tim Janik  <timj@gtk.org>
1706
1707         * glib.h:
1708         * gdataset.c: removed functions g_dataset_id_set_destroy and
1709         g_datalist_id_set_destroy and macros g_dataset_set_destroy and
1710         g_datalist_set_destroy.
1711         added new functions g_dataset_id_remove_no_notify and
1712         g_datalist_id_remove_no_notify plus associated macros
1713         g_dataset_remove_no_notify and g_datalist_remove_no_notify, which
1714         will remove a certain data portion without invokation of its destroy
1715         notifier, this should only be used in very controled circumstances.
1716
1717 Wed Oct  7 05:31:24 1998  Tim Janik  <timj@gtk.org>
1718
1719         * glib.h:
1720         removed the #pragma } statement after extern "C" {. use
1721         (c-set-offset 'inextern-lang 0) to fixup emacs cc-mode indentation.
1722
1723         * glib.h:
1724         * ghook.c: API and code cleanups. changed the G_HOOK_ACTIVE and
1725         G_HOOK_IN_CALL enum vals to G_HOOK_FLAG_ACTIVE and G_HOOK_FLAG_IN_CALL.
1726         changed the G_HOOK_IS_ACTIVE() and G_HOOK_IS_IN_CALL() macros to
1727         G_HOOK_ACTIVE() and G_HOOK_IN_CALL().
1728         fixed the g_hook_find* functions, so they iterate over non-active
1729         hooks as well.
1730         (g_hook_first_valid):
1731         (g_hook_next_valid): added an extra argument gboolean may_be_in_call,
1732         which indicates whether G_HOOK_IN_CALL() hooks are considered valid
1733         or not. these two functions are meant as iterators for the hook list
1734         invocation, so they need to a) provide functionality to implement
1735         may_recurse bahaviour and b) only walk active hooks.
1736
1737 Tue Oct  6 14:29:47 1998  Tim Janik  <timj@gtk.org>
1738
1739         * gmem.c (g_malloc0): fixed memory offsett when ENABLE_MEM_CHECK is
1740         defined and ENABLE_MEM_PROFILE is not (patch from Martin Pool
1741         <mbp@wistful.humbug.org.au>).
1742
1743 Sat Oct  3 01:18:10 1998  Tim Janik  <timj@gtk.org>
1744
1745         * glib.h:
1746         * ghook.c:
1747         (g_hook_list_invoke):
1748         (g_hook_list_invoke):
1749         (g_hook_list_marshal): properly handle the first valid hook to call,
1750         it maybe IN_CALL already.
1751         (g_hook_list_marshal): minor name change.
1752
1753 Fri Oct  2 23:21:21 1998  Tim Janik  <timj@gtk.org>
1754
1755         * glib.h:
1756         * ghook.c: renamed GHook.id to GHook.hook_id so we don't get troubles
1757         with ObjC which reserves "id" as a keyword (Raja R Harinath
1758         <harinath@cs.umn.edu>).
1759
1760 Wed Sep 30 10:53:03 1998  Tim Janik  <timj@gtk.org>
1761
1762         * Makefile.am: added ghook.c.
1763
1764         * glib.h:
1765         * ghook.c: generic callback maintenance functions.
1766
1767         * glib.h: define G_GNUC_UNUSED.
1768
1769 Fri Sep 25 00:04:37 1998  Tim Janik  <timj@gtk.org>
1770
1771         * configure.in: version bump to 1.1.4, binary age 0, interface age 0.
1772
1773         * glib.h (struct _GScanner): dumped peeked_char and text_len in favour
1774         of *text_end and *buffer for buffered read()s.
1775
1776         * gscanner.c: changed peeking and retrival of next character so we
1777         have buffered reads. fixed minor bug with number parsing error
1778         reporting. made some static!!! variables local ones (why did we use
1779         static temporary variables in the lowlevel tokenization code anyways?).
1780
1781 Mon Sep 21 23:23:10 CDT 1998 Shawn T. Amundson <amundson@gtk.org>
1782
1783         * Released GLib 1.1.3
1784
1785 Mon Sep 21 07:43:13 1998  Tim Janik  <timj@gtk.org>
1786
1787         * glib.h: added g_renew() which works as g_new() for g_realloc().
1788
1789 Mon Sep 21 02:22:12 1998  Tim Janik  <timj@gtk.org>
1790
1791         * NEWS file update for upcoming release of GLib + GModule
1792         version 1.1.3, binary age 0, interface age 0. (GModule uses
1793         the same version numbers as GLib.)
1794
1795         * glib.h: swap the inclusion of of float.h and limits.h to work
1796         around a egcs 1.1 oddity on Solaris 2.5.1 (fix provided by
1797         Per Abrahamsen  <abraham@dina.kvl.dk>).
1798
1799         * glib.h:
1800         * gscanner.c: renamed the GValue union to GTokenValue, this should
1801         not affect source compatibility in most cases.
1802
1803         * ghash.c: added some g_return_if_fail() statements. make
1804         g_hash_table_lookup_node() an inline function so we save an extra
1805         function invokation on lookups.
1806
1807 Sun Sep 20 18:21:46 1998  Owen Taylor  <otaylor@redhat.com>
1808
1809         * ltmain.sh: Patch to libtool-1.2b to make --disable-static
1810         work.
1811
1812 Sun Sep 20 02:09:44 1998  Josh MacDonald  <jmacd@axis.hip.berkeley.edu>
1813
1814         * glib.h: New function g_hash_table_foreach_remove is similar to
1815         g_hash_table_foreach, but the callback's return value indicates
1816         whether to remove the element (if TRUE) or not (if FALSE).
1817         Returns the number of elements deleted.
1818
1819 Fri Sep 18 11:31:50 PDT 1998 Manish Singh <yosh@gimp.org>
1820
1821         * glib.h
1822         * gstrfuncs.c: added g_memdup implementation
1823
1824 Fri Sep 18 18:46:14 1998  Tim Janik  <timj@gtk.org>
1825
1826         * glib.h:
1827         * gdataset.c: make the datalists a safe type (not using a generic
1828         gpointer) by expecting a GData* argument in the g_datalist functions.
1829         provide g_dataset_foreach() and g_datalist_foreach() functions that
1830         allow a GDataForeachFunc function to walk the data lists.
1831         (g_dataset_destroy_internal): made this function truely reentrant (i.e.
1832         can be called from within destroy notifiers as well).
1833         the *_foreach functions are _not_ reentrant (unless all the other
1834         dataset and datalist functions).
1835
1836 Fri Sep 18 03:41:20 1998  Tim Janik  <timj@gtk.org>
1837
1838         * gtree.c (g_tree_new): check for key_compare_func != NULL (reported
1839         by Michal Kara).
1840
1841 Thu Sep 17 18:55:46 PDT 1998 Manish Singh <yosh@gimp.org>
1842
1843         * config.h.in: removed from repository
1844
1845         * install-sh
1846         * missing
1847         * mkinstalldirs: updated to latest automake version
1848
1849 Thu Sep 17 06:36:25 1998  Tim Janik  <timj@gtk.org>
1850
1851         * glib.h:
1852         * gdataset.c: implemented g_datalist_* along the lines of g_dataset,
1853         but operates on an opaque gpointer *datalist; pointer, e.g. for the
1854         implementation of GtkObject named data.
1855         we cache a certain portion of the already freed data entries now, to
1856         gain a slight performance improve with data reallocation.
1857
1858 Tue Sep 15 14:57:30 1998  Owen Taylor  <otaylor@redhat.com>
1859
1860         * Makefile.am glib-config.in l*: Update to libtool-1.2b,
1861         change library versioning scheme to drop LT_RELEASE
1862         from the -l line, while keeping it in the soname.
1863
1864 Fri Sep 11 02:11:46 1998  Tim Janik  <timj@gtk.org>
1865
1866         * glib.h: explicitely include the prototypes for inline functions
1867         to cure gcc warnings for -Wmissing-prototypes.
1868
1869 Wed Sep  9 02:52:04 PDT 1998 Manish Singh <yosh@gimp.org>
1870
1871         * configure.in: added -posix check for NeXTStep
1872
1873 Tue Sep  8 05:04:06 1998  Tim Janik  <timj@gtk.org>
1874
1875         * glib.h: abandon the use of ATEXIT(), we keep the fallback
1876         macros for backwards compatibility. people ought to use g_atexit().
1877
1878         * gutils.c (g_atexit): new function to take over the implementation
1879         of ATEXIT. this function is guarranteed to succeed, similar to
1880         g_malloc().
1881
1882 Mon Sep  7 20:07:38 PDT 1998 Manish Singh <yosh@gimp.org>
1883
1884         * configure.in: comment the -std1 check and save LIBS properly
1885
1886 Mon Sep  7 07:53:21 1998  Tim Janik  <timj@gtk.org>
1887
1888         * configure.in: check for all three inline keywords individually.
1889
1890         * glib.h: inlining hassle. for compilers that don't allow the `inline'
1891         keyword, mostly because of strict ANSI C compliance or dumbness, we try
1892         to fall back to either `__inline__' or `__inline'.
1893         we define G_CAN_INLINE, if the compiler seems to be actually *capable*
1894         to do function inlining, in which case inline function bodys do make
1895         sense. we also define G_INLINE_FUNC to properly export the function
1896         prototypes if no inlinig can be performed. we special case most of the
1897         stuff, so inline functions can have a normal implementation by defining
1898         G_INLINE_FUNC to extern and G_CAN_INLINE to 1.
1899
1900         * ltconfig: (compiler PIC flag test): special case linux for non
1901         aout systems to honour lcc's position independant code (cases
1902         "linux*aout)" and "linux*)" got added). (this needs to go into
1903         libtool which does an advanced test, checking for __LCC__).
1904
1905         * autogen.sh: take $CC=lcc into account by invoking automake with
1906         --include-deps so lcc isn't scared by gcc's auto-dependancy
1907         generation code. care about $ACLOCAL_FLAGS. optionally feature
1908         autoheader.
1909
1910         * minor fixups in other places to cure some of lcc's warnings.
1911
1912 Sun Sep  6 19:08:53 PDT 1998 Manish Singh <yosh@gimp.org>
1913
1914         * configure.in: added -std1 check for ANSI compliance (from gtk)
1915
1916 Sun Sep  6 12:31:50 PDT 1998 Manish Singh <yosh@gimp.org>
1917
1918         * glib.h: provide proper ATEXIT behavior on NeXTStep by !atexit
1919
1920 Sat Sep  5 18:03:36 1998  Tom Tromey  <tromey@cygnus.com>
1921
1922         * gutils.c (GLIB_INLINE): Define.
1923         * glib.h (GLIB_INLINE): New define.
1924         (g_bit_nth_msf): Use it.  Also, add prototype.
1925         (g_bit_storage): Likewise.
1926         (g_bit_storage): Likewise.
1927
1928 Sat Sep  5 04:40:02 1998  Tim Janik  <timj@gtk.org>
1929
1930         * glib.h:
1931         (g_chunk_new0): use g_mem_chunk_alloc0() to allocate the memchunk,
1932         so the correct size of the memchunk is allocated with 0's and not
1933         a memory portion of the size of the desired type.
1934
1935         * gmem.c: new function g_mem_chunk_alloc0() which will initialize
1936         a memory area allocated with g_mem_chunk_alloc() with 0's.
1937
1938 Wed Sep  2 19:13:28 1998  Owen Taylor  <otaylor@redhat.com>
1939
1940         * garray.c glib.h (g_array_[ap/pre]pend_vals): make
1941         data argument const.
1942
1943 Wed Aug 26 06:32:40 1998  Tim Janik  <timj@gtk.org>
1944
1945         * glib.h:
1946         * gstrfuncs.c: new function g_strnfill() to return a new string
1947         of specified length, filled with a specific character.
1948
1949 Tue Sep  1 23:46:31 1998  Josh MacDonald  <jmacd@axis.hip.berkeley.edu>
1950
1951         * testglib.c (main): Update the array tests.  Reduce the number of
1952         iterations for the prepend test from 10000 to 100 since it is
1953         O(n^2) and was taking longer than I would like to wait.
1954
1955         * garray.c: I've worked on the GArray interface, mostly.  It was
1956         seriously broken before and I hate to do it, but this is going to
1957         break some code.  It is important to do this now, because more and
1958         more people are starting to use glib and the interface was both
1959         broken and inconsistent.  First, rename the _truncate functions of
1960         both the GArray and GPtrArray classes to _set_size, since this
1961         function can also be used to extend the arrays.  GArray now
1962         accepts two more initialization arguments: clear and element_size.
1963         Instead of providing the type to each access function, the array
1964         now stores the element size.  Clear, if set, causes the library to
1965         zero element's memory as the array expands.  The major broken-ness
1966         here was that array->len was in bytes, not elements.  Now, since
1967         the array knows its element size, array->len is correct and I have
1968         removed the g_array_length macro.  The only macro which now
1969         accepts the type as an argument is g_array_index, which casts the
1970         element to the right type--this interface does not change.  The
1971         append and prepend functions simply need the types removed.
1972         g_ptr_array_remove_index now returns the removed element.
1973
1974         * gprimes.c (g_spaced_primes_closest): Move this function out of
1975         ghash.c and rename it from g_hash_closest_prime.  Fix the primes
1976         so that they are actually prime (they weren't all -- isn't that
1977         nice?).
1978
1979 Mon Aug 24 02:08:56 1998  Tim Janik  <timj@gtk.org>
1980
1981         * glib.h:
1982         * gstring.c:
1983         * gstrfuncs.c:
1984         (g_vsprintf): removed this function which was not publically
1985         exported in glib.h. to export it, it should have been named
1986         differently in the first place, since its semantics differ from
1987         vsprintf(). apart from that, it was a possible cause for
1988         problems since it worked on a previously allocated memory area and
1989         was used in a lot places of glib. exporting it would have been a
1990         guararant for problems with threaded programs.
1991         (g_printf_string_upper_bound): exported this function to return
1992         a string size, guarranteed to be big enough to hold the fully
1993         expanded format+args string. added 'q', 'L' and 'll' flag handling.
1994         in fact, the newly allocated area is in most cases much bigger than
1995         required.
1996         (g_strdup_vprintf()): new function returning a newly allocated string
1997         containing the contents of *format and associated args (size is
1998         calculated with g_printf_string_upper_bound()).
1999         (g_strdup_printf): new function which wraps g_strdup_vprintf().
2000
2001         * configure.in: check for va_copy() or __va_copy() alternatively.
2002         check whether va_lists can be copyied by value.
2003
2004         * glib.h: provide a definition for G_VA_COPY.
2005
2006         * glib.h:
2007         * gmessages.c:
2008         (g_logv):
2009         (g_vsnprintf):
2010         pass va_lists by value, not by reference, since this causes problems
2011         on platforms that implement va_list as as arrays. internaly, use
2012         G_VA_COPY (new_arg, org_arg); va_end (new_arg); to produce a second
2013         va_list variable, if multiple passes are required. changed all
2014         callers.
2015
2016         * glib.h:
2017         * gerror.h:
2018         renamed g_debug() to g_on_error_query(), cleaned up a bit.
2019         renamed g_stack_trace() to g_on_error_stack_trace() since both
2020         functions cluttered different namespaces.
2021         there is an appropriate comment in glib.h now that explains the
2022         unix and gdb specific dependencies of both functions.
2023         removed g_attach_process().
2024         g_on_error_stack_trace() should probably be handled with caution,
2025         i've seem several different linux versions (2.0.x) become unstable
2026         after invokation of this function.
2027
2028 1998-08-18: Elliot Lee <sopwith@redhat.com>
2029
2030         * In gmem.c, add the ability to exclude memory chunks from the
2031           memory profiling information.
2032
2033 Tue Aug 18 18:23:09 PDT 1998 Manish Singh <yosh@gimp.org>
2034
2035         * glib.h
2036         * gstrfuncs.c: added g_strndup
2037
2038 Tue Aug 18 04:40:17 1998  Tim Janik  <timj@gtk.org>
2039
2040         * glib.h:
2041         * gmessages.c: new function g_log_set_always_fatal() to set an
2042         additional fatal_mask for log levels that are considered to be fatal
2043         globally (required by gtk). since this mask is not domain-associated,
2044         it is restricted to the log levels, introduced by glib itself.
2045
2046         * gmem.c:
2047         * grel.c:
2048         * gtree.c (g_tree_node_check):
2049         don't use g_print() calls for informational/debugging output,
2050         but log all this stuff through g_log() with G_LOG_LEVEL_INFO.
2051         libraries shouldn't use printf(), g_print() or g_printerr() at all.
2052
2053 Tue Aug 18 02:46:44 1998  Tim Janik  <timj@gtk.org>
2054
2055
2056         * glib.h (__STRICT_ANSI__): if __STRICT_ANSI__ is defined, make
2057         `inline' a noop, since strict ANSI rules don't permit `inline'.
2058
2059 Mon Aug 17 15:21:42 1998  Tim Janik  <timj@gtk.org>
2060
2061         * grel.c: made private functions static.
2062
2063 Sun Aug 16 23:23:46 CDT 1998 Shawn T. Amundson <amundson@gtk.org>
2064
2065         * gmodule/Makefile.am: added gmodule-dl.c and gmodule-dld.c to
2066           EXTRA_DIST
2067         * glib.spec: version = 1.1.3
2068
2069 Mon Aug 17 01:46:14 1998  Tim Janik  <timj@gtk.org>
2070
2071         * glib.m4: feature an extra MODULES parameter, so glib-config can
2072         be invoked with the "gmodule" argument.
2073
2074         * glib.h: changed the log level to G_LOG_LEVEL_CRITICAL for all
2075         g_return*_if_fail statements, and made them issue a message
2076         like "assertion `%s' failed".
2077
2078         * gmessages.c (g_logv): ugh, don't pass log_domain as NULL to
2079         g_log_find_domain.
2080
2081 Sun Aug 16 20:28:27 1998  Tim Janik  <timj@gtk.org>
2082
2083         * version bump to 1.1.3, binary age 0, interface age 0.
2084
2085         * glib.h: be nice to platforms that don't have gint64 and don't
2086         issue #warning on every compilation. since glib doesn't require
2087         gint64 itself, packages that need gint64 should test for this
2088         themselves.
2089
2090         * glib.h:
2091         * gutils.c: added a new function g_vsnprintf().
2092
2093 Sun Aug 16 Elliot Lee
2094
2095         glib.h: #error out if we don't recognize the SIZEOF_VOID_P
2096                 #warning if no gint64
2097
2098 Fri Aug 14 16:41:53 1998  Tim Janik  <timj@gtk.org>
2099
2100         * glib.h: added static inline functions for bit mask tests:
2101         g_bit_nth_lsf, g_bit_nth_msf and g_bit_storage.
2102
2103 Fri Aug 13 14:23:37 1998  Tim Janik  <timj@gtk.org>
2104
2105         * glib.h:
2106         * gmessages.c:
2107         revised the message handling system, which is now based on a new
2108         mechanism g_log*. most of the assertment macros got adapted to
2109         feature the new g_log() call with an additional specification of
2110         the log level in a preprocessor macro G_LOG_DOMAIN. if G_LOG_DOMAIN
2111         is undefined upon the includion of glib.h, it'll be defined with a
2112         value of (NULL) and thus preserves the original bahaviour for
2113         warning and error messages. the message handler setting functions
2114         for g_warning, g_error and g_message are only provided for backwards
2115         compatibility and might get removed somewhen.
2116
2117         * Makefile.am: feature the G_LOG_DOMAIN macro to set the log domain
2118         to "GLib" upon compilation. we currently have to add this definition
2119         to the DEFS variable.
2120         * testglib.c: we need an ugly #undef G_LOG_DOMAIN at the start
2121         of this file currently, since automake doesn't support per target
2122         _CFLAGS yet.
2123
2124         * glib.h: changed some gints to gbooleans, made a few const corrections,
2125         removed some superfluous G_STMT_START{}G_STMT_END wrappers, added some
2126         in other required places.
2127
2128         * gnode.c:
2129         (g_node_prepend):
2130         (g_node_insert_before):
2131         (g_node_insert):
2132         (g_node_append_data):
2133         (g_node_prepend_data):
2134         (g_node_insert_data_before):
2135         (g_node_insert_data):
2136         (g_node_append):
2137         return (node), so these macros/functions can be usefully chained with
2138         g_node_new().
2139
2140 Mon Aug 10 17:56:11 PDT 1998 Manish Singh <yosh@gimp.org>
2141
2142         * glib.h: it's GTime now, and it's back!
2143
2144 Mon Aug 10 02:17:19 1998  Tim Janik  <timj@gtk.org>
2145
2146         * Makefile.am: minor hack to cause SUBDIRS (gmodule) to be build
2147         last. we do this by making all-recursive-am depend on all-am.
2148
2149 Sun Aug  9 15:56:11 1998  Tim Janik  <timj@gtk.org>
2150
2151         * configure.in: added GModule checks. generate files in gmodule/.
2152         * glib-config.in: support library specifications `glib' and `gmodule'.
2153         * Makefile.am: feature the gmodule/ subdir.
2154
2155 Wed Aug  5 10:04:29 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
2156
2157         * Released GLib 1.1.2
2158
2159 Wed Aug 05 01:15:36 1998  George Lebl  <jirka@5z.com>
2160
2161         * testglib.c: fix 64-bitness in g_prints, sizeof doesn't
2162           seem to return int so I cast it for printing, probably
2163           just cosmetic
2164
2165 Tue Aug  4 19:54:06 PDT 1998 Shawn T. Amundson <amundson@gkt.org>
2166
2167         * Released GLib 1.1.1
2168
2169 Tue Aug  4 15:17:54 1998  Tim Janik  <timj@gtk.org>
2170
2171         * configure.in: version bump to 1.1.1, binary age 1, interface age 0.
2172         * NEWS: updates.
2173         * README: updates.
2174         * INSTALL: updates and fixes.
2175         * COPYING: include the GNU LGPL, rather than shipping an empty file.
2176         * AUTHORS: listed original authors here, and added people who made
2177         significant improvements to glib.
2178
2179         * glib.h:
2180         * gutils.c: implement g_get_current_dir() which returns a newly
2181         allocated string, instead of a g_getcwd() variant that operates
2182         on a static buffer.
2183         export glib_interface_age and glib_binary_age.
2184         as a convenience, macro definitions have been added for
2185         g_node_insert_data, g_node_insert_data_before, g_node_append_data and
2186         g_node_prepend_data.
2187
2188         * testglib.c: minor cleanups, print current dir.
2189
2190 Mon Aug  3 16:02:26 1998  Tim Janik  <timj@gtk.org>
2191
2192         * glib.h:
2193         * gnode.c: change order of gpointer data; field in struct _GNode to
2194         be partly binary compatible with GList and GSList.
2195
2196 1998-08-03  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2197
2198         * garray.c (g_ptr_array_remove_index): bugfix: index check for
2199         array has been wrong.
2200
2201 Fri Jul 31 22:17:05 1998  Tim Janik  <timj@gtk.org>
2202
2203         * testglib.c (g_node_test): added a GNode test.
2204
2205 Fri Jul 31 09:08:16 1998  Tim Janik  <timj@gtk.org>
2206
2207         * Makefile.am: compile gnode.c.
2208
2209         * glib.h:
2210         * gnode.c: added implementation of n-way trees.
2211
2212         * gtree.c (g_tree_traverse): added a warning to the switch() statement
2213         which says that G_LEVEL_ORDER is not implemented.
2214
2215 Mon Jul 27 00:17:30 CDT 1998 Shawn T. Amundson <amundson@gtk.org>
2216
2217         * Released GLib 1.1.0
2218
2219 Mon Jul 27 01:02:27 1998  Tim Janik  <timj@gtk.org>
2220
2221         * glib.h: #if 0'ed out the GTime definition, until it is definitively
2222         needed. #if 0'ed out the g_getcwd() version, because it is the wrong
2223         implementation.
2224
2225 Sat Jul 25 16:09:00 1998  Mark Crichton <crichton@expert.cc.purdue.edu>
2226
2227         * glib.h: gtime changed to g_time.  gtime is used in
2228         /usr/include/time.h in NetBSD, causing multiple headaches.
2229         If this isn't the right way of fixing it.... ;)
2230
2231 Thu Jul 23 00:29:14 1998  Tim Janik  <timj@gtk.org>
2232
2233         * glib.h:
2234         * gscanner.c: new functions to make a scanner scope sensitive wrt
2235         symbol lookups.
2236         g_scanner_scope_foreach_symbol, g_scanner_scope_lookup_symbol,
2237         g_scanner_scope_remove_symbol, g_scanner_scope_add_symbol and
2238         g_scanner_set_scope.
2239         g_scanner_add_symbol, g_scanner_remove_symbol and
2240         g_scanner_foreach_symbol are now aliases for scope 0.
2241
2242 Mon Jul 20 23:05:34 1998  George Lebl  <jirka@5z.com>
2243
2244         * glib.h: typo fixed for alphas for gint64
2245
2246 Tue Jul 14 09:05:18 1998  Tim Janik  <timj@gtk.org>
2247
2248         * glib.h:
2249         * gutils.c: new fuction g_dirname() which returns a newlly
2250         allocated string.
2251
2252 Fri Jul 10 06:33:43 1998  Tim Janik  <timj@gtk.org>
2253
2254         * glib.h:
2255         * gutils.h: added a bunch of utility/wrapper functions:
2256         g_basename(), g_getcwd(), g_get_user_name(), g_get_real_name(),
2257         g_get_home_dir(), g_get_tmp_dir(), g_get_prgname() and g_set_prgname().
2258
2259         * gutils.c: removed all g_str* functions.
2260         * gstrfuncs.c: moved the bunch g_str* functions from gutils.c in this
2261         place. this file shall never include <unistd.h> to avoid clashes for
2262         some of the g_str* functions on some OSes.
2263
2264 Fri Jul 10 00:29:03 EEST 1998 Lauri Alanko <nether@gimp.org>
2265
2266         * glib.h:
2267         * ghash.c: Renamed g_hash_table_lookup_full to
2268         g_hash_table_lookup_extended to conform with naming conventions.
2269
2270 Tue Jul  7 03:18:58 EEST 1998 Lauri Alanko <nether@gimp.org>
2271
2272         * glib.h:
2273         * ghash.c: Generic cleanup, added a function:
2274         (g_hash_table_lookup_full): Return whether the lookup succeeded,
2275         and also retrieve the key and value. This allows one to
2276         distinguish between failed lookup and finding a NULL, and also
2277         allows one to free a key in the hash.
2278
2279 Mon Jul  6 10:12:05 PDT 1998 Manish Singh <yosh@gimp.org>
2280
2281         * ltconfig: fix for properly detecting shared lib support on
2282         SunPro cc (taken from libtool 1.2.a)
2283
2284 Sat Jul  4 13:38:52 PDT 1998 Manish Singh <yosh@gimp.org>
2285
2286         * glib.h: added g_array_length
2287
2288 Tue Jun 30 11:58:25 1998  Tim Janik  <timj@gtk.org>
2289
2290         * gscanner.c (g_scanner_unexp_token): take symbol_2_token into
2291         account. react on valid/invalid string pairs.
2292
2293 Sat Jun 27 21:55:46 PDT 1998 Manish Singh <yosh@gimp.org>
2294
2295         * glib.m4: ftp.glib.org -> ftp.gtk.org, since glib.org isn't
2296         ours. ;)
2297
2298 Fri Jun 19 03:11:02 1998  Tim Janik  <timj@gtk.org>
2299
2300         * gdataset.c: removed g_dataset_try_key, g_dataset_force_id and
2301         g_dataset_retrive_key in favour of GQuarks.
2302         a GQuark is an numeric id wich is associated with a certain string.
2303         (g_quark_try_string): try to get the quark associated with this string,
2304         if the lookup failed return 0.
2305         (g_quark_from_string): get the associated quark for a string, if there
2306         isn't currently a GQuark associated with this string, then allocate a
2307         new quark and return that.
2308         (g_quark_from_static_string): like the above function, but the string
2309         isn't strdup()ed to save memory.
2310         (g_quark_to_string): get the string that is associated with a certain
2311         GQuark.
2312
2313         * gdataset.c (g_dataset_id_set_data_full): invoke the destroy function
2314         _after_ the new data has been setup.
2315
2316 Thu Jun 18 02:35:21 1998  Owen Taylor  <otaylor@gtk.org>
2317
2318         * glib.h: Changed messages for g_return_[val]_if_fail to
2319         be somewhat more clear: assertion "blah" failed.
2320
2321 1998-06-18  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2322
2323         * testglib.c (main): Use GINT_TO_POINTER casts to remove compiler
2324         warnings.
2325
2326         * grel.c: #include <string.h>
2327
2328 Fri Jun 12 15:39:06 1998  Tim Janik  <timj@gtk.org>
2329
2330         * glib.h (GScanner): cleanups of the structure fields (binary
2331         incompatible).
2332
2333 Fri Jun 12 00:39:28 1998  Josh MacDonald  <jmacd@icw.EECS.Berkeley.EDU>
2334
2335         * glib.h: add new hash and equal functions g_int_*.  complement
2336         g_direct_hash with g_direct_equal.
2337
2338         * grel.c: new file, GRelations implement tuples of N-N mappings.
2339         A comment in glib.h briefly describes the interface.
2340
2341         * ghash.c: new function, g_hash_table_size
2342
2343         * glib.h: new typedefs, gsize, gssize, gtime.
2344
2345         * garray.c: new functions implementing a simplified GArray.  This
2346         GPtrArray is an array of gpointers and has functions to add and
2347         remove elements, much like java.lang.Vector.
2348
2349         * garray.c: new functions for the single-byte special case of
2350         GArray.  The functions g_byte_array* operate on arrays of bytes.
2351         Internally, a GArray is used.
2352
2353         * testglib.c: tests for g_ptr_array, g_byte_array, and g_relation...
2354
2355 1998-06-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>
2356
2357         * gdataset.c: #include <string.h>
2358
2359 Thu Jun 11 04:15:31 1998  Tim Janik  <timj@gtk.org>
2360
2361         * glib.h:
2362         * gdataset.c: new function g_dataset_retrive_key. adjusted prealloc
2363         sizes, to take up less space on initial allocation.
2364
2365 1998-06-10  Raja R Harinath  <harinath@cs.umn.edu>
2366
2367         * acinclude.m4: New file.  Contains `libtool.m4' from libtool-1.2,
2368         the version from which glib's libtool forked.  Needed for people
2369         who use post-1.2 alphas of libtool.
2370         * configure.in (enable_mem_check, enable_mem_profile): Replace
2371         `echo -n' with AC_MSG_CHECKING.
2372         (fd_set): Explain test for `fd_set' better.
2373
2374 Wed Jun 10 19:29:51 1998  Owen Taylor  <otaylor@gtk.org>
2375
2376         * Makefile.am glib.m4 configure.in:
2377
2378         Moved out from GTK+; added AM_PATH_GLIB macro.
2379
2380 Wed Jun 10 12:56:07 1998  Owen Taylor  <otaylor@gtk.org>
2381
2382         * glib.h: renamed g_const_pointer => gconstpointer
2383
2384 Tue Jun  9 17:47:33 1998  Owen Taylor  <otaylor@gtk.org>
2385
2386         * glib.h: Remove #error - HP/UX.
2387
2388 Sat May 23 19:00:01 1998  Owen Taylor  <otaylor@gtk.org>
2389   [ Combination of:
2390      gtk-rrh-980412-0.patch (Raja R Harinath <harinath@cs.umn.edu>)
2391      gtk-jbuhler-980516-0 (Jeremy Buhler <jbuhler@cs.washington.edu>) ]
2392
2393         * glib.h ghash.c gstring.c gdataset.c gutils.c:
2394         - Added new typedef g_const_pointer; expunged all incorrect
2395           uses of 'const gpointer'.
2396         - Fixed up warnings that that created,
2397         - Changed GHashFunc and GCompareFunc to take g_const_pointer
2398           arguments. (Necessary, but will cause warnings in existing
2399           code until fixed)
2400         - Added other new const in harmless positions.
2401
2402 Mon Jun  8 01:06:47 1998  Tim Janik  <timj@gtk.org>
2403
2404         * glib.h: added enum-helper macros for code generation.
2405         added G_BREAKPOINT().
2406
2407 Sat Jun  6 14:09:22 PDT 1998 Manish Singh <yosh@gimp.org>
2408
2409         * gmem.c: commented out MEM_PROFILE and MEM_CHECK, causing weird
2410         problems
2411
2412 Wed Jun  3 06:19:42 1998  Tim Janik  <timj@gtk.org>
2413
2414         * glib.h (g_chunk_new0): convenience macro, for allocating small chunks
2415         like g_chunk_new() with additional 0 initialization.
2416
2417 Mon Jun  1 04:43:27 1998  Tim Janik  <timj@gtk.org>
2418
2419         * ghash.c (g_hash_table_insert): wrote a comment describing why
2420         a hash node's key should not also get replaced when overriding
2421         previous entries.
2422
2423 Tue May 26 18:30:06 1998  Tim Janik  <timj@gtk.org>
2424
2425         * glib.h (g_string_sized_new): new function to controll the preallocated
2426         size of a GString.
2427
2428         * glib.h (g_strreversed): new function to reverse a string.
2429
2430 Mon May 18 22:14:39 1998  Owen Taylor  <otaylor@gtk.org>
2431 (Yasuhiro SHIRASAKI <joke@awa.tohoku.ac.jp> : gtk-joke-980517-0.patch)
2432
2433         * gutils.c: Restored a missing prototype for g_vsprintf.
2434
2435 Wed May 20 05:02:26 1998  Tim Janik  <timj@gtk.org>
2436
2437         * glib.h: conditionally define NULL, FALSE and TRUE.
2438         (g_mem_chunk_create): new convenience macro as a short hand for
2439         g_mem_chunk_new().
2440         (g_chunk_free): new convenience macro to be consistent with g_chunk_new.
2441
2442 Tue, 19 May 1998 09:00:02 +0200  Paolo Molaro <lupus@debian.org>
2443
2444         * gcompletion.c: generic functions for com<TAB>pletion...
2445
2446 Sun May 17 10:48:27 1998  Tim Janik  <timj@gtk.org>
2447
2448         * gscanner.c (g_scanner_unexp_token): provide usefull default
2449         specifications for identifier_spec and symbol_spec.
2450
2451         * glib.h: new functions g_slist_nth_data and g_list_nth_data to return
2452         the data of the nth element in the list.
2453
2454 Fri May 15 22:31:49 1998  Tim Janik  <timj@gtk.org>
2455
2456         * gscanner.c (g_scanner_unexp_token): removed spurious va_end(args)
2457         that for some reason didn't produce a compiler warning on my machine
2458         (is va_end defined to nothing for i386?).
2459
2460 Fri May 15 12:32:08 1998  rodo  <doulik@karlin.mff.cuni.cz>
2461
2462         * gscanner.c: replaced some snprintf with g_snprintf
2463
2464 Fri May 15 00:56:59 1998  Tim Janik  <timj@gtk.org>
2465
2466         * glib.h: further support for gcc function attributes: G_GNUC_FORMAT,
2467         G_GNUC_NORETURN and G_GNUC_CONST.
2468
2469         * gscanner.c (g_scanner_stat_mode): changed stat() to lstat().
2470         (g_scanner_msg_handler): "\n" at end of line!
2471         (g_scanner_foreach_symbol): new function to iterate over the symbol
2472         table (GScanner does value-wrapping).
2473
2474 Thu May 14 04:14:12 1998  Tim Janik  <timj@gtk.org>
2475
2476         * glib.h: typedef gint gboolean;
2477         this is needed to provide portability with big-endian platforms (e.g.
2478         try sizeof(bool) for c++ on big-endians - it's 4).
2479         this is also needed to maintain some_union.d_gint==some_union.d_gboolean.
2480         plus, gint to gboolean casts and vice versa need to be possible without
2481         loss.
2482
2483 Tue May 12 19:22:58 1998  Owen Taylor  <otaylor@gtk.org>
2484
2485         * glib/glib.h: Added macros G[U]INT_TO_POINTER() and
2486         GPOINTER_TO_[U]INT for storing small integers integers
2487         inside pointers.
2488
2489         * glib/testglib.c: Print sizeof() results
2490         as g_print("%ld", (glong)sizeof(foo)), to deal with
2491         size_t being long on Alpha's.
2492
2493 Tue May 12 16:54:15 1998  Owen Taylor  <otaylor@gtk.org>
2494         (James A <jamesa@demon.net> : gtk-jamesa-980511-4.patch)
2495
2496         * glib.h gstring.c gmessages.c: Added some missing
2497         const to arguments.
2498
2499         * gutils.c (g_strsignal.c): Added missing return statements.
2500
2501 Mon May 11 21:11:54 1998  Owen Taylor  <otaylor@gtk.org>
2502
2503         * gutils.c gmessages.c: Moved g_error, g_warning, g_message and
2504         g_print from gutils.c to new file gmessages.c, to avoid having to
2505         include <unistd.h> in gutils.c which was causing problems for the
2506         g_strsignal implementation on FreeBSD boxes.
2507
2508 Mon May 11 09:53:43 1998  Tim Janik  <timj@gtk.org>
2509
2510         * configure.in: preserve automake CFLAGS.
2511
2512         * Makefile.am: fully rename the created library to libglib-1.1.la.
2513         this means we need to change certain portions of the Makefile.am on
2514         major/minor version bumps.
2515
2516         * ltmain.sh: the -release option is not required anymore.
2517
2518         * glib.h: provide G_GNUC_FUNCTION and G_GNUC_PRETTY_FUNCTION to
2519         avoid conditionals. unconditionally define NULL, TRUE, FALSE, MAX,
2520         MIN, ABS and CLAMP, these macros might be screwed from other headers.
2521
2522 Mon May 11 01:44:10 1998  Tim Janik  <timj@gtk.org>
2523
2524         * gdataset.c: new file, gdatasets implement the object data
2525         mechanism from GtkObject. a generic data pointer is associated with
2526         a certain location and a key id.
2527
2528 Sat May  9 20:08:12 1998  Owen Taylor  <otaylor@gtk.org>
2529
2530         * glib/gmem.c: Experimentally restore GMemChunk
2531         to its primeval state - where mem areas are
2532         freed incrementally instead of searching the tree
2533         every time a mem area is completely empty. Also,
2534         always keep one mem chunk around. (Reduced calls
2535         to malloc() a lot, but doesn't really improve
2536         performance significiantly)
2537
2538 Thu May  7 08:17:28 1998  Tim Janik  <timj@gtk.org>
2539
2540         * glib.h (G_GNUC_PRINTF):
2541         (G_GNUC_SCANF): macros to facilitate the printf/scanf format argument
2542         checking of gcc.
2543
2544         * gstring.c: const corrections, string!=NULL checks at function entry.
2545         (g_string_down): new function for tolower(3) conversion.
2546         (g_string_up): new function for toupper(3) conversion.
2547
2548         * gutils.c: const corrections.
2549         (g_strdown): g_string_down() counterpart.
2550         (g_strup): g_string_up() counterpart.
2551
2552         * gscanner.c (g_scanner_unexp_token):
2553         (g_scanner_error):
2554         (g_scanner_warn): new functions to let a scanner put out warnings
2555         or errors, especially to react on unexpected tokens.
2556
2557         * gslist.c:
2558         (g_slist_index): find out about about the position of a
2559         certain data pointer.
2560         (g_slist_position): find out about about the position of a
2561         certain node.
2562
2563         * glist.c:
2564         (g_list_index): find out about about the position of a
2565         certain data pointer.
2566
2567 Thu May  7 05:14:19 1998  Tim Janik  <timj@gtk.org>
2568
2569         * ltmain.sh: added a new commandline flag -postfix similar to -release,
2570         but will immediately change the library name.
2571
2572         * Makefile.am: specify -postfix and -version-info
2573
2574         * configure.in: version bump to 1.1.0. added GLIB_INTERFACE_AGE and
2575         GLIB_BINARY_AGE. calculate LT_* variables for libtool.
2576
2577 Fri May  1 16:36:08 1998  Owen Taylor  <otaylor@gtk.org>
2578
2579         * gutils.c: (g_strcasecmp). Check for isupper before
2580         taking tolower, and account for macroized tolower.
2581
2582         * gutils.c (g_error): Check for recursion.
2583
2584 1998-04-27  Elliot Lee  <sopwith@cuc.ml.org>
2585
2586         * glist.c (g_list_position): New function to find the position of
2587         a link in a list - should be the inverse of g_list_nth(), but
2588         haven't tested it so poof.
2589
2590 Thu Apr 30 21:41:30 1998  Owen Taylor  <otaylor@gtk.org>
2591
2592         * gstring.c : Check arguments more carefully,
2593         (gtk-draco-980423-1.patch; ramsey@rhrk.uni-kl.de)
2594
2595 Tue Apr  7 19:36:48 1998  Owen Taylor  <owt1@cornell.edu>
2596
2597         * gutils.c (g_direct_compare): Removed, because that's what
2598         a NULL comparison function means. And it wasn't 64 bit safe.
2599
2600 Mon Apr  6 18:43:25 1998  Tim Janik  <timj@gtk.org>
2601
2602         * gscanner.c (g_scanner_get_token_ll): fixed a bug that caused floats
2603         of the format ".xxx" to be parsed as "xxx".
2604
2605 Fri Apr  3 20:36:35 1998  Owen Taylor  <owt1@cornell.edu>
2606
2607         * gutils.c (g_parse_debug_string): Make debug string
2608         parsine case-insensitive
2609
2610 Fri Apr  3 17:03:18 PST 1998 Manish Singh <yosh@gimp.org>
2611
2612         * gstring.c: corrected possible overrun when inserting into
2613         GStrings (thanks Elrond)
2614
2615 Fri Apr  3 18:05:45 1998  Owen Taylor  <owt1@cornell.edu>
2616
2617         * testglib.c: Removed literal german from strings
2618         to appease SGI compiler.
2619
2620 Thu Mar 26 20:47:21 1998  Owen Taylor  <owt1@cornell.edu>
2621
2622         * configure.in glib glibconfig.h.in: Add test for atexit/on_exit -
2623         use on_exit if atexit not found in definition of ATEXIT.
2624
2625 Wed Mar 25 15:23:37 1998  Owen Taylor  <owt1@cornell.edu>
2626
2627         * Makefile.am: Switched glibconfig.h rule from HEADERS
2628         to DATA, so that it is not added to DISTFILES
2629
2630 Wed Mar 18 22:27:08 PST 1998 Manish Singh <yosh@gimp.org>
2631
2632         * garray.c: g_rarray_truncate length done correctly
2633
2634 Sun Mar 15 07:13:34 1998  Tim Janik  <timj@gimp.org>
2635
2636         * gutils.c: changed *_handler variables to be named glib_*_handler,
2637         so you can easily access them from gdb.
2638
2639 Sat Mar 14 17:47:43 1998  Owen Taylor  <owt1@cornell.edu>
2640
2641         * Makefile.am: Don't refer to current directory as $(top_builddir)
2642         to avoid confusing non-gmakes
2643
2644 Sat Mar 14 01:37:35 1998  Owen Taylor  <owt1@cornell.edu>
2645
2646         * Makefile.am (configincludedir): Moved glibconfig.h to
2647           $(pkglibdir)/include
2648
2649 Tue Mar 10 02:03:12 1998  Tim Janik  <timj@gimp.org>
2650
2651         * gscanner.c (g_scanner_destroy_symbol_table_entry): new function to
2652         free symbol table entries upon destruction
2653         (gtk-gronlund-980309-0.patch.gz).
2654
2655 Mon Mar  9 15:02:21 1998  Tim Janik  <timj@gimp.org>
2656
2657         * glib.h: changed *_length functions to return guint.
2658         changed *_nth functions to take guint as argument.
2659
2660         * glist.c: adapted g_list_length and g_list_length.
2661
2662         * gslist.c: adapted g_slist_length and g_slist_length.
2663
2664 Mon Mar  2 17:51:18 1998  Owen Taylor  <owt1@cornell.edu>
2665
2666         * glib.h gutils.c : changed g_strcasecmp
2667           to take gchar* not guchar*
2668
2669         * testglib.c: Remove trailing ; after functions
2670
2671 Sun Mar  1 19:04:40 1998  Owen Taylor  <owt1@cornell.edu>
2672
2673         * glib.h gstring.c: Added g_string_insert[_c]()
2674           and g_string_erase().
2675
2676           From: Stefan Wille  <1wille@vsys1.informatik.uni-hamburg.de>
2677
2678 Mon Feb 16 23:05:06 1998  Owen Taylor  <owt1@cornell.edu>
2679
2680         * glist.c (g_list_insert_sorted): Changed function
2681           so elements are always inserted, even if they compare
2682           equal with another.
2683
2684 Thu Feb 12 22:48:11 1998  Owen Taylor  <owt1@cornell.edu>
2685
2686         * gstring.c glib.h: removed deprecated g_string_equal
2687           and g_string_hash.
2688
2689 Tue Feb 10 13:04:36 1998  Owen Taylor  <owt1@cornell.edu>
2690
2691         * configure.in: Add check to see if the C library's
2692           iswalnum can actually be used. (Not true for
2693           Linux libc-5.4.38)
2694
2695 Sat Feb  7 11:48:09 1998  Owen Taylor  <owt1@cornell.edu>
2696
2697         * gstring.c gutils.c: added some additional consts in
2698           appropriate places to remove a warning
2699
2700 Sat Feb  7 11:15:54 1998  Owen Taylor  <owt1@cornell.edu>
2701
2702         * gutils.c: include <ctype.h> for tolower()
2703
2704 Fri Jan 30 23:57:17 PST 1998 Manish Singh <yosh@gimp.org>
2705
2706         * added and autoconfigured in a new utility function
2707         g_strcasecmp
2708
2709 Wed Jan 28 23:53:27 PST 1998 Manish Singh <yosh@gimp.org>
2710
2711         * glist.c
2712         * gslist.c
2713         * testglib.c: the sort functions compared backwards. Fixed
2714         * glib.h: list iterator macros now check for NULL pointers
2715
2716 Tue Jan 27 09:46:57 PST 1998 Manish Singh <yosh@gimp.org>
2717
2718         * gstring.c: g_string_prepend and g_string_prepend_c had
2719         interchanged src and dest parameters for g_memmove. Fixed.
2720
2721 Tue Jan 27 01:38:52 PST 1998 Manish Singh <yosh@gimp.org>
2722
2723         * gslist.c: fixed a really, really lame error. g_slist_insert
2724         didn't hook the data in! Reworked the routine to reflect the
2725         functionality of g_list
2726
2727 Wed Jan 21 01:13:25 1998  Tim Janik  <timj@psynet.net>
2728
2729         * Applied patch from (Raja R Harinath <harinath@cs.umn.edu>)
2730           to add function g_snprintf.
2731         * configure.in (AC_CHECK_FUNCS): Check for vsnprintf.
2732         * glib.h: Add prototype for g_snprintf.
2733         * glibconfig.h.in: Add HAVE_VSNPRINTF.
2734         * gutils.c (g_snprintf): new function.
2735
2736 Sat Jan 17 23:52:40 1998  Owen Taylor  <owt1@cornell.edu>
2737
2738         * gstring.{c,h} gscanner.c:
2739            renamed g_string_equal => g_str_equal
2740            renamed g_string_hash => g_str_hash
2741           And const corrected. Old functions left in for now.
2742
2743 Fri Jan  9 20:03:46 1998  Tim Janik  <timj@psynet.net>
2744
2745         * gutils.c (g_strerror): changed message for EAGAIN from
2746         "no more processes" to "try again" since EAGAIN is used with
2747         functions else than fork().
2748
2749         * gscanner.c (g_scanner_get_token_ll): use strtol() instead of
2750         strtoul() to avoid conflicts with solaris.
2751
2752         * merged the glib portions from Jan 2 to Jan 7 out of gtk+/ChangeLog
2753         into this file.
2754
2755 Wed Jan  7 02:14:30 PST 1998 Manish Singh <yosh@gimp.org>
2756
2757         * glib.h:
2758         * glist.c:
2759         * gslist.c:
2760         * testglib.c: Added g_[s]list_insert_sorted function
2761         and appropriate tests in testglib
2762
2763 Sat Jan  3 20:23:25 1998  Owen Taylor  <owt1@cornell.edu>
2764
2765         * glib.h: Changed guint32 -> guint for bitfields.
2766         (Bitfields must be int or unsigned int?)
2767
2768 Fri Jan  2 23:52 PST 1998 Jay Painter <jpaint@serv.net>
2769
2770         * glib_pre1.h:
2771         * glib_pre2.h:
2772         * glib.h: reverted glibconfig.h and glib.h files back to the
2773         way they were before my ugly hack.
2774
2775         * gscanner.c: removed inlines from clist and gscanner
2776
2777 Tue Dec 23 02:49:51 1997  Tim Janik  <timj@psynet.net>
2778
2779         * gscanner.c: new file for GScanner: Flexible lexical scanner for
2780         general purpose.
2781         * glib_pre2.h: added GScanner includes. added g_strconcat and g_strtod.
2782         gutils.c (g_strconcat): new function for string concatenation of NULL
2783         terminated parameter list.
2784         (g_strtod): new function to perform best string to double conversion
2785         with or without consideration of the current locale.
2786
2787 Mon Dec 15 19:33:58 1997  Tim Janik  <timj@psynet.net>
2788
2789         * glist.c: minor optimizations:
2790         (g_list_append): `if' optimized for common code path, commented out
2791         unneccessary `assert', saved one variable assignment.
2792         (g_list_prepend): saved two (conditioned) variable assignment.
2793         (g_list_insert): saved one  (conditioned) variable assignment,
2794         saved one variable assignment.
2795         (g_list_remove): `if' optimized for common code path, saved two
2796         variable assignments by using `g_list_free_1' (which is even
2797         faster) instead of `g_list_free'.
2798         (g_list_reverse): saved allocation of one variable, saved one
2799         variable assignment.
2800
2801 Wed Dec 10 23:27:20 1997  Tim Janik  <timj@psynet.net>
2802
2803         * glib_pre1.h:
2804         * glib_pre2.h:
2805         * glib.h: this file now gets concatenated by makeglib_h from
2806         glib_pre1.h and glib_pre2.h to merge in glibconfig.h wich got
2807         created by configure (done by Jay Painter).
2808
2809         * glib_pre2.h: the g_assert*() and g_return_*_fail() macros
2810         are wrapped by G_STMT_START and G_STMT_END now, to avoid conflicts
2811         when used within if (...) g_macro(); else ... conditionals.
2812
2813 Tue Dec 17 13:14:07 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
2814
2815         * glib.h: Changed 'g_return_if_fail' and 'g_return_val_if_fail' to
2816         not call 'g_string' but to simply stringify the
2817         expression. Calling 'g_string' causes the expression to be
2818         expanded which is undesired.
2819
2820 Sun Dec  1 01:30:48 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
2821
2822         * Started ChangeLog