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