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