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