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